From 1c5aa7eebf4f1d1799ee6b28817250cc7e86346d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 13:38:46 +0100 Subject: [PATCH 001/132] Change Fujitsu test file structure --- .../fortran/parser/fujitsu/{ => 0000}/0000_0000.expected.f90 | 0 .../fortran/parser/fujitsu/{ => 0000}/0000_0000.f90 | 0 .../fortran/parser/fujitsu/{ => 0000}/0000_0000.json | 0 .../test/pt/up/fe/specs/fortran/parser/FortranParserTest.java | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) rename FortranParser/resources-test/fortran/parser/fujitsu/{ => 0000}/0000_0000.expected.f90 (100%) rename FortranParser/resources-test/fortran/parser/fujitsu/{ => 0000}/0000_0000.f90 (100%) rename FortranParser/resources-test/fortran/parser/fujitsu/{ => 0000}/0000_0000.json (100%) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000_0000.expected.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 similarity index 100% rename from FortranParser/resources-test/fortran/parser/fujitsu/0000_0000.expected.f90 rename to FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.expected.f90 diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000_0000.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.f90 similarity index 100% rename from FortranParser/resources-test/fortran/parser/fujitsu/0000_0000.f90 rename to FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.f90 diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000_0000.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.json similarity index 100% rename from FortranParser/resources-test/fortran/parser/fujitsu/0000_0000.json rename to FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.json 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 e9c6e008..e18c3749 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -337,13 +337,13 @@ void testDirectiveNative() { @Test void testFujitsu0000_0000() { - testJson("fujitsu/0000_0000.json"); + testJson("fujitsu/0000/0000_0000.json"); } @Test void testFujitsu0000_0000Native() { if (SpecsPlatforms.isLinux()) { - testNative("fujitsu/0000_0000.f90"); + testNative("fujitsu/0000/0000_0000.f90"); } } } From c1c1a75548812a2c4c36afa0299b3b1901444218 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 13:50:57 +0100 Subject: [PATCH 002/132] Add new Fujitsu test --- .../parser/fujitsu/0000/0000_0000.json | 600 +++--- .../fortran/parser/fujitsu/0000/0000_0001.f90 | 31 + .../parser/fujitsu/0000/0000_0001.json | 1796 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 2139 insertions(+), 300 deletions(-) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.json index fab61f77..0d088ae1 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0000.json @@ -1,737 +1,737 @@ { "nodes": [ { - "id": "0x55b014d6ccc0-Program", + "id": "0x55c0eeb2acc0-Program", "ProgramUnit": [ - "0x55b014d95650-ProgramUnit" + "0x55c0eeb53660-ProgramUnit" ] }, { - "id": "0x55b014d95650-ProgramUnit", + "id": "0x55c0eeb53660-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55b014d9c070-MainProgram" + "MainProgram": "0x55c0eeb5a3d0-MainProgram" }, { - "id": "0x55b014d9c070-MainProgram", - "Statement": "0x55b014d9c1b8-Statement", - "SpecificationPart": "0x55b014d9c110-SpecificationPart", - "ExecutionPart": "0x55b014d9c0f8-ExecutionPart", - "Statement": "0x55b014d9c070-Statement" + "id": "0x55c0eeb5a3d0-MainProgram", + "Statement": "0x55c0eeb5a518-Statement", + "SpecificationPart": "0x55c0eeb5a470-SpecificationPart", + "ExecutionPart": "0x55c0eeb5a458-ExecutionPart", + "Statement": "0x55c0eeb5a3d0-Statement" }, { - "id": "0x55b014d9c1b8-Statement", - "statement": "0x55b014d9c1c8-ProgramStmt", + "id": "0x55c0eeb5a518-Statement", + "statement": "0x55c0eeb5a528-ProgramStmt", "source": "program main" }, { - "id": "0x55b014d9c1c8-ProgramStmt", - "Name": "0x55b014d9c1c8-Name" + "id": "0x55c0eeb5a528-ProgramStmt", + "Name": "0x55c0eeb5a528-Name" }, { - "id": "0x55b014d9c1c8-Name", + "id": "0x55c0eeb5a528-Name", "source": "main" }, { - "id": "0x55b014d9c110-SpecificationPart", - "ImplicitPart": "0x55b014d9c128-ImplicitPart", + "id": "0x55c0eeb5a470-SpecificationPart", + "ImplicitPart": "0x55c0eeb5a488-ImplicitPart", "DeclarationConstruct": [ - "0x55b014d97560-DeclarationConstruct", - "0x55b014d73240-DeclarationConstruct" + "0x55c0eeb55af0-DeclarationConstruct", + "0x55c0eeb31240-DeclarationConstruct" ] }, { - "id": "0x55b014d9c128-ImplicitPart" + "id": "0x55c0eeb5a488-ImplicitPart" }, { - "id": "0x55b014d97560-DeclarationConstruct", + "id": "0x55c0eeb55af0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b014d97560-SpecificationConstruct" + "SpecificationConstruct": "0x55c0eeb55af0-SpecificationConstruct" }, { - "id": "0x55b014d97560-SpecificationConstruct", + "id": "0x55c0eeb55af0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55b014d97560-Statement" + "Statement": "0x55c0eeb55af0-Statement" }, { - "id": "0x55b014d97560-Statement", - "statement": "0x55b014d7b240-TypeDeclarationStmt", - "source": "integer*8 i8,j/-20/,k/20/" + "id": "0x55c0eeb55af0-Statement", + "statement": "0x55c0eeb39250-TypeDeclarationStmt", + "source": "integer*8 i8, j/-20/, k/20/" }, { - "id": "0x55b014d7b240-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b014d7b270-DeclarationTypeSpec", + "id": "0x55c0eeb39250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c0eeb39280-DeclarationTypeSpec", "EntityDecl": [ - "0x55b014d97390-EntityDecl", - "0x55b014d96d00-EntityDecl", - "0x55b014d972a0-EntityDecl" + "0x55c0eeb55920-EntityDecl", + "0x55c0eeb55290-EntityDecl", + "0x55c0eeb55830-EntityDecl" ] }, { - "id": "0x55b014d7b270-DeclarationTypeSpec", + "id": "0x55c0eeb39280-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b014d7b270-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c0eeb39280-IntrinsicTypeSpec" }, { - "id": "0x55b014d7b270-IntrinsicTypeSpec", + "id": "0x55c0eeb39280-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55b014d7b270-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c0eeb39280-IntegerTypeSpec" }, { - "id": "0x55b014d7b270-IntegerTypeSpec", - "KindSelector": "0x55b014d7b270-KindSelector" + "id": "0x55c0eeb39280-IntegerTypeSpec", + "KindSelector": "0x55c0eeb39280-KindSelector" }, { - "id": "0x55b014d7b270-KindSelector", + "id": "0x55c0eeb39280-KindSelector", "variantKey": "StarSize", - "StarSize": "0x55b014d7b270-StarSize" + "StarSize": "0x55c0eeb39280-StarSize" }, { - "id": "0x55b014d7b270-StarSize", + "id": "0x55c0eeb39280-StarSize", "uint64_t": "8" }, { - "id": "0x55b014d97390-EntityDecl", - "Name": "0x55b014d97448-Name" + "id": "0x55c0eeb55920-EntityDecl", + "Name": "0x55c0eeb559d8-Name" }, { - "id": "0x55b014d97448-Name", + "id": "0x55c0eeb559d8-Name", "source": "i8" }, { - "id": "0x55b014d96d00-EntityDecl", - "Name": "0x55b014d96db8-Name", - "Initialization": "0x55b014d96d00-Initialization" + "id": "0x55c0eeb55290-EntityDecl", + "Name": "0x55c0eeb55348-Name", + "Initialization": "0x55c0eeb55290-Initialization" }, { - "id": "0x55b014d96db8-Name", + "id": "0x55c0eeb55348-Name", "source": "j" }, { - "id": "0x55b014d96d00-Initialization", + "id": "0x55c0eeb55290-Initialization", "variantKey": "DataStmtValue", "DataStmtValue": [ - "0x55b014d96e80-DataStmtValue" + "0x55c0eeb55410-DataStmtValue" ] }, { - "id": "0x55b014d96e80-DataStmtValue", - "DataStmtConstant": "0x55b014d96e88-DataStmtConstant" + "id": "0x55c0eeb55410-DataStmtValue", + "DataStmtConstant": "0x55c0eeb55418-DataStmtConstant" }, { - "id": "0x55b014d96e88-DataStmtConstant", + "id": "0x55c0eeb55418-DataStmtConstant", "variantKey": "SignedIntLiteralConstant", - "SignedIntLiteralConstant": "0x55b014d96ea8-SignedIntLiteralConstant" + "SignedIntLiteralConstant": "0x55c0eeb55438-SignedIntLiteralConstant" }, { - "id": "0x55b014d96ea8-SignedIntLiteralConstant", + "id": "0x55c0eeb55438-SignedIntLiteralConstant", "CharBlock": "-20" }, { - "id": "0x55b014d972a0-EntityDecl", - "Name": "0x55b014d97358-Name", - "Initialization": "0x55b014d972a0-Initialization" + "id": "0x55c0eeb55830-EntityDecl", + "Name": "0x55c0eeb558e8-Name", + "Initialization": "0x55c0eeb55830-Initialization" }, { - "id": "0x55b014d97358-Name", + "id": "0x55c0eeb558e8-Name", "source": "k" }, { - "id": "0x55b014d972a0-Initialization", + "id": "0x55c0eeb55830-Initialization", "variantKey": "DataStmtValue", "DataStmtValue": [ - "0x55b014d97160-DataStmtValue" + "0x55c0eeb556f0-DataStmtValue" ] }, { - "id": "0x55b014d97160-DataStmtValue", - "DataStmtConstant": "0x55b014d97168-DataStmtConstant" + "id": "0x55c0eeb556f0-DataStmtValue", + "DataStmtConstant": "0x55c0eeb556f8-DataStmtConstant" }, { - "id": "0x55b014d97168-DataStmtConstant", + "id": "0x55c0eeb556f8-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b014d97188-LiteralConstant" + "LiteralConstant": "0x55c0eeb55718-LiteralConstant" }, { - "id": "0x55b014d97188-LiteralConstant", + "id": "0x55c0eeb55718-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55b014d97188-IntLiteralConstant" + "IntLiteralConstant": "0x55c0eeb55718-IntLiteralConstant" }, { - "id": "0x55b014d97188-IntLiteralConstant", + "id": "0x55c0eeb55718-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x55b014d73240-DeclarationConstruct", + "id": "0x55c0eeb31240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55b014d73240-SpecificationConstruct" + "SpecificationConstruct": "0x55c0eeb31240-SpecificationConstruct" }, { - "id": "0x55b014d73240-SpecificationConstruct", + "id": "0x55c0eeb31240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55b014d73240-Statement" + "Statement": "0x55c0eeb31240-Statement" }, { - "id": "0x55b014d73240-Statement", - "statement": "0x55b014d975b0-TypeDeclarationStmt", + "id": "0x55c0eeb31240-Statement", + "statement": "0x55c0eeb55b40-TypeDeclarationStmt", "source": "integer kkk/0/" }, { - "id": "0x55b014d975b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55b014d975e0-DeclarationTypeSpec", + "id": "0x55c0eeb55b40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c0eeb55b70-DeclarationTypeSpec", "EntityDecl": [ - "0x55b014d977f0-EntityDecl" + "0x55c0eeb55d80-EntityDecl" ] }, { - "id": "0x55b014d975e0-DeclarationTypeSpec", + "id": "0x55c0eeb55b70-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55b014d975e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c0eeb55b70-IntrinsicTypeSpec" }, { - "id": "0x55b014d975e0-IntrinsicTypeSpec", + "id": "0x55c0eeb55b70-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55b014d975e0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c0eeb55b70-IntegerTypeSpec" }, { - "id": "0x55b014d975e0-IntegerTypeSpec" + "id": "0x55c0eeb55b70-IntegerTypeSpec" }, { - "id": "0x55b014d977f0-EntityDecl", - "Name": "0x55b014d978a8-Name", - "Initialization": "0x55b014d977f0-Initialization" + "id": "0x55c0eeb55d80-EntityDecl", + "Name": "0x55c0eeb55e38-Name", + "Initialization": "0x55c0eeb55d80-Initialization" }, { - "id": "0x55b014d978a8-Name", + "id": "0x55c0eeb55e38-Name", "source": "kkk" }, { - "id": "0x55b014d977f0-Initialization", + "id": "0x55c0eeb55d80-Initialization", "variantKey": "DataStmtValue", "DataStmtValue": [ - "0x55b014d976b0-DataStmtValue" + "0x55c0eeb55c40-DataStmtValue" ] }, { - "id": "0x55b014d976b0-DataStmtValue", - "DataStmtConstant": "0x55b014d976b8-DataStmtConstant" + "id": "0x55c0eeb55c40-DataStmtValue", + "DataStmtConstant": "0x55c0eeb55c48-DataStmtConstant" }, { - "id": "0x55b014d976b8-DataStmtConstant", + "id": "0x55c0eeb55c48-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b014d976d8-LiteralConstant" + "LiteralConstant": "0x55c0eeb55c68-LiteralConstant" }, { - "id": "0x55b014d976d8-LiteralConstant", + "id": "0x55c0eeb55c68-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55b014d976d8-IntLiteralConstant" + "IntLiteralConstant": "0x55c0eeb55c68-IntLiteralConstant" }, { - "id": "0x55b014d976d8-IntLiteralConstant", + "id": "0x55c0eeb55c68-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55b014d9c0f8-ExecutionPart", + "id": "0x55c0eeb5a458-ExecutionPart", "ExecutionPartConstruct": [ - "0x55b014d6cb00-ExecutionPartConstruct", - "0x55b014d996c0-ExecutionPartConstruct" + "0x55c0eeb2ab00-ExecutionPartConstruct", + "0x55c0eeb57a20-ExecutionPartConstruct" ] }, { - "id": "0x55b014d9c0f8-ExecutionPartConstruct" + "id": "0x55c0eeb5a458-ExecutionPartConstruct" }, { - "id": "0x55b014d6cb00-ExecutionPartConstruct", + "id": "0x55c0eeb2ab00-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55b014d6cb00-ExecutableConstruct" + "ExecutableConstruct": "0x55c0eeb2ab00-ExecutableConstruct" }, { - "id": "0x55b014d6cb00-ExecutableConstruct", + "id": "0x55c0eeb2ab00-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55b014d99340-DoConstruct" + "DoConstruct": "0x55c0eeb14490-DoConstruct" }, { - "id": "0x55b014d99340-DoConstruct", - "Statement": "0x55b014d99398-Statement", + "id": "0x55c0eeb14490-DoConstruct", + "Statement": "0x55c0eeb144e8-Statement", "ExecutionPartConstruct": [ - "0x55b014d992f0-ExecutionPartConstruct" + "0x55c0eeb57770-ExecutionPartConstruct" ], - "Statement": "0x55b014d99340-Statement" + "Statement": "0x55c0eeb14490-Statement" }, { - "id": "0x55b014d99398-Statement", - "statement": "0x55b014d993a8-NonLabelDoStmt", - "source": "do i8=j,k" + "id": "0x55c0eeb144e8-Statement", + "statement": "0x55c0eeb144f8-NonLabelDoStmt", + "source": "do i8 = j, k" }, { - "id": "0x55b014d993a8-NonLabelDoStmt", - "LoopControl": "0x55b014d993a8-LoopControl" + "id": "0x55c0eeb144f8-NonLabelDoStmt", + "LoopControl": "0x55c0eeb144f8-LoopControl" }, { - "id": "0x55b014d993a8-LoopControl", + "id": "0x55c0eeb144f8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55b014d993a8-LoopBounds" + "LoopBounds": "0x55c0eeb144f8-LoopBounds" }, { - "id": "0x55b014d993a8-LoopBounds", - "var": "0x55b014d993a8-Name", - "lower": "0x55b014d98c10-Expr", - "upper": "0x55b014d98d50-Expr" + "id": "0x55c0eeb144f8-LoopBounds", + "var": "0x55c0eeb144f8-Name", + "lower": "0x55c0eeb571a0-Expr", + "upper": "0x55c0eeb572e0-Expr" }, { - "id": "0x55b014d993a8-Name", + "id": "0x55c0eeb144f8-Name", "source": "i8" }, { - "id": "0x55b014d98c10-Expr", + "id": "0x55c0eeb571a0-Expr", "variantKey": "Designator", - "Designator": "0x55b014d96fb0-Designator" + "Designator": "0x55c0eeb55540-Designator" }, { - "id": "0x55b014d96fb0-Designator", + "id": "0x55c0eeb55540-Designator", "variantKey": "DataRef", - "DataRef": "0x55b014d96fc0-DataRef" + "DataRef": "0x55c0eeb55550-DataRef" }, { - "id": "0x55b014d96fc0-DataRef", + "id": "0x55c0eeb55550-DataRef", "variantKey": "Name", - "Name": "0x55b014d96fc0-Name" + "Name": "0x55c0eeb55550-Name" }, { - "id": "0x55b014d96fc0-Name", + "id": "0x55c0eeb55550-Name", "source": "j" }, { - "id": "0x55b014d98d50-Expr", + "id": "0x55c0eeb572e0-Expr", "variantKey": "Designator", - "Designator": "0x55b014d98cf0-Designator" + "Designator": "0x55c0eeb57280-Designator" }, { - "id": "0x55b014d98cf0-Designator", + "id": "0x55c0eeb57280-Designator", "variantKey": "DataRef", - "DataRef": "0x55b014d98d00-DataRef" + "DataRef": "0x55c0eeb57290-DataRef" }, { - "id": "0x55b014d98d00-DataRef", + "id": "0x55c0eeb57290-DataRef", "variantKey": "Name", - "Name": "0x55b014d98d00-Name" + "Name": "0x55c0eeb57290-Name" }, { - "id": "0x55b014d98d00-Name", + "id": "0x55c0eeb57290-Name", "source": "k" }, { - "id": "0x55b014d99380-ExecutionPartConstruct" + "id": "0x55c0eeb144d0-ExecutionPartConstruct" }, { - "id": "0x55b014d992f0-ExecutionPartConstruct", + "id": "0x55c0eeb57770-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55b014d992f0-ExecutableConstruct" + "ExecutableConstruct": "0x55c0eeb57770-ExecutableConstruct" }, { - "id": "0x55b014d992f0-ExecutableConstruct", + "id": "0x55c0eeb57770-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55b014d992f0-Statement" + "Statement": "0x55c0eeb57770-Statement" }, { - "id": "0x55b014d992f0-Statement", - "statement": "0x55b014d99300-ActionStmt", - "source": "kkk=kkk+i8" + "id": "0x55c0eeb57770-Statement", + "statement": "0x55c0eeb57780-ActionStmt", + "source": "kkk = kkk + i8" }, { - "id": "0x55b014d99300-ActionStmt", + "id": "0x55c0eeb57780-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55b014d991d0-AssignmentStmt" + "AssignmentStmt": "0x55c0eeb54460-AssignmentStmt" }, { - "id": "0x55b014d991d0-AssignmentStmt", - "Variable": "0x55b014d992b0-Variable", - "Expr": "0x55b014d991e0-Expr" + "id": "0x55c0eeb54460-AssignmentStmt", + "Variable": "0x55c0eeb54540-Variable", + "Expr": "0x55c0eeb54470-Expr" }, { - "id": "0x55b014d992b0-Variable", + "id": "0x55c0eeb54540-Variable", "variantKey": "Designator", - "Designator": "0x55b014d735a0-Designator" + "Designator": "0x55c0eeb315a0-Designator" }, { - "id": "0x55b014d735a0-Designator", + "id": "0x55c0eeb315a0-Designator", "variantKey": "DataRef", - "DataRef": "0x55b014d735b0-DataRef" + "DataRef": "0x55c0eeb315b0-DataRef" }, { - "id": "0x55b014d735b0-DataRef", + "id": "0x55c0eeb315b0-DataRef", "variantKey": "Name", - "Name": "0x55b014d735b0-Name" + "Name": "0x55c0eeb315b0-Name" }, { - "id": "0x55b014d735b0-Name", + "id": "0x55c0eeb315b0-Name", "source": "kkk" }, { - "id": "0x55b014d991e0-Expr", + "id": "0x55c0eeb54470-Expr", "variantKey": "Add", - "Add": "0x55b014d99200-Add" + "Add": "0x55c0eeb54490-Add" }, { - "id": "0x55b014d99200-Add", - "left": "0x55b014d990f0-Expr", - "right": "0x55b014d99010-Expr", + "id": "0x55c0eeb54490-Add", + "left": "0x55c0eeb57680-Expr", + "right": "0x55c0eeb575a0-Expr", "op": "ADD" }, { - "id": "0x55b014d990f0-Expr", + "id": "0x55c0eeb57680-Expr", "variantKey": "Designator", - "Designator": "0x55b014d984e0-Designator" + "Designator": "0x55c0eeb56a70-Designator" }, { - "id": "0x55b014d984e0-Designator", + "id": "0x55c0eeb56a70-Designator", "variantKey": "DataRef", - "DataRef": "0x55b014d984f0-DataRef" + "DataRef": "0x55c0eeb56a80-DataRef" }, { - "id": "0x55b014d984f0-DataRef", + "id": "0x55c0eeb56a80-DataRef", "variantKey": "Name", - "Name": "0x55b014d984f0-Name" + "Name": "0x55c0eeb56a80-Name" }, { - "id": "0x55b014d984f0-Name", + "id": "0x55c0eeb56a80-Name", "source": "kkk" }, { - "id": "0x55b014d99010-Expr", + "id": "0x55c0eeb575a0-Expr", "variantKey": "Designator", - "Designator": "0x55b014d98fb0-Designator" + "Designator": "0x55c0eeb57540-Designator" }, { - "id": "0x55b014d98fb0-Designator", + "id": "0x55c0eeb57540-Designator", "variantKey": "DataRef", - "DataRef": "0x55b014d98fc0-DataRef" + "DataRef": "0x55c0eeb57550-DataRef" }, { - "id": "0x55b014d98fc0-DataRef", + "id": "0x55c0eeb57550-DataRef", "variantKey": "Name", - "Name": "0x55b014d98fc0-Name" + "Name": "0x55c0eeb57550-Name" }, { - "id": "0x55b014d98fc0-Name", + "id": "0x55c0eeb57550-Name", "source": "i8" }, { - "id": "0x55b014d99340-Statement", - "statement": "0x55b014d99350-EndDoStmt", + "id": "0x55c0eeb14490-Statement", + "statement": "0x55c0eeb144a0-EndDoStmt", "source": "end do" }, { - "id": "0x55b014d99350-EndDoStmt" + "id": "0x55c0eeb144a0-EndDoStmt" }, { - "id": "0x55b014d996c0-ExecutionPartConstruct", + "id": "0x55c0eeb57a20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55b014d996c0-ExecutableConstruct" + "ExecutableConstruct": "0x55c0eeb57a20-ExecutableConstruct" }, { - "id": "0x55b014d996c0-ExecutableConstruct", + "id": "0x55c0eeb57a20-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55b014d9bec0-IfConstruct" + "IfConstruct": "0x55c0eeb5a220-IfConstruct" }, { - "id": "0x55b014d9bec0-IfConstruct", - "Statement": "0x55b014d9bf90-Statement", + "id": "0x55c0eeb5a220-IfConstruct", + "Statement": "0x55c0eeb5a2f0-Statement", "ExecutionPartConstruct": [ - "0x55b014d98f60-ExecutionPartConstruct" + "0x55c0eeb574f0-ExecutionPartConstruct" ], - "ElseBlock": "0x55b014d9bf00-ElseBlock", - "Statement": "0x55b014d9bec0-Statement" + "ElseBlock": "0x55c0eeb5a260-ElseBlock", + "Statement": "0x55c0eeb5a220-Statement" }, { - "id": "0x55b014d9bf90-Statement", - "statement": "0x55b014d9bfa0-IfThenStmt", + "id": "0x55c0eeb5a2f0-Statement", + "statement": "0x55c0eeb5a300-IfThenStmt", "source": "if(int(kkk)==0) then" }, { - "id": "0x55b014d9bfa0-IfThenStmt", - "Expr": "0x55b014d998d0-Expr" + "id": "0x55c0eeb5a300-IfThenStmt", + "Expr": "0x55c0eeb57c30-Expr" }, { - "id": "0x55b014d998d0-Expr", + "id": "0x55c0eeb57c30-Expr", "variantKey": "EQ", - "EQ": "0x55b014d998f0-EQ" + "EQ": "0x55c0eeb57c50-EQ" }, { - "id": "0x55b014d998f0-EQ", - "left": "0x55b014d99460-Expr", - "right": "0x55b014d997f0-Expr", + "id": "0x55c0eeb57c50-EQ", + "left": "0x55c0eeb577c0-Expr", + "right": "0x55c0eeb57b50-Expr", "op": "EQ" }, { - "id": "0x55b014d99460-Expr", + "id": "0x55c0eeb577c0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55b014d97c20-FunctionReference" + "FunctionReference": "0x55c0eeb561b0-FunctionReference" }, { - "id": "0x55b014d97c20-FunctionReference", - "Call": "0x55b014d97c20-Call" + "id": "0x55c0eeb561b0-FunctionReference", + "Call": "0x55c0eeb561b0-Call" }, { - "id": "0x55b014d97c20-Call", - "ProcedureDesignator": "0x55b014d97c38-ProcedureDesignator", + "id": "0x55c0eeb561b0-Call", + "ProcedureDesignator": "0x55c0eeb561c8-ProcedureDesignator", "ActualArgSpec": [ - "0x55b014d99a20-ActualArgSpec" + "0x55c0eeb57d80-ActualArgSpec" ] }, { - "id": "0x55b014d97c38-ProcedureDesignator", + "id": "0x55c0eeb561c8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55b014d97c38-Name" + "Name": "0x55c0eeb561c8-Name" }, { - "id": "0x55b014d97c38-Name", + "id": "0x55c0eeb561c8-Name", "source": "int" }, { - "id": "0x55b014d99a20-ActualArgSpec", - "ActualArg": "0x55b014d99a20-ActualArg" + "id": "0x55c0eeb57d80-ActualArgSpec", + "ActualArg": "0x55c0eeb57d80-ActualArg" }, { - "id": "0x55b014d99a20-ActualArg", + "id": "0x55c0eeb57d80-ActualArg", "variantKey": "Expr", - "Expr": "0x55b014d99710-Expr" + "Expr": "0x55c0eeb57a70-Expr" }, { - "id": "0x55b014d99710-Expr", + "id": "0x55c0eeb57a70-Expr", "variantKey": "Designator", - "Designator": "0x55b014d999b0-Designator" + "Designator": "0x55c0eeb57d10-Designator" }, { - "id": "0x55b014d999b0-Designator", + "id": "0x55c0eeb57d10-Designator", "variantKey": "DataRef", - "DataRef": "0x55b014d999c0-DataRef" + "DataRef": "0x55c0eeb57d20-DataRef" }, { - "id": "0x55b014d999c0-DataRef", + "id": "0x55c0eeb57d20-DataRef", "variantKey": "Name", - "Name": "0x55b014d999c0-Name" + "Name": "0x55c0eeb57d20-Name" }, { - "id": "0x55b014d999c0-Name", + "id": "0x55c0eeb57d20-Name", "source": "kkk" }, { - "id": "0x55b014d997f0-Expr", + "id": "0x55c0eeb57b50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b014d99810-LiteralConstant" + "LiteralConstant": "0x55c0eeb57b70-LiteralConstant" }, { - "id": "0x55b014d99810-LiteralConstant", + "id": "0x55c0eeb57b70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55b014d99810-IntLiteralConstant" + "IntLiteralConstant": "0x55c0eeb57b70-IntLiteralConstant" }, { - "id": "0x55b014d99810-IntLiteralConstant", + "id": "0x55c0eeb57b70-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55b014d9bf78-ExecutionPartConstruct" + "id": "0x55c0eeb5a2d8-ExecutionPartConstruct" }, { - "id": "0x55b014d98f60-ExecutionPartConstruct", + "id": "0x55c0eeb574f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55b014d98f60-ExecutableConstruct" + "ExecutableConstruct": "0x55c0eeb574f0-ExecutableConstruct" }, { - "id": "0x55b014d98f60-ExecutableConstruct", + "id": "0x55c0eeb574f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55b014d98f60-Statement" + "Statement": "0x55c0eeb574f0-Statement" }, { - "id": "0x55b014d98f60-Statement", - "statement": "0x55b014d98f70-ActionStmt", - "source": "print *,\"OK\"" + "id": "0x55c0eeb574f0-Statement", + "statement": "0x55c0eeb57500-ActionStmt", + "source": "print *, \"OK\"" }, { - "id": "0x55b014d98f70-ActionStmt", + "id": "0x55c0eeb57500-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55b014d9b940-PrintStmt" + "PrintStmt": "0x55c0eeb59ca0-PrintStmt" }, { - "id": "0x55b014d9b940-PrintStmt", - "Format": "0x55b014d9b958-Format", + "id": "0x55c0eeb59ca0-PrintStmt", + "Format": "0x55c0eeb59cb8-Format", "OutputItem": [ - "0x55b014d9b860-OutputItem" + "0x55c0eeb59bc0-OutputItem" ] }, { - "id": "0x55b014d9b958-Format", + "id": "0x55c0eeb59cb8-Format", "variantKey": "Star", - "Star": "0x55b014d9b958-Star" + "Star": "0x55c0eeb59cb8-Star" }, { - "id": "0x55b014d9b958-Star" + "id": "0x55c0eeb59cb8-Star" }, { - "id": "0x55b014d9b860-OutputItem", + "id": "0x55c0eeb59bc0-OutputItem", "variantKey": "Expr", - "Expr": "0x55b014d9b860-Expr" + "Expr": "0x55c0eeb59bc0-Expr" }, { - "id": "0x55b014d9b860-Expr", + "id": "0x55c0eeb59bc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b014d9b880-LiteralConstant" + "LiteralConstant": "0x55c0eeb59be0-LiteralConstant" }, { - "id": "0x55b014d9b880-LiteralConstant", + "id": "0x55c0eeb59be0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55b014d9b880-CharLiteralConstant" + "CharLiteralConstant": "0x55c0eeb59be0-CharLiteralConstant" }, { - "id": "0x55b014d9b880-CharLiteralConstant", + "id": "0x55c0eeb59be0-CharLiteralConstant", "string": "OK" }, { - "id": "0x55b014d9bf00-ElseBlock", - "Statement": "0x55b014d9bf18-Statement", + "id": "0x55c0eeb5a260-ElseBlock", + "Statement": "0x55c0eeb5a278-Statement", "ExecutionPartConstruct": [ - "0x55b014d9be70-ExecutionPartConstruct" + "0x55c0eeb5a1d0-ExecutionPartConstruct" ] }, { - "id": "0x55b014d9bf18-Statement", - "statement": "0x55b014d9bf28-ElseStmt", + "id": "0x55c0eeb5a278-Statement", + "statement": "0x55c0eeb5a288-ElseStmt", "source": "else" }, { - "id": "0x55b014d9bf28-ElseStmt" + "id": "0x55c0eeb5a288-ElseStmt" }, { - "id": "0x55b014d9bf00-ExecutionPartConstruct" + "id": "0x55c0eeb5a260-ExecutionPartConstruct" }, { - "id": "0x55b014d9be70-ExecutionPartConstruct", + "id": "0x55c0eeb5a1d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55b014d9be70-ExecutableConstruct" + "ExecutableConstruct": "0x55c0eeb5a1d0-ExecutableConstruct" }, { - "id": "0x55b014d9be70-ExecutableConstruct", + "id": "0x55c0eeb5a1d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55b014d9be70-Statement" + "Statement": "0x55c0eeb5a1d0-Statement" }, { - "id": "0x55b014d9be70-Statement", - "statement": "0x55b014d9be80-ActionStmt", - "source": "print *,\"NG\",int(kkk)" + "id": "0x55c0eeb5a1d0-Statement", + "statement": "0x55c0eeb5a1e0-ActionStmt", + "source": "print *, \"NG\", int(kkk)" }, { - "id": "0x55b014d9be80-ActionStmt", + "id": "0x55c0eeb5a1e0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55b014d9bd60-PrintStmt" + "PrintStmt": "0x55c0eeb5a0c0-PrintStmt" }, { - "id": "0x55b014d9bd60-PrintStmt", - "Format": "0x55b014d9bd78-Format", + "id": "0x55c0eeb5a0c0-PrintStmt", + "Format": "0x55c0eeb5a0d8-Format", "OutputItem": [ - "0x55b014d9bc80-OutputItem", - "0x55b014d9bb90-OutputItem" + "0x55c0eeb59fe0-OutputItem", + "0x55c0eeb59ef0-OutputItem" ] }, { - "id": "0x55b014d9bd78-Format", + "id": "0x55c0eeb5a0d8-Format", "variantKey": "Star", - "Star": "0x55b014d9bd78-Star" + "Star": "0x55c0eeb5a0d8-Star" }, { - "id": "0x55b014d9bd78-Star" + "id": "0x55c0eeb5a0d8-Star" }, { - "id": "0x55b014d9bc80-OutputItem", + "id": "0x55c0eeb59fe0-OutputItem", "variantKey": "Expr", - "Expr": "0x55b014d9bc80-Expr" + "Expr": "0x55c0eeb59fe0-Expr" }, { - "id": "0x55b014d9bc80-Expr", + "id": "0x55c0eeb59fe0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55b014d9bca0-LiteralConstant" + "LiteralConstant": "0x55c0eeb5a000-LiteralConstant" }, { - "id": "0x55b014d9bca0-LiteralConstant", + "id": "0x55c0eeb5a000-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55b014d9bca0-CharLiteralConstant" + "CharLiteralConstant": "0x55c0eeb5a000-CharLiteralConstant" }, { - "id": "0x55b014d9bca0-CharLiteralConstant", + "id": "0x55c0eeb5a000-CharLiteralConstant", "string": "NG" }, { - "id": "0x55b014d9bb90-OutputItem", + "id": "0x55c0eeb59ef0-OutputItem", "variantKey": "Expr", - "Expr": "0x55b014d9bb90-Expr" + "Expr": "0x55c0eeb59ef0-Expr" }, { - "id": "0x55b014d9bb90-Expr", + "id": "0x55c0eeb59ef0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x55b014d97ec0-FunctionReference" + "FunctionReference": "0x55c0eeb56450-FunctionReference" }, { - "id": "0x55b014d97ec0-FunctionReference", - "Call": "0x55b014d97ec0-Call" + "id": "0x55c0eeb56450-FunctionReference", + "Call": "0x55c0eeb56450-Call" }, { - "id": "0x55b014d97ec0-Call", - "ProcedureDesignator": "0x55b014d97ed8-ProcedureDesignator", + "id": "0x55c0eeb56450-Call", + "ProcedureDesignator": "0x55c0eeb56468-ProcedureDesignator", "ActualArgSpec": [ - "0x55b014d995b0-ActualArgSpec" + "0x55c0eeb57910-ActualArgSpec" ] }, { - "id": "0x55b014d97ed8-ProcedureDesignator", + "id": "0x55c0eeb56468-ProcedureDesignator", "variantKey": "Name", - "Name": "0x55b014d97ed8-Name" + "Name": "0x55c0eeb56468-Name" }, { - "id": "0x55b014d97ed8-Name", + "id": "0x55c0eeb56468-Name", "source": "int" }, { - "id": "0x55b014d995b0-ActualArgSpec", - "ActualArg": "0x55b014d995b0-ActualArg" + "id": "0x55c0eeb57910-ActualArgSpec", + "ActualArg": "0x55c0eeb57910-ActualArg" }, { - "id": "0x55b014d995b0-ActualArg", + "id": "0x55c0eeb57910-ActualArg", "variantKey": "Expr", - "Expr": "0x55b014d9ba40-Expr" + "Expr": "0x55c0eeb59da0-Expr" }, { - "id": "0x55b014d9ba40-Expr", + "id": "0x55c0eeb59da0-Expr", "variantKey": "Designator", - "Designator": "0x55b014d98e90-Designator" + "Designator": "0x55c0eeb57420-Designator" }, { - "id": "0x55b014d98e90-Designator", + "id": "0x55c0eeb57420-Designator", "variantKey": "DataRef", - "DataRef": "0x55b014d98ea0-DataRef" + "DataRef": "0x55c0eeb57430-DataRef" }, { - "id": "0x55b014d98ea0-DataRef", + "id": "0x55c0eeb57430-DataRef", "variantKey": "Name", - "Name": "0x55b014d98ea0-Name" + "Name": "0x55c0eeb57430-Name" }, { - "id": "0x55b014d98ea0-Name", + "id": "0x55c0eeb57430-Name", "source": "kkk" }, { - "id": "0x55b014d9bec0-Statement", - "statement": "0x55b014d9bed0-EndIfStmt", + "id": "0x55c0eeb5a220-Statement", + "statement": "0x55c0eeb5a230-EndIfStmt", "source": "endif" }, { - "id": "0x55b014d9bed0-EndIfStmt" + "id": "0x55c0eeb5a230-EndIfStmt" }, { - "id": "0x55b014d9c070-Statement", - "statement": "0x55b014d9c080-EndProgramStmt", + "id": "0x55c0eeb5a3d0-Statement", + "statement": "0x55c0eeb5a3e0-EndProgramStmt", "source": "end" }, { - "id": "0x55b014d9c080-EndProgramStmt" + "id": "0x55c0eeb5a3e0-EndProgramStmt" } ], "enums": { diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.f90 new file mode 100644 index 00000000..33019403 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.f90 @@ -0,0 +1,31 @@ +integer*1 a1, a2 +real*16 b1, b2 +logical ok + +ok = .true. + +a1 = 1 +b1 = 1.1 +a2 = b1 +b2 = a1 + +if ((a2 - b2) .ne. 0) then + ok = .false. + print *, "TEST1-NG =>", a2 - b2 +endif + +a1 = -1 +b1 = -1.1 +a2 = b1 +b2 = a1 + +if ((a2 - b2) .ne. 0) then + ok = .false. + print *, "TEST2-NG =>", a2 - b2 +endif + +if (ok) then + print *, "OK" +endif + +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json new file mode 100644 index 00000000..fc892a98 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json @@ -0,0 +1,1796 @@ +{ + "nodes": [ + { + "id": "0x55ee11df6cc0-Program", + "ProgramUnit": [ + "0x55ee11e1f660-ProgramUnit" + ] + }, + { + "id": "0x55ee11e1f660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55ee11e20a50-MainProgram" + }, + { + "id": "0x55ee11e20a50-MainProgram", + "SpecificationPart": "0x55ee11e20af0-SpecificationPart", + "ExecutionPart": "0x55ee11e20ad8-ExecutionPart", + "Statement": "0x55ee11e20a50-Statement" + }, + { + "id": "0x55ee11e20af0-SpecificationPart", + "ImplicitPart": "0x55ee11e20b08-ImplicitPart", + "DeclarationConstruct": [ + "0x55ee11dfd5b0-DeclarationConstruct", + "0x55ee11dfd240-DeclarationConstruct", + "0x55ee11dcf140-DeclarationConstruct" + ] + }, + { + "id": "0x55ee11e20b08-ImplicitPart" + }, + { + "id": "0x55ee11dfd5b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ee11dfd5b0-SpecificationConstruct" + }, + { + "id": "0x55ee11dfd5b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11dfd5b0-Statement" + }, + { + "id": "0x55ee11dfd5b0-Statement", + "statement": "0x55ee11e05250-TypeDeclarationStmt", + "source": "integer*1 a1, a2" + }, + { + "id": "0x55ee11e05250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ee11e05280-DeclarationTypeSpec", + "EntityDecl": [ + "0x55ee11e21f30-EntityDecl", + "0x55ee11dcf050-EntityDecl" + ] + }, + { + "id": "0x55ee11e05280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ee11e05280-IntrinsicTypeSpec" + }, + { + "id": "0x55ee11e05280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55ee11e05280-IntegerTypeSpec" + }, + { + "id": "0x55ee11e05280-IntegerTypeSpec", + "KindSelector": "0x55ee11e05280-KindSelector" + }, + { + "id": "0x55ee11e05280-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55ee11e05280-StarSize" + }, + { + "id": "0x55ee11e05280-StarSize", + "uint64_t": "1" + }, + { + "id": "0x55ee11e21f30-EntityDecl", + "Name": "0x55ee11e21fe8-Name" + }, + { + "id": "0x55ee11e21fe8-Name", + "source": "a1" + }, + { + "id": "0x55ee11dcf050-EntityDecl", + "Name": "0x55ee11dcf108-Name" + }, + { + "id": "0x55ee11dcf108-Name", + "source": "a2" + }, + { + "id": "0x55ee11dfd240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ee11dfd240-SpecificationConstruct" + }, + { + "id": "0x55ee11dfd240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11dfd240-Statement" + }, + { + "id": "0x55ee11dfd240-Statement", + "statement": "0x55ee11e21d00-TypeDeclarationStmt", + "source": "real*16 b1, b2" + }, + { + "id": "0x55ee11e21d00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ee11e21d30-DeclarationTypeSpec", + "EntityDecl": [ + "0x55ee11e212f0-EntityDecl", + "0x55ee11e21200-EntityDecl" + ] + }, + { + "id": "0x55ee11e21d30-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ee11e21d30-IntrinsicTypeSpec" + }, + { + "id": "0x55ee11e21d30-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x55ee11e21d30-Real" + }, + { + "id": "0x55ee11e21d30-Real" + }, + { + "id": "0x55ee11e21d30-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55ee11e21d30-StarSize" + }, + { + "id": "0x55ee11e21d30-StarSize", + "uint64_t": "16" + }, + { + "id": "0x55ee11e212f0-EntityDecl", + "Name": "0x55ee11e213a8-Name" + }, + { + "id": "0x55ee11e213a8-Name", + "source": "b1" + }, + { + "id": "0x55ee11e21200-EntityDecl", + "Name": "0x55ee11e212b8-Name" + }, + { + "id": "0x55ee11e212b8-Name", + "source": "b2" + }, + { + "id": "0x55ee11dcf140-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55ee11dcf140-SpecificationConstruct" + }, + { + "id": "0x55ee11dcf140-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11dcf140-Statement" + }, + { + "id": "0x55ee11dcf140-Statement", + "statement": "0x55ee11e21d80-TypeDeclarationStmt", + "source": "logical ok" + }, + { + "id": "0x55ee11e21d80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55ee11e21db0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55ee11e21460-EntityDecl" + ] + }, + { + "id": "0x55ee11e21db0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55ee11e21db0-IntrinsicTypeSpec" + }, + { + "id": "0x55ee11e21db0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55ee11e21db0-Logical" + }, + { + "id": "0x55ee11e21db0-Logical" + }, + { + "id": "0x55ee11e21460-EntityDecl", + "Name": "0x55ee11e21518-Name" + }, + { + "id": "0x55ee11e21518-Name", + "source": "ok" + }, + { + "id": "0x55ee11e20ad8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55ee11e22890-ExecutionPartConstruct", + "0x55ee11e22b60-ExecutionPartConstruct", + "0x55ee11e22520-ExecutionPartConstruct", + "0x55ee11e221b0-ExecutionPartConstruct", + "0x55ee11e23130-ExecutionPartConstruct", + "0x55ee11e231f0-ExecutionPartConstruct", + "0x55ee11e238c0-ExecutionPartConstruct", + "0x55ee11e234e0-ExecutionPartConstruct", + "0x55ee11e27200-ExecutionPartConstruct", + "0x55ee11e27430-ExecutionPartConstruct", + "0x55ee11e274f0-ExecutionPartConstruct", + "0x55ee11e27030-ExecutionPartConstruct" + ] + }, + { + "id": "0x55ee11e20ad8-ExecutionPartConstruct" + }, + { + "id": "0x55ee11e22890-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e22890-ExecutableConstruct" + }, + { + "id": "0x55ee11e22890-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e22890-Statement" + }, + { + "id": "0x55ee11e22890-Statement", + "statement": "0x55ee11e228a0-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x55ee11e228a0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e20940-AssignmentStmt" + }, + { + "id": "0x55ee11e20940-AssignmentStmt", + "Variable": "0x55ee11e20a20-Variable", + "Expr": "0x55ee11e20950-Expr" + }, + { + "id": "0x55ee11e20a20-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11dcf190-Designator" + }, + { + "id": "0x55ee11dcf190-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11dcf1a0-DataRef" + }, + { + "id": "0x55ee11dcf1a0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11dcf1a0-Name" + }, + { + "id": "0x55ee11dcf1a0-Name", + "source": "ok" + }, + { + "id": "0x55ee11e20950-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e20970-LiteralConstant" + }, + { + "id": "0x55ee11e20970-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55ee11e20970-LogicalLiteralConstant" + }, + { + "id": "0x55ee11e20970-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x55ee11e22b60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e22b60-ExecutableConstruct" + }, + { + "id": "0x55ee11e22b60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e22b60-Statement" + }, + { + "id": "0x55ee11e22b60-Statement", + "statement": "0x55ee11e22b70-ActionStmt", + "source": "a1 = 1" + }, + { + "id": "0x55ee11e22b70-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e22a40-AssignmentStmt" + }, + { + "id": "0x55ee11e22a40-AssignmentStmt", + "Variable": "0x55ee11e22b20-Variable", + "Expr": "0x55ee11e22a50-Expr" + }, + { + "id": "0x55ee11e22b20-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e21820-Designator" + }, + { + "id": "0x55ee11e21820-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e21830-DataRef" + }, + { + "id": "0x55ee11e21830-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e21830-Name" + }, + { + "id": "0x55ee11e21830-Name", + "source": "a1" + }, + { + "id": "0x55ee11e22a50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e22a70-LiteralConstant" + }, + { + "id": "0x55ee11e22a70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ee11e22a70-IntLiteralConstant" + }, + { + "id": "0x55ee11e22a70-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ee11e22520-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e22520-ExecutableConstruct" + }, + { + "id": "0x55ee11e22520-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e22520-Statement" + }, + { + "id": "0x55ee11e22520-Statement", + "statement": "0x55ee11e22530-ActionStmt", + "source": "b1 = 1.1" + }, + { + "id": "0x55ee11e22530-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e22400-AssignmentStmt" + }, + { + "id": "0x55ee11e22400-AssignmentStmt", + "Variable": "0x55ee11e224e0-Variable", + "Expr": "0x55ee11e22410-Expr" + }, + { + "id": "0x55ee11e224e0-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e22140-Designator" + }, + { + "id": "0x55ee11e22140-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e22150-DataRef" + }, + { + "id": "0x55ee11e22150-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e22150-Name" + }, + { + "id": "0x55ee11e22150-Name", + "source": "b1" + }, + { + "id": "0x55ee11e22410-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e22430-LiteralConstant" + }, + { + "id": "0x55ee11e22430-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55ee11e22430-RealLiteralConstant" + }, + { + "id": "0x55ee11e22430-RealLiteralConstant", + "real": "0x55ee11e22430-Real" + }, + { + "id": "0x55ee11e22430-Real", + "source": "1.1" + }, + { + "id": "0x55ee11e221b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e221b0-ExecutableConstruct" + }, + { + "id": "0x55ee11e221b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e221b0-Statement" + }, + { + "id": "0x55ee11e221b0-Statement", + "statement": "0x55ee11e221c0-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55ee11e221c0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e22e30-AssignmentStmt" + }, + { + "id": "0x55ee11e22e30-AssignmentStmt", + "Variable": "0x55ee11e22f10-Variable", + "Expr": "0x55ee11e22e40-Expr" + }, + { + "id": "0x55ee11e22f10-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e22bb0-Designator" + }, + { + "id": "0x55ee11e22bb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e22bc0-DataRef" + }, + { + "id": "0x55ee11e22bc0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e22bc0-Name" + }, + { + "id": "0x55ee11e22bc0-Name", + "source": "a2" + }, + { + "id": "0x55ee11e22e40-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e22630-Designator" + }, + { + "id": "0x55ee11e22630-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e22640-DataRef" + }, + { + "id": "0x55ee11e22640-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e22640-Name" + }, + { + "id": "0x55ee11e22640-Name", + "source": "b1" + }, + { + "id": "0x55ee11e23130-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e23130-ExecutableConstruct" + }, + { + "id": "0x55ee11e23130-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e23130-Statement" + }, + { + "id": "0x55ee11e23130-Statement", + "statement": "0x55ee11e23140-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55ee11e23140-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e22fa0-AssignmentStmt" + }, + { + "id": "0x55ee11e22fa0-AssignmentStmt", + "Variable": "0x55ee11e23080-Variable", + "Expr": "0x55ee11e22fb0-Expr" + }, + { + "id": "0x55ee11e23080-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e22570-Designator" + }, + { + "id": "0x55ee11e22570-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e22580-DataRef" + }, + { + "id": "0x55ee11e22580-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e22580-Name" + }, + { + "id": "0x55ee11e22580-Name", + "source": "b2" + }, + { + "id": "0x55ee11e22fb0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e22f40-Designator" + }, + { + "id": "0x55ee11e22f40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e22f50-DataRef" + }, + { + "id": "0x55ee11e22f50-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e22f50-Name" + }, + { + "id": "0x55ee11e22f50-Name", + "source": "a1" + }, + { + "id": "0x55ee11e231f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e231f0-ExecutableConstruct" + }, + { + "id": "0x55ee11e231f0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55ee11de0490-IfConstruct" + }, + { + "id": "0x55ee11de0490-IfConstruct", + "Statement": "0x55ee11de0560-Statement", + "ExecutionPartConstruct": [ + "0x55ee11e22210-ExecutionPartConstruct", + "0x55ee11e26b90-ExecutionPartConstruct" + ], + "Statement": "0x55ee11de0490-Statement" + }, + { + "id": "0x55ee11de0560-Statement", + "statement": "0x55ee11de0570-IfThenStmt", + "source": "if((a2 - b2) .ne. 0) then" + }, + { + "id": "0x55ee11de0570-IfThenStmt", + "Expr": "0x55ee11e23ad0-Expr" + }, + { + "id": "0x55ee11e23ad0-Expr", + "variantKey": "NE", + "NE": "0x55ee11e23af0-NE" + }, + { + "id": "0x55ee11e23af0-NE", + "left": "0x55ee11e23760-Expr", + "right": "0x55ee11e23680-Expr", + "op": "NE" + }, + { + "id": "0x55ee11e23760-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55ee11e23780-Parentheses" + }, + { + "id": "0x55ee11e23780-Parentheses", + "Expr": "0x55ee11e235a0-Expr" + }, + { + "id": "0x55ee11e235a0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55ee11e235c0-Subtract" + }, + { + "id": "0x55ee11e235c0-Subtract", + "left": "0x55ee11e23c90-Expr", + "right": "0x55ee11e23bb0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55ee11e23c90-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e24730-Designator" + }, + { + "id": "0x55ee11e24730-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e24740-DataRef" + }, + { + "id": "0x55ee11e24740-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e24740-Name" + }, + { + "id": "0x55ee11e24740-Name", + "source": "a2" + }, + { + "id": "0x55ee11e23bb0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e24950-Designator" + }, + { + "id": "0x55ee11e24950-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e24960-DataRef" + }, + { + "id": "0x55ee11e24960-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e24960-Name" + }, + { + "id": "0x55ee11e24960-Name", + "source": "b2" + }, + { + "id": "0x55ee11e23680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e236a0-LiteralConstant" + }, + { + "id": "0x55ee11e236a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ee11e236a0-IntLiteralConstant" + }, + { + "id": "0x55ee11e236a0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ee11de0548-ExecutionPartConstruct" + }, + { + "id": "0x55ee11e22210-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e22210-ExecutableConstruct" + }, + { + "id": "0x55ee11e22210-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e22210-Statement" + }, + { + "id": "0x55ee11e22210-Statement", + "statement": "0x55ee11e22220-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55ee11e22220-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e23eb0-AssignmentStmt" + }, + { + "id": "0x55ee11e23eb0-AssignmentStmt", + "Variable": "0x55ee11e23f90-Variable", + "Expr": "0x55ee11e23ec0-Expr" + }, + { + "id": "0x55ee11e23f90-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e217c0-Designator" + }, + { + "id": "0x55ee11e217c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e217d0-DataRef" + }, + { + "id": "0x55ee11e217d0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e217d0-Name" + }, + { + "id": "0x55ee11e217d0-Name", + "source": "ok" + }, + { + "id": "0x55ee11e23ec0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e23ee0-LiteralConstant" + }, + { + "id": "0x55ee11e23ee0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55ee11e23ee0-LogicalLiteralConstant" + }, + { + "id": "0x55ee11e23ee0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55ee11e26b90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e26b90-ExecutableConstruct" + }, + { + "id": "0x55ee11e26b90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e26b90-Statement" + }, + { + "id": "0x55ee11e26b90-Statement", + "statement": "0x55ee11e26ba0-ActionStmt", + "source": "print *, \"TEST1-NG =>\", a2 - b2" + }, + { + "id": "0x55ee11e26ba0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ee11e26a80-PrintStmt" + }, + { + "id": "0x55ee11e26a80-PrintStmt", + "Format": "0x55ee11e26a98-Format", + "OutputItem": [ + "0x55ee11e269a0-OutputItem", + "0x55ee11e268b0-OutputItem" + ] + }, + { + "id": "0x55ee11e26a98-Format", + "variantKey": "Star", + "Star": "0x55ee11e26a98-Star" + }, + { + "id": "0x55ee11e26a98-Star" + }, + { + "id": "0x55ee11e269a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ee11e269a0-Expr" + }, + { + "id": "0x55ee11e269a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e269c0-LiteralConstant" + }, + { + "id": "0x55ee11e269c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ee11e269c0-CharLiteralConstant" + }, + { + "id": "0x55ee11e269c0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x55ee11e268b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ee11e268b0-Expr" + }, + { + "id": "0x55ee11e268b0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55ee11e268d0-Subtract" + }, + { + "id": "0x55ee11e268d0-Subtract", + "left": "0x55ee11e267c0-Expr", + "right": "0x55ee11e266e0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55ee11e267c0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e23d70-Designator" + }, + { + "id": "0x55ee11e23d70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e23d80-DataRef" + }, + { + "id": "0x55ee11e23d80-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e23d80-Name" + }, + { + "id": "0x55ee11e23d80-Name", + "source": "a2" + }, + { + "id": "0x55ee11e266e0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e26680-Designator" + }, + { + "id": "0x55ee11e26680-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e26690-DataRef" + }, + { + "id": "0x55ee11e26690-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e26690-Name" + }, + { + "id": "0x55ee11e26690-Name", + "source": "b2" + }, + { + "id": "0x55ee11de0490-Statement", + "statement": "0x55ee11de04a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55ee11de04a0-EndIfStmt" + }, + { + "id": "0x55ee11e238c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e238c0-ExecutableConstruct" + }, + { + "id": "0x55ee11e238c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e238c0-Statement" + }, + { + "id": "0x55ee11e238c0-Statement", + "statement": "0x55ee11e238d0-ActionStmt", + "source": "a1 = -1" + }, + { + "id": "0x55ee11e238d0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e26cc0-AssignmentStmt" + }, + { + "id": "0x55ee11e26cc0-AssignmentStmt", + "Variable": "0x55ee11e26da0-Variable", + "Expr": "0x55ee11e26cd0-Expr" + }, + { + "id": "0x55ee11e26da0-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11df6af0-Designator" + }, + { + "id": "0x55ee11df6af0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11df6b00-DataRef" + }, + { + "id": "0x55ee11df6b00-DataRef", + "variantKey": "Name", + "Name": "0x55ee11df6b00-Name" + }, + { + "id": "0x55ee11df6b00-Name", + "source": "a1" + }, + { + "id": "0x55ee11e26cd0-Expr", + "variantKey": "Negate", + "Negate": "0x55ee11e26cf0-Negate" + }, + { + "id": "0x55ee11e26cf0-Negate", + "Expr": "0x55ee11e26be0-Expr" + }, + { + "id": "0x55ee11e26be0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e26c00-LiteralConstant" + }, + { + "id": "0x55ee11e26c00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ee11e26c00-IntLiteralConstant" + }, + { + "id": "0x55ee11e26c00-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55ee11e234e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e234e0-ExecutableConstruct" + }, + { + "id": "0x55ee11e234e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e234e0-Statement" + }, + { + "id": "0x55ee11e234e0-Statement", + "statement": "0x55ee11e234f0-ActionStmt", + "source": "b1 = -1.1" + }, + { + "id": "0x55ee11e234f0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e26eb0-AssignmentStmt" + }, + { + "id": "0x55ee11e26eb0-AssignmentStmt", + "Variable": "0x55ee11e26f90-Variable", + "Expr": "0x55ee11e26ec0-Expr" + }, + { + "id": "0x55ee11e26f90-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e232b0-Designator" + }, + { + "id": "0x55ee11e232b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e232c0-DataRef" + }, + { + "id": "0x55ee11e232c0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e232c0-Name" + }, + { + "id": "0x55ee11e232c0-Name", + "source": "b1" + }, + { + "id": "0x55ee11e26ec0-Expr", + "variantKey": "Negate", + "Negate": "0x55ee11e26ee0-Negate" + }, + { + "id": "0x55ee11e26ee0-Negate", + "Expr": "0x55ee11e26dd0-Expr" + }, + { + "id": "0x55ee11e26dd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e26df0-LiteralConstant" + }, + { + "id": "0x55ee11e26df0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55ee11e26df0-RealLiteralConstant" + }, + { + "id": "0x55ee11e26df0-RealLiteralConstant", + "real": "0x55ee11e26df0-Real" + }, + { + "id": "0x55ee11e26df0-Real", + "source": "1.1" + }, + { + "id": "0x55ee11e27200-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e27200-ExecutableConstruct" + }, + { + "id": "0x55ee11e27200-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e27200-Statement" + }, + { + "id": "0x55ee11e27200-Statement", + "statement": "0x55ee11e27210-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55ee11e27210-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e270e0-AssignmentStmt" + }, + { + "id": "0x55ee11e270e0-AssignmentStmt", + "Variable": "0x55ee11e271c0-Variable", + "Expr": "0x55ee11e270f0-Expr" + }, + { + "id": "0x55ee11e271c0-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e26620-Designator" + }, + { + "id": "0x55ee11e26620-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e26630-DataRef" + }, + { + "id": "0x55ee11e26630-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e26630-Name" + }, + { + "id": "0x55ee11e26630-Name", + "source": "a2" + }, + { + "id": "0x55ee11e270f0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e27080-Designator" + }, + { + "id": "0x55ee11e27080-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e27090-DataRef" + }, + { + "id": "0x55ee11e27090-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e27090-Name" + }, + { + "id": "0x55ee11e27090-Name", + "source": "b1" + }, + { + "id": "0x55ee11e27430-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e27430-ExecutableConstruct" + }, + { + "id": "0x55ee11e27430-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e27430-Statement" + }, + { + "id": "0x55ee11e27430-Statement", + "statement": "0x55ee11e27440-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55ee11e27440-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e27310-AssignmentStmt" + }, + { + "id": "0x55ee11e27310-AssignmentStmt", + "Variable": "0x55ee11e273f0-Variable", + "Expr": "0x55ee11e27320-Expr" + }, + { + "id": "0x55ee11e273f0-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e26fc0-Designator" + }, + { + "id": "0x55ee11e26fc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e26fd0-DataRef" + }, + { + "id": "0x55ee11e26fd0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e26fd0-Name" + }, + { + "id": "0x55ee11e26fd0-Name", + "source": "b2" + }, + { + "id": "0x55ee11e27320-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e272b0-Designator" + }, + { + "id": "0x55ee11e272b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e272c0-DataRef" + }, + { + "id": "0x55ee11e272c0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e272c0-Name" + }, + { + "id": "0x55ee11e272c0-Name", + "source": "a1" + }, + { + "id": "0x55ee11e274f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e274f0-ExecutableConstruct" + }, + { + "id": "0x55ee11e274f0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55ee11e28390-IfConstruct" + }, + { + "id": "0x55ee11e28390-IfConstruct", + "Statement": "0x55ee11e28460-Statement", + "ExecutionPartConstruct": [ + "0x55ee11e27260-ExecutionPartConstruct", + "0x55ee11e28340-ExecutionPartConstruct" + ], + "Statement": "0x55ee11e28390-Statement" + }, + { + "id": "0x55ee11e28460-Statement", + "statement": "0x55ee11e28470-IfThenStmt", + "source": "if((a2 - b2) .ne. 0) then" + }, + { + "id": "0x55ee11e28470-IfThenStmt", + "Expr": "0x55ee11e27900-Expr" + }, + { + "id": "0x55ee11e27900-Expr", + "variantKey": "NE", + "NE": "0x55ee11e27920-NE" + }, + { + "id": "0x55ee11e27920-NE", + "left": "0x55ee11e277c0-Expr", + "right": "0x55ee11e276e0-Expr", + "op": "NE" + }, + { + "id": "0x55ee11e277c0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55ee11e277e0-Parentheses" + }, + { + "id": "0x55ee11e277e0-Parentheses", + "Expr": "0x55ee11e27600-Expr" + }, + { + "id": "0x55ee11e27600-Expr", + "variantKey": "Subtract", + "Subtract": "0x55ee11e27620-Subtract" + }, + { + "id": "0x55ee11e27620-Subtract", + "left": "0x55ee11e27ac0-Expr", + "right": "0x55ee11e279e0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55ee11e27ac0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e27d10-Designator" + }, + { + "id": "0x55ee11e27d10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e27d20-DataRef" + }, + { + "id": "0x55ee11e27d20-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e27d20-Name" + }, + { + "id": "0x55ee11e27d20-Name", + "source": "a2" + }, + { + "id": "0x55ee11e279e0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e27d70-Designator" + }, + { + "id": "0x55ee11e27d70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e27d80-DataRef" + }, + { + "id": "0x55ee11e27d80-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e27d80-Name" + }, + { + "id": "0x55ee11e27d80-Name", + "source": "b2" + }, + { + "id": "0x55ee11e276e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e27700-LiteralConstant" + }, + { + "id": "0x55ee11e27700-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55ee11e27700-IntLiteralConstant" + }, + { + "id": "0x55ee11e27700-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55ee11e28448-ExecutionPartConstruct" + }, + { + "id": "0x55ee11e27260-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e27260-ExecutableConstruct" + }, + { + "id": "0x55ee11e27260-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e27260-Statement" + }, + { + "id": "0x55ee11e27260-Statement", + "statement": "0x55ee11e27270-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55ee11e27270-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55ee11e27c00-AssignmentStmt" + }, + { + "id": "0x55ee11e27c00-AssignmentStmt", + "Variable": "0x55ee11e27ce0-Variable", + "Expr": "0x55ee11e27c10-Expr" + }, + { + "id": "0x55ee11e27ce0-Variable", + "variantKey": "Designator", + "Designator": "0x55ee11e23180-Designator" + }, + { + "id": "0x55ee11e23180-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e23190-DataRef" + }, + { + "id": "0x55ee11e23190-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e23190-Name" + }, + { + "id": "0x55ee11e23190-Name", + "source": "ok" + }, + { + "id": "0x55ee11e27c10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e27c30-LiteralConstant" + }, + { + "id": "0x55ee11e27c30-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55ee11e27c30-LogicalLiteralConstant" + }, + { + "id": "0x55ee11e27c30-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55ee11e28340-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e28340-ExecutableConstruct" + }, + { + "id": "0x55ee11e28340-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e28340-Statement" + }, + { + "id": "0x55ee11e28340-Statement", + "statement": "0x55ee11e28350-ActionStmt", + "source": "print *, \"TEST2-NG =>\", a2 - b2" + }, + { + "id": "0x55ee11e28350-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ee11e28230-PrintStmt" + }, + { + "id": "0x55ee11e28230-PrintStmt", + "Format": "0x55ee11e28248-Format", + "OutputItem": [ + "0x55ee11e28150-OutputItem", + "0x55ee11e28060-OutputItem" + ] + }, + { + "id": "0x55ee11e28248-Format", + "variantKey": "Star", + "Star": "0x55ee11e28248-Star" + }, + { + "id": "0x55ee11e28248-Star" + }, + { + "id": "0x55ee11e28150-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ee11e28150-Expr" + }, + { + "id": "0x55ee11e28150-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e28170-LiteralConstant" + }, + { + "id": "0x55ee11e28170-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ee11e28170-CharLiteralConstant" + }, + { + "id": "0x55ee11e28170-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x55ee11e28060-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ee11e28060-Expr" + }, + { + "id": "0x55ee11e28060-Expr", + "variantKey": "Subtract", + "Subtract": "0x55ee11e28080-Subtract" + }, + { + "id": "0x55ee11e28080-Subtract", + "left": "0x55ee11e27f70-Expr", + "right": "0x55ee11e27e90-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55ee11e27f70-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e27ba0-Designator" + }, + { + "id": "0x55ee11e27ba0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e27bb0-DataRef" + }, + { + "id": "0x55ee11e27bb0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e27bb0-Name" + }, + { + "id": "0x55ee11e27bb0-Name", + "source": "a2" + }, + { + "id": "0x55ee11e27e90-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e27e30-Designator" + }, + { + "id": "0x55ee11e27e30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e27e40-DataRef" + }, + { + "id": "0x55ee11e27e40-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e27e40-Name" + }, + { + "id": "0x55ee11e27e40-Name", + "source": "b2" + }, + { + "id": "0x55ee11e28390-Statement", + "statement": "0x55ee11e283a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55ee11e283a0-EndIfStmt" + }, + { + "id": "0x55ee11e27030-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e27030-ExecutableConstruct" + }, + { + "id": "0x55ee11e27030-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55ee11e28890-IfConstruct" + }, + { + "id": "0x55ee11e28890-IfConstruct", + "Statement": "0x55ee11e28960-Statement", + "ExecutionPartConstruct": [ + "0x55ee11e27550-ExecutionPartConstruct" + ], + "Statement": "0x55ee11e28890-Statement" + }, + { + "id": "0x55ee11e28960-Statement", + "statement": "0x55ee11e28970-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x55ee11e28970-IfThenStmt", + "Expr": "0x55ee11e284b0-Expr" + }, + { + "id": "0x55ee11e284b0-Expr", + "variantKey": "Designator", + "Designator": "0x55ee11e225d0-Designator" + }, + { + "id": "0x55ee11e225d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55ee11e225e0-DataRef" + }, + { + "id": "0x55ee11e225e0-DataRef", + "variantKey": "Name", + "Name": "0x55ee11e225e0-Name" + }, + { + "id": "0x55ee11e225e0-Name", + "source": "ok" + }, + { + "id": "0x55ee11e28948-ExecutionPartConstruct" + }, + { + "id": "0x55ee11e27550-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55ee11e27550-ExecutableConstruct" + }, + { + "id": "0x55ee11e27550-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55ee11e27550-Statement" + }, + { + "id": "0x55ee11e27550-Statement", + "statement": "0x55ee11e27560-ActionStmt", + "source": "print *, \"OK\"" + }, + { + "id": "0x55ee11e27560-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55ee11e28790-PrintStmt" + }, + { + "id": "0x55ee11e28790-PrintStmt", + "Format": "0x55ee11e287a8-Format", + "OutputItem": [ + "0x55ee11e286b0-OutputItem" + ] + }, + { + "id": "0x55ee11e287a8-Format", + "variantKey": "Star", + "Star": "0x55ee11e287a8-Star" + }, + { + "id": "0x55ee11e287a8-Star" + }, + { + "id": "0x55ee11e286b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55ee11e286b0-Expr" + }, + { + "id": "0x55ee11e286b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55ee11e286d0-LiteralConstant" + }, + { + "id": "0x55ee11e286d0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55ee11e286d0-CharLiteralConstant" + }, + { + "id": "0x55ee11e286d0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55ee11e28890-Statement", + "statement": "0x55ee11e288a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55ee11e288a0-EndIfStmt" + }, + { + "id": "0x55ee11e20a50-Statement", + "statement": "0x55ee11e20a60-EndProgramStmt", + "source": "end" + }, + { + "id": "0x55ee11e20a60-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 e18c3749..bbc212cc 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -346,4 +346,16 @@ void testFujitsu0000_0000Native() { testNative("fujitsu/0000/0000_0000.f90"); } } + + @Test + void testFujitsu0000_0001() { + testJson("fujitsu/0000/0000_0001.json"); + } + + @Test + void testFujitsu0000_0001Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0001.f90"); + } + } } From f3cb6ed36dbb3b4900cd796db9d4654cd8aa47dd Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 14:22:38 +0100 Subject: [PATCH 003/132] Add no_program_stmt.f90 --- .../program/no_program_stmt.expected.f90 | 2 + .../parser/program/no_program_stmt.f90 | 2 + .../parser/program/no_program_stmt.json | 411 ++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 427 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/program/no_program_stmt.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/no_program_stmt.f90 create mode 100644 FortranParser/resources-test/fortran/parser/program/no_program_stmt.json 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 new file mode 100644 index 00000000..5320c955 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/no_program_stmt.expected.f90 @@ -0,0 +1,2 @@ +PRINT *, "Hello World!" +END PROGRAM \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/no_program_stmt.f90 b/FortranParser/resources-test/fortran/parser/program/no_program_stmt.f90 new file mode 100644 index 00000000..f777b735 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/no_program_stmt.f90 @@ -0,0 +1,2 @@ +print *, "Hello World!" +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/program/no_program_stmt.json b/FortranParser/resources-test/fortran/parser/program/no_program_stmt.json new file mode 100644 index 00000000..dcfda428 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/program/no_program_stmt.json @@ -0,0 +1,411 @@ +{ + "nodes": [ + { + "id": "0x558008ef7cc0-Program", + "ProgramUnit": [ + "0x558008f20660-ProgramUnit" + ] + }, + { + "id": "0x558008f20660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x558008f23670-MainProgram" + }, + { + "id": "0x558008f23670-MainProgram", + "SpecificationPart": "0x558008f23710-SpecificationPart", + "ExecutionPart": "0x558008f236f8-ExecutionPart", + "Statement": "0x558008f23670-Statement" + }, + { + "id": "0x558008f23710-SpecificationPart", + "ImplicitPart": "0x558008f23728-ImplicitPart" + }, + { + "id": "0x558008f23728-ImplicitPart" + }, + { + "id": "0x558008f236f8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x558008f233c0-ExecutionPartConstruct" + ] + }, + { + "id": "0x558008f236f8-ExecutionPartConstruct" + }, + { + "id": "0x558008f233c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558008f233c0-ExecutableConstruct" + }, + { + "id": "0x558008f233c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558008f233c0-Statement" + }, + { + "id": "0x558008f233c0-Statement", + "statement": "0x558008f233d0-ActionStmt", + "source": "print *, \"Hello World!\"" + }, + { + "id": "0x558008f233d0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x558008f232b0-PrintStmt" + }, + { + "id": "0x558008f232b0-PrintStmt", + "Format": "0x558008f232c8-Format", + "OutputItem": [ + "0x558008f23160-OutputItem" + ] + }, + { + "id": "0x558008f232c8-Format", + "variantKey": "Star", + "Star": "0x558008f232c8-Star" + }, + { + "id": "0x558008f232c8-Star" + }, + { + "id": "0x558008f23160-OutputItem", + "variantKey": "Expr", + "Expr": "0x558008f23160-Expr" + }, + { + "id": "0x558008f23160-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558008f23180-LiteralConstant" + }, + { + "id": "0x558008f23180-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558008f23180-CharLiteralConstant" + }, + { + "id": "0x558008f23180-CharLiteralConstant", + "string": "Hello World!" + }, + { + "id": "0x558008f23670-Statement", + "statement": "0x558008f23680-EndProgramStmt", + "source": "end" + }, + { + "id": "0x558008f23680-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 bbc212cc..cc5b4a43 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -335,6 +335,18 @@ void testDirectiveNative() { } } + @Test + void testNoProgramStmt() { + testJson("program/no_program_stmt.json"); + } + + @Test + void testNoProgramStmtNative() { + if (SpecsPlatforms.isLinux()) { + testNative("program/no_program_stmt.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 9adcbd3f233468456a2bbf180f48ea578ced78df Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 14:47:14 +0100 Subject: [PATCH 004/132] Add support for program units with no program statements --- .../fortran/parser/program/no_program_stmt.expected.f90 | 2 +- .../fe/specs/fortran/parser/processors/ProgramProcessors.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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 5320c955..e38fd48c 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 PROGRAM \ No newline at end of file +END \ No newline at end of file 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 cf6d245f..8927923c 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 @@ -31,7 +31,7 @@ public void program(FortranFile fortranFile) { public void mainProgram(MainProgram mainProgram) { - var name = attributes().getString(mainProgram, "source", FlangName.PROGRAM_STMT, FlangName.NAME); + var name = attributes().getOptionalString(mainProgram, "source", FlangName.PROGRAM_STMT, FlangName.NAME); // [specification-part] mainProgram.addChild(getChild(mainProgram, FlangName.SPECIFICATION_PART)); // [execution-part] @@ -41,7 +41,7 @@ public void mainProgram(MainProgram mainProgram) { mainProgram.addChild(getChild(mainProgram, FlangName.INTERNAL_SUBPROGRAM_PART)); } - mainProgram.setOptional(MainProgram.PROGRAM_NAME, name); + mainProgram.set(MainProgram.PROGRAM_NAME, name); } public void specification(Specification specification) { From dfee8bc3843f4f6954b1b9cec4ccc23a70f6d760 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 14:50:27 +0100 Subject: [PATCH 005/132] Add expected output for Fujitsu file --- .../fujitsu/0000/0000_0001.expected.f90 | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 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 new file mode 100644 index 00000000..a6f15241 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.expected.f90 @@ -0,0 +1,31 @@ +integer*1 :: a1, a2 +real*16 :: b1, b2 +logical :: ok + +ok = .true. + +a1 = 1 +b1 = 1.1 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST1-NG =>", a2 - b2 +END IF + +a1 = -1 +b1 = -1.1 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST2-NG =>", a2 - b2 +END IF + +IF (ok) THEN + PRINT *, "OK" +END IF + +END \ No newline at end of file From 44316cb61ecf629efa6552a26406d90d4c17e68b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 14:57:14 +0100 Subject: [PATCH 006/132] Add tests for negate --- .../fortran/parser/expr/negate.expected.f90 | 3 +++ .../resources-test/fortran/parser/expr/negate.f90 | 3 +++ .../fe/specs/fortran/parser/FortranParserTest.java | 12 ++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/negate.f90 diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 new file mode 100644 index 00000000..648b7854 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 @@ -0,0 +1,3 @@ +PROGRAM negate + integer :: a = -10; +END PROGRAM negate \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.f90 b/FortranParser/resources-test/fortran/parser/expr/negate.f90 new file mode 100644 index 00000000..5c5ae9a4 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/negate.f90 @@ -0,0 +1,3 @@ +program negate + integer :: a = -10; +end program negate \ 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 cc5b4a43..865043f6 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -347,6 +347,18 @@ void testNoProgramStmtNative() { } } + @Test + void testNegate() { + testJson("expr/negate.json"); + } + + @Test + void testNegateNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/negate.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 71f6128bc1843ed869cb1c693809500a8a30a2d4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:09:43 +0100 Subject: [PATCH 007/132] Implement unary operator --- .../fortran/ast/nodes/expr/UnaryOperator.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/UnaryOperator.java 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 new file mode 100644 index 00000000..17ced899 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/UnaryOperator.java @@ -0,0 +1,30 @@ +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 pt.up.fe.specs.fortran.ast.nodes.expr.enums.UnaryOperatorKind; + +import java.util.Collection; + +public class UnaryOperator extends Expr { + public final static DataKey OP = KeyFactory.enumeration("op", UnaryOperatorKind.class); + + public UnaryOperator(DataStore data, Collection children) { + super(data, children); + } + + public Expr getOperand() { + return getChild(Expr.class, 0); + } + + public UnaryOperatorKind getOp() { + return get(OP); + } + + @Override + public String getCode() { + return getOp().getString() + getOperand().getCode(); + } +} From 0fc37d391dd69bc7e5c77c2d7675f69ea273e0f2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:10:02 +0100 Subject: [PATCH 008/132] Add missing JSON file --- .../fortran/parser/expr/negate.json | 448 ++++++++++++++++++ 1 file changed, 448 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/expr/negate.json diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.json b/FortranParser/resources-test/fortran/parser/expr/negate.json new file mode 100644 index 00000000..ece0f388 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/negate.json @@ -0,0 +1,448 @@ +{ + "nodes": [ + { + "id": "0x5580550e7cc0-Program", + "ProgramUnit": [ + "0x558055110550-ProgramUnit" + ] + }, + { + "id": "0x558055110550-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x558055113560-MainProgram" + }, + { + "id": "0x558055113560-MainProgram", + "Statement": "0x5580551136a8-Statement", + "SpecificationPart": "0x558055113600-SpecificationPart", + "ExecutionPart": "0x5580551135e8-ExecutionPart", + "Statement": "0x558055113560-Statement" + }, + { + "id": "0x5580551136a8-Statement", + "statement": "0x5580551136b8-ProgramStmt", + "source": "program negate" + }, + { + "id": "0x5580551136b8-ProgramStmt", + "Name": "0x5580551136b8-Name" + }, + { + "id": "0x5580551136b8-Name", + "source": "negate" + }, + { + "id": "0x558055113600-SpecificationPart", + "ImplicitPart": "0x558055113618-ImplicitPart", + "DeclarationConstruct": [ + "0x5580550ee240-DeclarationConstruct" + ] + }, + { + "id": "0x558055113618-ImplicitPart" + }, + { + "id": "0x5580550ee240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5580550ee240-SpecificationConstruct" + }, + { + "id": "0x5580550ee240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5580550ee240-Statement" + }, + { + "id": "0x5580550ee240-Statement", + "statement": "0x5580551114e0-TypeDeclarationStmt", + "source": "integer :: a = -10" + }, + { + "id": "0x5580551114e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558055111510-DeclarationTypeSpec", + "EntityDecl": [ + "0x558055111eb0-EntityDecl" + ] + }, + { + "id": "0x558055111510-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558055111510-IntrinsicTypeSpec" + }, + { + "id": "0x558055111510-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x558055111510-IntegerTypeSpec" + }, + { + "id": "0x558055111510-IntegerTypeSpec" + }, + { + "id": "0x558055111eb0-EntityDecl", + "Name": "0x558055111f68-Name", + "Initialization": "0x558055111eb0-Initialization" + }, + { + "id": "0x558055111f68-Name", + "source": "a" + }, + { + "id": "0x558055111eb0-Initialization", + "variantKey": "Expr", + "Expr": "0x558055111dc0-Expr" + }, + { + "id": "0x558055111dc0-Expr", + "variantKey": "Negate", + "Negate": "0x558055111de0-Negate" + }, + { + "id": "0x558055111de0-Negate", + "Expr": "0x5580550c0040-Expr" + }, + { + "id": "0x5580550c0040-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5580550c0060-LiteralConstant" + }, + { + "id": "0x5580550c0060-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5580550c0060-IntLiteralConstant" + }, + { + "id": "0x5580550c0060-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x5580551135e8-ExecutionPart" + }, + { + "id": "0x5580551135e8-list" + }, + { + "id": "0x558055113560-Statement", + "statement": "0x558055113570-EndProgramStmt", + "source": "end program negate" + }, + { + "id": "0x558055113570-EndProgramStmt", + "Name": "0x558055113570-Name" + }, + { + "id": "0x558055113570-Name", + "source": "negate" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 2bf9740ca787c99ba91bd30f1c7e4affe3e0aeb1 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:28:30 +0100 Subject: [PATCH 009/132] Regenerate dump --- .../fortran/parser/expr/negate.json | 109 +++++++++--------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.json b/FortranParser/resources-test/fortran/parser/expr/negate.json index ece0f388..1c796b77 100644 --- a/FortranParser/resources-test/fortran/parser/expr/negate.json +++ b/FortranParser/resources-test/fortran/parser/expr/negate.json @@ -1,135 +1,136 @@ { "nodes": [ { - "id": "0x5580550e7cc0-Program", + "id": "0x55d37b96ecc0-Program", "ProgramUnit": [ - "0x558055110550-ProgramUnit" + "0x55d37b997550-ProgramUnit" ] }, { - "id": "0x558055110550-ProgramUnit", + "id": "0x55d37b997550-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x558055113560-MainProgram" + "MainProgram": "0x55d37b99a560-MainProgram" }, { - "id": "0x558055113560-MainProgram", - "Statement": "0x5580551136a8-Statement", - "SpecificationPart": "0x558055113600-SpecificationPart", - "ExecutionPart": "0x5580551135e8-ExecutionPart", - "Statement": "0x558055113560-Statement" + "id": "0x55d37b99a560-MainProgram", + "Statement": "0x55d37b99a6a8-Statement", + "SpecificationPart": "0x55d37b99a600-SpecificationPart", + "ExecutionPart": "0x55d37b99a5e8-ExecutionPart", + "Statement": "0x55d37b99a560-Statement" }, { - "id": "0x5580551136a8-Statement", - "statement": "0x5580551136b8-ProgramStmt", + "id": "0x55d37b99a6a8-Statement", + "statement": "0x55d37b99a6b8-ProgramStmt", "source": "program negate" }, { - "id": "0x5580551136b8-ProgramStmt", - "Name": "0x5580551136b8-Name" + "id": "0x55d37b99a6b8-ProgramStmt", + "Name": "0x55d37b99a6b8-Name" }, { - "id": "0x5580551136b8-Name", + "id": "0x55d37b99a6b8-Name", "source": "negate" }, { - "id": "0x558055113600-SpecificationPart", - "ImplicitPart": "0x558055113618-ImplicitPart", + "id": "0x55d37b99a600-SpecificationPart", + "ImplicitPart": "0x55d37b99a618-ImplicitPart", "DeclarationConstruct": [ - "0x5580550ee240-DeclarationConstruct" + "0x55d37b975240-DeclarationConstruct" ] }, { - "id": "0x558055113618-ImplicitPart" + "id": "0x55d37b99a618-ImplicitPart" }, { - "id": "0x5580550ee240-DeclarationConstruct", + "id": "0x55d37b975240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5580550ee240-SpecificationConstruct" + "SpecificationConstruct": "0x55d37b975240-SpecificationConstruct" }, { - "id": "0x5580550ee240-SpecificationConstruct", + "id": "0x55d37b975240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5580550ee240-Statement" + "Statement": "0x55d37b975240-Statement" }, { - "id": "0x5580550ee240-Statement", - "statement": "0x5580551114e0-TypeDeclarationStmt", + "id": "0x55d37b975240-Statement", + "statement": "0x55d37b9984e0-TypeDeclarationStmt", "source": "integer :: a = -10" }, { - "id": "0x5580551114e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558055111510-DeclarationTypeSpec", + "id": "0x55d37b9984e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d37b998510-DeclarationTypeSpec", "EntityDecl": [ - "0x558055111eb0-EntityDecl" + "0x55d37b998eb0-EntityDecl" ] }, { - "id": "0x558055111510-DeclarationTypeSpec", + "id": "0x55d37b998510-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558055111510-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55d37b998510-IntrinsicTypeSpec" }, { - "id": "0x558055111510-IntrinsicTypeSpec", + "id": "0x55d37b998510-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558055111510-IntegerTypeSpec" + "IntegerTypeSpec": "0x55d37b998510-IntegerTypeSpec" }, { - "id": "0x558055111510-IntegerTypeSpec" + "id": "0x55d37b998510-IntegerTypeSpec" }, { - "id": "0x558055111eb0-EntityDecl", - "Name": "0x558055111f68-Name", - "Initialization": "0x558055111eb0-Initialization" + "id": "0x55d37b998eb0-EntityDecl", + "Name": "0x55d37b998f68-Name", + "Initialization": "0x55d37b998eb0-Initialization" }, { - "id": "0x558055111f68-Name", + "id": "0x55d37b998f68-Name", "source": "a" }, { - "id": "0x558055111eb0-Initialization", + "id": "0x55d37b998eb0-Initialization", "variantKey": "Expr", - "Expr": "0x558055111dc0-Expr" + "Expr": "0x55d37b998dc0-Expr" }, { - "id": "0x558055111dc0-Expr", + "id": "0x55d37b998dc0-Expr", "variantKey": "Negate", - "Negate": "0x558055111de0-Negate" + "Negate": "0x55d37b998de0-Negate" }, { - "id": "0x558055111de0-Negate", - "Expr": "0x5580550c0040-Expr" + "id": "0x55d37b998de0-Negate", + "Expr": "0x55d37b947040-Expr", + "op": "NEGATE" }, { - "id": "0x5580550c0040-Expr", + "id": "0x55d37b947040-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5580550c0060-LiteralConstant" + "LiteralConstant": "0x55d37b947060-LiteralConstant" }, { - "id": "0x5580550c0060-LiteralConstant", + "id": "0x55d37b947060-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5580550c0060-IntLiteralConstant" + "IntLiteralConstant": "0x55d37b947060-IntLiteralConstant" }, { - "id": "0x5580550c0060-IntLiteralConstant", + "id": "0x55d37b947060-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x5580551135e8-ExecutionPart" + "id": "0x55d37b99a5e8-ExecutionPart" }, { - "id": "0x5580551135e8-list" + "id": "0x55d37b99a5e8-list" }, { - "id": "0x558055113560-Statement", - "statement": "0x558055113570-EndProgramStmt", + "id": "0x55d37b99a560-Statement", + "statement": "0x55d37b99a570-EndProgramStmt", "source": "end program negate" }, { - "id": "0x558055113570-EndProgramStmt", - "Name": "0x558055113570-Name" + "id": "0x55d37b99a570-EndProgramStmt", + "Name": "0x55d37b99a570-Name" }, { - "id": "0x558055113570-Name", + "id": "0x55d37b99a570-Name", "source": "negate" } ], From a0d46742d3f8c2c943086de29ea81d5684d7a417 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:28:44 +0100 Subject: [PATCH 010/132] Add support for negations --- .../ast/nodes/expr/enums/UnaryOperatorKind.java | 17 +++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../parser/processors/ExprProcessors.java | 10 +++++++++- .../specs/fortran/parser/processors/Nodes.java | 1 + 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java 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 new file mode 100644 index 00000000..8164a8e7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java @@ -0,0 +1,17 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr.enums; + +import pt.up.fe.specs.util.providers.StringProvider; + +public enum UnaryOperatorKind implements StringProvider { + NEGATE("-"); + + UnaryOperatorKind(String opString) { + this.opString = opString; + } + + private final String opString; + + public String getString() { + return 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 ec417682..2f50b871 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -81,6 +81,7 @@ public enum FlangName implements StringProvider { LOGICAL_LITERAL_CONSTANT, REAL_LITERAL_CONSTANT, STAR, + NEGATE, PARENTHESES, ADD, SUBTRACT, 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 2a15954b..26a132d5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -85,6 +85,7 @@ public class FlangToClass { 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.NEGATE, 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); 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 99ac30da..d2a1cb5f 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 @@ -2,6 +2,7 @@ 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.expr.enums.UnaryOperatorKind; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -32,6 +33,14 @@ public void parenExpr(ParenExpr parenExpr) { parenExpr.addChild(getChild(parenExpr, FlangName.EXPR)); } + public void unaryOperator(UnaryOperator unaryOperator) { + unaryOperator.addChild(getChild(unaryOperator, FlangName.EXPR)); + + String opName = attributes().getString(unaryOperator, "op"); + + unaryOperator.set(UnaryOperator.OP, UnaryOperatorKind.valueOf(opName.toUpperCase())); + } + public void binaryOperator(BinaryOperator binaryOperator) { binaryOperator.addChild(getChild(binaryOperator, "left")); binaryOperator.addChild(getChild(binaryOperator, "right")); @@ -77,7 +86,6 @@ public void acImpliedDoControl(AcImpliedDoControl control) { control.addChild(rangeControl); } - public void argument(Argument argument) { argument.addChild(getChild(argument, FlangName.ACTUAL_ARG)); } 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 39f5fc47..a221279e 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 @@ -87,6 +87,7 @@ public Nodes(FortranJsonResult data) { processors.put(LogicalLiteral.class, e::logicalLiteral); processors.put(RealLiteral.class, e::realLiteral); processors.put(ParenExpr.class, e::parenExpr); + processors.put(UnaryOperator.class, e::unaryOperator); processors.put(BinaryOperator.class, e::binaryOperator); processors.put(ArrayConstructor.class, e::arrayConstructor); processors.put(AcSpecification.class, e::acSpecification); From ceed0293be30ed481720378fbd911fffce6852ed Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:28:59 +0100 Subject: [PATCH 011/132] Fix negation test --- .../resources-test/fortran/parser/expr/negate.expected.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 index 648b7854..f3c6fc22 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 From a0b516dc4c3d5a303a0d92c81702863935ce4d5f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:34:25 +0100 Subject: [PATCH 012/132] Modify kind selector tests --- .../fortran/parser/decl/kind_selector.expected.f90 | 5 +++-- .../resources-test/fortran/parser/decl/kind_selector.f90 | 5 +++-- .../fortran/parser/decl/legacy_kind_selector.expected.f90 | 5 +++-- .../fortran/parser/decl/legacy_kind_selector.f90 | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) 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 b523b268..f704325d 100644 --- a/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/decl/kind_selector.expected.f90 @@ -1,5 +1,6 @@ PROGRAM kind_selector - integer(8) :: i8 + integer(8) :: i8 = 1 + real(16) :: r16 = 2.0 - PRINT *, i8 + PRINT *, i8, r16 END PROGRAM kind_selector \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/decl/kind_selector.f90 b/FortranParser/resources-test/fortran/parser/decl/kind_selector.f90 index f55642aa..d48a7d05 100644 --- a/FortranParser/resources-test/fortran/parser/decl/kind_selector.f90 +++ b/FortranParser/resources-test/fortran/parser/decl/kind_selector.f90 @@ -1,5 +1,6 @@ program kind_selector - integer(8) :: i8 + integer(8) :: i8 = 1 + real(16) :: r16 = 2.0 - print *, i8 + print *, i8, r16 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 c825d6c9..5be45a8f 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,5 +1,6 @@ PROGRAM legacy_kind_selector - integer*8 :: i8 + integer*8 :: i8 = 1 + real*16 :: r16 = 2.0 - PRINT *, i8 + PRINT *, i8, r16 END PROGRAM legacy_kind_selector \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.f90 b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.f90 index 17774e15..4d3963dc 100644 --- a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.f90 +++ b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.f90 @@ -1,5 +1,6 @@ program legacy_kind_selector - integer*8 :: i8 + integer*8 :: i8 = 1 + real*16 :: r16 = 2.0 - print *, i8 + print *, i8, r16 end program legacy_kind_selector \ No newline at end of file From 9995a1091f65a8de0b821203c19a3432a59bc47b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:34:40 +0100 Subject: [PATCH 013/132] Add kind selector to real declaration --- .../pt/up/fe/specs/fortran/ast/nodes/type/RealType.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.java index 3843ef4c..a49ccba3 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.java @@ -2,16 +2,22 @@ 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 RealType extends IntrinsicType { public RealType(DataStore data, Collection children) { super(data, children); } + public Optional getKindSelector() { + return getChildOf(KindSelector.class); + } + @Override public String getCode() { - return "real"; + return "real" + getKindSelector().map(FortranNode::getCode).orElse(""); } } From ec089fdb598ed9d006d9b2da929224a6f88b2c56 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:52:41 +0100 Subject: [PATCH 014/132] Regenerate dumps --- .../fortran/parser/decl/kind_selector.json | 285 +++++++++++++----- .../parser/decl/legacy_kind_selector.json | 266 +++++++++++----- 2 files changed, 403 insertions(+), 148 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/decl/kind_selector.json b/FortranParser/resources-test/fortran/parser/decl/kind_selector.json index 15e6c3f8..2b777144 100644 --- a/FortranParser/resources-test/fortran/parser/decl/kind_selector.json +++ b/FortranParser/resources-test/fortran/parser/decl/kind_selector.json @@ -1,188 +1,321 @@ { "nodes": [ { - "id": "0x55e1b4ef2cc0-Program", + "id": "0x5618c203fcc0-Program", "ProgramUnit": [ - "0x55e1b4f1cc60-ProgramUnit" + "0x5618c2069bc0-ProgramUnit" ] }, { - "id": "0x55e1b4f1cc60-ProgramUnit", + "id": "0x5618c2069bc0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55e1b4f1ead0-MainProgram" + "MainProgram": "0x5618c206c530-MainProgram" }, { - "id": "0x55e1b4f1ead0-MainProgram", - "Statement": "0x55e1b4f1ec18-Statement", - "SpecificationPart": "0x55e1b4f1eb70-SpecificationPart", - "ExecutionPart": "0x55e1b4f1eb58-ExecutionPart", - "Statement": "0x55e1b4f1ead0-Statement" + "id": "0x5618c206c530-MainProgram", + "Statement": "0x5618c206c678-Statement", + "SpecificationPart": "0x5618c206c5d0-SpecificationPart", + "ExecutionPart": "0x5618c206c5b8-ExecutionPart", + "Statement": "0x5618c206c530-Statement" }, { - "id": "0x55e1b4f1ec18-Statement", - "statement": "0x55e1b4f1ec28-ProgramStmt", + "id": "0x5618c206c678-Statement", + "statement": "0x5618c206c688-ProgramStmt", "source": "program kind_selector" }, { - "id": "0x55e1b4f1ec28-ProgramStmt", - "Name": "0x55e1b4f1ec28-Name" + "id": "0x5618c206c688-ProgramStmt", + "Name": "0x5618c206c688-Name" }, { - "id": "0x55e1b4f1ec28-Name", + "id": "0x5618c206c688-Name", "source": "kind_selector" }, { - "id": "0x55e1b4f1eb70-SpecificationPart", - "ImplicitPart": "0x55e1b4f1eb88-ImplicitPart", + "id": "0x5618c206c5d0-SpecificationPart", + "ImplicitPart": "0x5618c206c5e8-ImplicitPart", "DeclarationConstruct": [ - "0x55e1b4f1d160-DeclarationConstruct" + "0x5618c206a520-DeclarationConstruct", + "0x5618c206a8b0-DeclarationConstruct" ] }, { - "id": "0x55e1b4f1eb88-ImplicitPart" + "id": "0x5618c206c5e8-ImplicitPart" }, { - "id": "0x55e1b4f1d160-DeclarationConstruct", + "id": "0x5618c206a520-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e1b4f1d160-SpecificationConstruct" + "SpecificationConstruct": "0x5618c206a520-SpecificationConstruct" }, { - "id": "0x55e1b4f1d160-SpecificationConstruct", + "id": "0x5618c206a520-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e1b4f1d160-Statement" + "Statement": "0x5618c206a520-Statement" }, { - "id": "0x55e1b4f1d160-Statement", - "statement": "0x55e1b4f01240-TypeDeclarationStmt", - "source": "integer(8) :: i8" + "id": "0x5618c206a520-Statement", + "statement": "0x5618c20697d0-TypeDeclarationStmt", + "source": "integer(8) :: i8 = 1" }, { - "id": "0x55e1b4f01240-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e1b4f01270-DeclarationTypeSpec", + "id": "0x5618c20697d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5618c2069800-DeclarationTypeSpec", "EntityDecl": [ - "0x55e1b4f1d000-EntityDecl" + "0x5618c2068de0-EntityDecl" ] }, { - "id": "0x55e1b4f01270-DeclarationTypeSpec", + "id": "0x5618c2069800-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e1b4f01270-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5618c2069800-IntrinsicTypeSpec" }, { - "id": "0x55e1b4f01270-IntrinsicTypeSpec", + "id": "0x5618c2069800-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e1b4f01270-IntegerTypeSpec" + "IntegerTypeSpec": "0x5618c2069800-IntegerTypeSpec" }, { - "id": "0x55e1b4f01270-IntegerTypeSpec", - "KindSelector": "0x55e1b4f01270-KindSelector" + "id": "0x5618c2069800-IntegerTypeSpec", + "KindSelector": "0x5618c2069800-KindSelector" }, { - "id": "0x55e1b4f01270-KindSelector", + "id": "0x5618c2069800-KindSelector", "variantKey": "Expr", - "Expr": "0x55e1b4f1cf10-Expr" + "Expr": "0x5618c206a0b0-Expr" }, { - "id": "0x55e1b4f1cf10-Expr", + "id": "0x5618c206a0b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e1b4f1cf30-LiteralConstant" + "LiteralConstant": "0x5618c206a0d0-LiteralConstant" }, { - "id": "0x55e1b4f1cf30-LiteralConstant", + "id": "0x5618c206a0d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e1b4f1cf30-IntLiteralConstant" + "IntLiteralConstant": "0x5618c206a0d0-IntLiteralConstant" }, { - "id": "0x55e1b4f1cf30-IntLiteralConstant", + "id": "0x5618c206a0d0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55e1b4f1d000-EntityDecl", - "Name": "0x55e1b4f1d0b8-Name" + "id": "0x5618c2068de0-EntityDecl", + "Name": "0x5618c2068e98-Name", + "Initialization": "0x5618c2068de0-Initialization" }, { - "id": "0x55e1b4f1d0b8-Name", + "id": "0x5618c2068e98-Name", "source": "i8" }, { - "id": "0x55e1b4f1eb58-ExecutionPart", + "id": "0x5618c2068de0-Initialization", + "variantKey": "Expr", + "Expr": "0x5618c206a350-Expr" + }, + { + "id": "0x5618c206a350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5618c206a370-LiteralConstant" + }, + { + "id": "0x5618c206a370-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5618c206a370-IntLiteralConstant" + }, + { + "id": "0x5618c206a370-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5618c206a8b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5618c206a8b0-SpecificationConstruct" + }, + { + "id": "0x5618c206a8b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5618c206a8b0-Statement" + }, + { + "id": "0x5618c206a8b0-Statement", + "statement": "0x5618c2018040-TypeDeclarationStmt", + "source": "real(16) :: r16 = 2.0" + }, + { + "id": "0x5618c2018040-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5618c2018070-DeclarationTypeSpec", + "EntityDecl": [ + "0x5618c206a7c0-EntityDecl" + ] + }, + { + "id": "0x5618c2018070-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5618c2018070-IntrinsicTypeSpec" + }, + { + "id": "0x5618c2018070-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x5618c2018070-Real" + }, + { + "id": "0x5618c2018070-Real", + "KindSelector": "0x5618c2018070-KindSelector" + }, + { + "id": "0x5618c2018070-KindSelector", + "variantKey": "Expr", + "Expr": "0x5618c206a5f0-Expr" + }, + { + "id": "0x5618c206a5f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5618c206a610-LiteralConstant" + }, + { + "id": "0x5618c206a610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5618c206a610-IntLiteralConstant" + }, + { + "id": "0x5618c206a610-IntLiteralConstant", + "CharBlock": "16" + }, + { + "id": "0x5618c206a7c0-EntityDecl", + "Name": "0x5618c206a878-Name", + "Initialization": "0x5618c206a7c0-Initialization" + }, + { + "id": "0x5618c206a878-Name", + "source": "r16" + }, + { + "id": "0x5618c206a7c0-Initialization", + "variantKey": "Expr", + "Expr": "0x5618c206a6d0-Expr" + }, + { + "id": "0x5618c206a6d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5618c206a6f0-LiteralConstant" + }, + { + "id": "0x5618c206a6f0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5618c206a6f0-RealLiteralConstant" + }, + { + "id": "0x5618c206a6f0-RealLiteralConstant", + "real": "0x5618c206a6f0-Real" + }, + { + "id": "0x5618c206a6f0-Real", + "source": "2.0" + }, + { + "id": "0x5618c206c5b8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55e1b4f1e9f0-ExecutionPartConstruct" + "0x5618c206c450-ExecutionPartConstruct" ] }, { - "id": "0x55e1b4f1eb58-ExecutionPartConstruct" + "id": "0x5618c206c5b8-ExecutionPartConstruct" }, { - "id": "0x55e1b4f1e9f0-ExecutionPartConstruct", + "id": "0x5618c206c450-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e1b4f1e9f0-ExecutableConstruct" + "ExecutableConstruct": "0x5618c206c450-ExecutableConstruct" }, { - "id": "0x55e1b4f1e9f0-ExecutableConstruct", + "id": "0x5618c206c450-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e1b4f1e9f0-Statement" + "Statement": "0x5618c206c450-Statement" }, { - "id": "0x55e1b4f1e9f0-Statement", - "statement": "0x55e1b4f1ea00-ActionStmt", - "source": "print *, i8" + "id": "0x5618c206c450-Statement", + "statement": "0x5618c206c460-ActionStmt", + "source": "print *, i8, r16" }, { - "id": "0x55e1b4f1ea00-ActionStmt", + "id": "0x5618c206c460-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e1b4f1e8e0-PrintStmt" + "PrintStmt": "0x5618c206c2d0-PrintStmt" }, { - "id": "0x55e1b4f1e8e0-PrintStmt", - "Format": "0x55e1b4f1e8f8-Format", + "id": "0x5618c206c2d0-PrintStmt", + "Format": "0x5618c206c2e8-Format", "OutputItem": [ - "0x55e1b4f1e790-OutputItem" + "0x5618c206c180-OutputItem", + "0x5618c206c090-OutputItem" ] }, { - "id": "0x55e1b4f1e8f8-Format", + "id": "0x5618c206c2e8-Format", "variantKey": "Star", - "Star": "0x55e1b4f1e8f8-Star" + "Star": "0x5618c206c2e8-Star" }, { - "id": "0x55e1b4f1e8f8-Star" + "id": "0x5618c206c2e8-Star" }, { - "id": "0x55e1b4f1e790-OutputItem", + "id": "0x5618c206c180-OutputItem", "variantKey": "Expr", - "Expr": "0x55e1b4f1e790-Expr" + "Expr": "0x5618c206c180-Expr" }, { - "id": "0x55e1b4f1e790-Expr", + "id": "0x5618c206c180-Expr", "variantKey": "Designator", - "Designator": "0x55e1b4f1ce40-Designator" + "Designator": "0x5618c206bd90-Designator" }, { - "id": "0x55e1b4f1ce40-Designator", + "id": "0x5618c206bd90-Designator", "variantKey": "DataRef", - "DataRef": "0x55e1b4f1ce50-DataRef" + "DataRef": "0x5618c206bda0-DataRef" }, { - "id": "0x55e1b4f1ce50-DataRef", + "id": "0x5618c206bda0-DataRef", "variantKey": "Name", - "Name": "0x55e1b4f1ce50-Name" + "Name": "0x5618c206bda0-Name" }, { - "id": "0x55e1b4f1ce50-Name", + "id": "0x5618c206bda0-Name", "source": "i8" }, { - "id": "0x55e1b4f1ead0-Statement", - "statement": "0x55e1b4f1eae0-EndProgramStmt", + "id": "0x5618c206c090-OutputItem", + "variantKey": "Expr", + "Expr": "0x5618c206c090-Expr" + }, + { + "id": "0x5618c206c090-Expr", + "variantKey": "Designator", + "Designator": "0x5618c203faf0-Designator" + }, + { + "id": "0x5618c203faf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5618c203fb00-DataRef" + }, + { + "id": "0x5618c203fb00-DataRef", + "variantKey": "Name", + "Name": "0x5618c203fb00-Name" + }, + { + "id": "0x5618c203fb00-Name", + "source": "r16" + }, + { + "id": "0x5618c206c530-Statement", + "statement": "0x5618c206c540-EndProgramStmt", "source": "end program kind_selector" }, { - "id": "0x55e1b4f1eae0-EndProgramStmt", - "Name": "0x55e1b4f1eae0-Name" + "id": "0x5618c206c540-EndProgramStmt", + "Name": "0x5618c206c540-Name" }, { - "id": "0x55e1b4f1eae0-Name", + "id": "0x5618c206c540-Name", "source": "kind_selector" } ], diff --git a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json index 9fbfceb8..dbb3b759 100644 --- a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json +++ b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json @@ -1,178 +1,300 @@ { "nodes": [ { - "id": "0x55bcdd313cc0-Program", + "id": "0x56154f37ccc0-Program", "ProgramUnit": [ - "0x55bcdd33dc10-ProgramUnit" + "0x56154f3a6eb0-ProgramUnit" ] }, { - "id": "0x55bcdd33dc10-ProgramUnit", + "id": "0x56154f3a6eb0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55bcdd33fb20-MainProgram" + "MainProgram": "0x56154f3a9420-MainProgram" }, { - "id": "0x55bcdd33fb20-MainProgram", - "Statement": "0x55bcdd33fc68-Statement", - "SpecificationPart": "0x55bcdd33fbc0-SpecificationPart", - "ExecutionPart": "0x55bcdd33fba8-ExecutionPart", - "Statement": "0x55bcdd33fb20-Statement" + "id": "0x56154f3a9420-MainProgram", + "Statement": "0x56154f3a9568-Statement", + "SpecificationPart": "0x56154f3a94c0-SpecificationPart", + "ExecutionPart": "0x56154f3a94a8-ExecutionPart", + "Statement": "0x56154f3a9420-Statement" }, { - "id": "0x55bcdd33fc68-Statement", - "statement": "0x55bcdd33fc78-ProgramStmt", + "id": "0x56154f3a9568-Statement", + "statement": "0x56154f3a9578-ProgramStmt", "source": "program legacy_kind_selector" }, { - "id": "0x55bcdd33fc78-ProgramStmt", - "Name": "0x55bcdd33fc78-Name" + "id": "0x56154f3a9578-ProgramStmt", + "Name": "0x56154f3a9578-Name" }, { - "id": "0x55bcdd33fc78-Name", + "id": "0x56154f3a9578-Name", "source": "legacy_kind_selector" }, { - "id": "0x55bcdd33fbc0-SpecificationPart", - "ImplicitPart": "0x55bcdd33fbd8-ImplicitPart", + "id": "0x56154f3a94c0-SpecificationPart", + "ImplicitPart": "0x56154f3a94d8-ImplicitPart", "DeclarationConstruct": [ - "0x55bcdd31a5b0-DeclarationConstruct" + "0x56154f383240-DeclarationConstruct", + "0x56154f3551a0-DeclarationConstruct" ] }, { - "id": "0x55bcdd33fbd8-ImplicitPart" + "id": "0x56154f3a94d8-ImplicitPart" }, { - "id": "0x55bcdd31a5b0-DeclarationConstruct", + "id": "0x56154f383240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55bcdd31a5b0-SpecificationConstruct" + "SpecificationConstruct": "0x56154f383240-SpecificationConstruct" }, { - "id": "0x55bcdd31a5b0-SpecificationConstruct", + "id": "0x56154f383240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55bcdd31a5b0-Statement" + "Statement": "0x56154f383240-Statement" }, { - "id": "0x55bcdd31a5b0-Statement", - "statement": "0x55bcdd322250-TypeDeclarationStmt", - "source": "integer*8 :: i8" + "id": "0x56154f383240-Statement", + "statement": "0x56154f38b250-TypeDeclarationStmt", + "source": "integer*8 :: i8 = 1" }, { - "id": "0x55bcdd322250-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55bcdd322280-DeclarationTypeSpec", + "id": "0x56154f38b250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56154f38b280-DeclarationTypeSpec", "EntityDecl": [ - "0x55bcdd33e110-EntityDecl" + "0x56154f3a72c0-EntityDecl" ] }, { - "id": "0x55bcdd322280-DeclarationTypeSpec", + "id": "0x56154f38b280-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55bcdd322280-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56154f38b280-IntrinsicTypeSpec" }, { - "id": "0x55bcdd322280-IntrinsicTypeSpec", + "id": "0x56154f38b280-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55bcdd322280-IntegerTypeSpec" + "IntegerTypeSpec": "0x56154f38b280-IntegerTypeSpec" }, { - "id": "0x55bcdd322280-IntegerTypeSpec", - "KindSelector": "0x55bcdd322280-KindSelector" + "id": "0x56154f38b280-IntegerTypeSpec", + "KindSelector": "0x56154f38b280-KindSelector" }, { - "id": "0x55bcdd322280-KindSelector", + "id": "0x56154f38b280-KindSelector", "variantKey": "StarSize", - "StarSize": "0x55bcdd322280-StarSize" + "StarSize": "0x56154f38b280-StarSize" }, { - "id": "0x55bcdd322280-StarSize", + "id": "0x56154f38b280-StarSize", "uint64_t": "8" }, { - "id": "0x55bcdd33e110-EntityDecl", - "Name": "0x55bcdd33e1c8-Name" + "id": "0x56154f3a72c0-EntityDecl", + "Name": "0x56154f3a7378-Name", + "Initialization": "0x56154f3a72c0-Initialization" }, { - "id": "0x55bcdd33e1c8-Name", + "id": "0x56154f3a7378-Name", "source": "i8" }, { - "id": "0x55bcdd33fba8-ExecutionPart", + "id": "0x56154f3a72c0-Initialization", + "variantKey": "Expr", + "Expr": "0x56154f3a71d0-Expr" + }, + { + "id": "0x56154f3a71d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56154f3a71f0-LiteralConstant" + }, + { + "id": "0x56154f3a71f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56154f3a71f0-IntLiteralConstant" + }, + { + "id": "0x56154f3a71f0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56154f3551a0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x56154f3551a0-SpecificationConstruct" + }, + { + "id": "0x56154f3551a0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x56154f3551a0-Statement" + }, + { + "id": "0x56154f3551a0-Statement", + "statement": "0x56154f355110-TypeDeclarationStmt", + "source": "real*16 :: r16 = 2.0" + }, + { + "id": "0x56154f355110-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56154f355140-DeclarationTypeSpec", + "EntityDecl": [ + "0x56154f3a75f0-EntityDecl" + ] + }, + { + "id": "0x56154f355140-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x56154f355140-IntrinsicTypeSpec" + }, + { + "id": "0x56154f355140-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x56154f355140-Real" + }, + { + "id": "0x56154f355140-Real" + }, + { + "id": "0x56154f355140-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x56154f355140-StarSize" + }, + { + "id": "0x56154f355140-StarSize", + "uint64_t": "16" + }, + { + "id": "0x56154f3a75f0-EntityDecl", + "Name": "0x56154f3a76a8-Name", + "Initialization": "0x56154f3a75f0-Initialization" + }, + { + "id": "0x56154f3a76a8-Name", + "source": "r16" + }, + { + "id": "0x56154f3a75f0-Initialization", + "variantKey": "Expr", + "Expr": "0x56154f3a7500-Expr" + }, + { + "id": "0x56154f3a7500-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56154f3a7520-LiteralConstant" + }, + { + "id": "0x56154f3a7520-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56154f3a7520-RealLiteralConstant" + }, + { + "id": "0x56154f3a7520-RealLiteralConstant", + "real": "0x56154f3a7520-Real" + }, + { + "id": "0x56154f3a7520-Real", + "source": "2.0" + }, + { + "id": "0x56154f3a94a8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55bcdd33fa40-ExecutionPartConstruct" + "0x56154f3a9340-ExecutionPartConstruct" ] }, { - "id": "0x55bcdd33fba8-ExecutionPartConstruct" + "id": "0x56154f3a94a8-ExecutionPartConstruct" }, { - "id": "0x55bcdd33fa40-ExecutionPartConstruct", + "id": "0x56154f3a9340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bcdd33fa40-ExecutableConstruct" + "ExecutableConstruct": "0x56154f3a9340-ExecutableConstruct" }, { - "id": "0x55bcdd33fa40-ExecutableConstruct", + "id": "0x56154f3a9340-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bcdd33fa40-Statement" + "Statement": "0x56154f3a9340-Statement" }, { - "id": "0x55bcdd33fa40-Statement", - "statement": "0x55bcdd33fa50-ActionStmt", - "source": "print *, i8" + "id": "0x56154f3a9340-Statement", + "statement": "0x56154f3a9350-ActionStmt", + "source": "print *, i8, r16" }, { - "id": "0x55bcdd33fa50-ActionStmt", + "id": "0x56154f3a9350-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55bcdd33f8c0-PrintStmt" + "PrintStmt": "0x56154f3a5de0-PrintStmt" }, { - "id": "0x55bcdd33f8c0-PrintStmt", - "Format": "0x55bcdd33f8d8-Format", + "id": "0x56154f3a5de0-PrintStmt", + "Format": "0x56154f3a5df8-Format", "OutputItem": [ - "0x55bcdd33f770-OutputItem" + "0x56154f3a9170-OutputItem", + "0x56154f3a9080-OutputItem" ] }, { - "id": "0x55bcdd33f8d8-Format", + "id": "0x56154f3a5df8-Format", "variantKey": "Star", - "Star": "0x55bcdd33f8d8-Star" + "Star": "0x56154f3a5df8-Star" }, { - "id": "0x55bcdd33f8d8-Star" + "id": "0x56154f3a5df8-Star" }, { - "id": "0x55bcdd33f770-OutputItem", + "id": "0x56154f3a9170-OutputItem", "variantKey": "Expr", - "Expr": "0x55bcdd33f770-Expr" + "Expr": "0x56154f3a9170-Expr" }, { - "id": "0x55bcdd33f770-Expr", + "id": "0x56154f3a9170-Expr", "variantKey": "Designator", - "Designator": "0x55bcdd33f470-Designator" + "Designator": "0x56154f3a8d80-Designator" }, { - "id": "0x55bcdd33f470-Designator", + "id": "0x56154f3a8d80-Designator", "variantKey": "DataRef", - "DataRef": "0x55bcdd33f480-DataRef" + "DataRef": "0x56154f3a8d90-DataRef" }, { - "id": "0x55bcdd33f480-DataRef", + "id": "0x56154f3a8d90-DataRef", "variantKey": "Name", - "Name": "0x55bcdd33f480-Name" + "Name": "0x56154f3a8d90-Name" }, { - "id": "0x55bcdd33f480-Name", + "id": "0x56154f3a8d90-Name", "source": "i8" }, { - "id": "0x55bcdd33fb20-Statement", - "statement": "0x55bcdd33fb30-EndProgramStmt", + "id": "0x56154f3a9080-OutputItem", + "variantKey": "Expr", + "Expr": "0x56154f3a9080-Expr" + }, + { + "id": "0x56154f3a9080-Expr", + "variantKey": "Designator", + "Designator": "0x56154f37caf0-Designator" + }, + { + "id": "0x56154f37caf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x56154f37cb00-DataRef" + }, + { + "id": "0x56154f37cb00-DataRef", + "variantKey": "Name", + "Name": "0x56154f37cb00-Name" + }, + { + "id": "0x56154f37cb00-Name", + "source": "r16" + }, + { + "id": "0x56154f3a9420-Statement", + "statement": "0x56154f3a9430-EndProgramStmt", "source": "end program legacy_kind_selector" }, { - "id": "0x55bcdd33fb30-EndProgramStmt", - "Name": "0x55bcdd33fb30-Name" + "id": "0x56154f3a9430-EndProgramStmt", + "Name": "0x56154f3a9430-Name" }, { - "id": "0x55bcdd33fb30-Name", + "id": "0x56154f3a9430-Name", "source": "legacy_kind_selector" } ], From a62236f422166ad290c11050d07c7fbe26f73f6f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:53:33 +0100 Subject: [PATCH 015/132] Regenerate dumps --- .../fortran/parser/decl/kind_selector.json | 256 ++-- .../parser/decl/legacy_kind_selector.json | 239 ++-- .../parser/fujitsu/0000/0000_0001.json | 1205 +++++++++-------- 3 files changed, 853 insertions(+), 847 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/decl/kind_selector.json b/FortranParser/resources-test/fortran/parser/decl/kind_selector.json index 2b777144..ee8d9670 100644 --- a/FortranParser/resources-test/fortran/parser/decl/kind_selector.json +++ b/FortranParser/resources-test/fortran/parser/decl/kind_selector.json @@ -1,321 +1,321 @@ { "nodes": [ { - "id": "0x5618c203fcc0-Program", + "id": "0x55fc59e93cc0-Program", "ProgramUnit": [ - "0x5618c2069bc0-ProgramUnit" + "0x55fc59ebdbc0-ProgramUnit" ] }, { - "id": "0x5618c2069bc0-ProgramUnit", + "id": "0x55fc59ebdbc0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x5618c206c530-MainProgram" + "MainProgram": "0x55fc59ec0530-MainProgram" }, { - "id": "0x5618c206c530-MainProgram", - "Statement": "0x5618c206c678-Statement", - "SpecificationPart": "0x5618c206c5d0-SpecificationPart", - "ExecutionPart": "0x5618c206c5b8-ExecutionPart", - "Statement": "0x5618c206c530-Statement" + "id": "0x55fc59ec0530-MainProgram", + "Statement": "0x55fc59ec0678-Statement", + "SpecificationPart": "0x55fc59ec05d0-SpecificationPart", + "ExecutionPart": "0x55fc59ec05b8-ExecutionPart", + "Statement": "0x55fc59ec0530-Statement" }, { - "id": "0x5618c206c678-Statement", - "statement": "0x5618c206c688-ProgramStmt", + "id": "0x55fc59ec0678-Statement", + "statement": "0x55fc59ec0688-ProgramStmt", "source": "program kind_selector" }, { - "id": "0x5618c206c688-ProgramStmt", - "Name": "0x5618c206c688-Name" + "id": "0x55fc59ec0688-ProgramStmt", + "Name": "0x55fc59ec0688-Name" }, { - "id": "0x5618c206c688-Name", + "id": "0x55fc59ec0688-Name", "source": "kind_selector" }, { - "id": "0x5618c206c5d0-SpecificationPart", - "ImplicitPart": "0x5618c206c5e8-ImplicitPart", + "id": "0x55fc59ec05d0-SpecificationPart", + "ImplicitPart": "0x55fc59ec05e8-ImplicitPart", "DeclarationConstruct": [ - "0x5618c206a520-DeclarationConstruct", - "0x5618c206a8b0-DeclarationConstruct" + "0x55fc59ebe520-DeclarationConstruct", + "0x55fc59ebe8b0-DeclarationConstruct" ] }, { - "id": "0x5618c206c5e8-ImplicitPart" + "id": "0x55fc59ec05e8-ImplicitPart" }, { - "id": "0x5618c206a520-DeclarationConstruct", + "id": "0x55fc59ebe520-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5618c206a520-SpecificationConstruct" + "SpecificationConstruct": "0x55fc59ebe520-SpecificationConstruct" }, { - "id": "0x5618c206a520-SpecificationConstruct", + "id": "0x55fc59ebe520-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5618c206a520-Statement" + "Statement": "0x55fc59ebe520-Statement" }, { - "id": "0x5618c206a520-Statement", - "statement": "0x5618c20697d0-TypeDeclarationStmt", + "id": "0x55fc59ebe520-Statement", + "statement": "0x55fc59ebd7d0-TypeDeclarationStmt", "source": "integer(8) :: i8 = 1" }, { - "id": "0x5618c20697d0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5618c2069800-DeclarationTypeSpec", + "id": "0x55fc59ebd7d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fc59ebd800-DeclarationTypeSpec", "EntityDecl": [ - "0x5618c2068de0-EntityDecl" + "0x55fc59ebcde0-EntityDecl" ] }, { - "id": "0x5618c2069800-DeclarationTypeSpec", + "id": "0x55fc59ebd800-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5618c2069800-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fc59ebd800-IntrinsicTypeSpec" }, { - "id": "0x5618c2069800-IntrinsicTypeSpec", + "id": "0x55fc59ebd800-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x5618c2069800-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fc59ebd800-IntegerTypeSpec" }, { - "id": "0x5618c2069800-IntegerTypeSpec", - "KindSelector": "0x5618c2069800-KindSelector" + "id": "0x55fc59ebd800-IntegerTypeSpec", + "KindSelector": "0x55fc59ebd800-KindSelector" }, { - "id": "0x5618c2069800-KindSelector", + "id": "0x55fc59ebd800-KindSelector", "variantKey": "Expr", - "Expr": "0x5618c206a0b0-Expr" + "Expr": "0x55fc59ebe0b0-Expr" }, { - "id": "0x5618c206a0b0-Expr", + "id": "0x55fc59ebe0b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5618c206a0d0-LiteralConstant" + "LiteralConstant": "0x55fc59ebe0d0-LiteralConstant" }, { - "id": "0x5618c206a0d0-LiteralConstant", + "id": "0x55fc59ebe0d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5618c206a0d0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc59ebe0d0-IntLiteralConstant" }, { - "id": "0x5618c206a0d0-IntLiteralConstant", + "id": "0x55fc59ebe0d0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x5618c2068de0-EntityDecl", - "Name": "0x5618c2068e98-Name", - "Initialization": "0x5618c2068de0-Initialization" + "id": "0x55fc59ebcde0-EntityDecl", + "Name": "0x55fc59ebce98-Name", + "Initialization": "0x55fc59ebcde0-Initialization" }, { - "id": "0x5618c2068e98-Name", + "id": "0x55fc59ebce98-Name", "source": "i8" }, { - "id": "0x5618c2068de0-Initialization", + "id": "0x55fc59ebcde0-Initialization", "variantKey": "Expr", - "Expr": "0x5618c206a350-Expr" + "Expr": "0x55fc59ebe350-Expr" }, { - "id": "0x5618c206a350-Expr", + "id": "0x55fc59ebe350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5618c206a370-LiteralConstant" + "LiteralConstant": "0x55fc59ebe370-LiteralConstant" }, { - "id": "0x5618c206a370-LiteralConstant", + "id": "0x55fc59ebe370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5618c206a370-IntLiteralConstant" + "IntLiteralConstant": "0x55fc59ebe370-IntLiteralConstant" }, { - "id": "0x5618c206a370-IntLiteralConstant", + "id": "0x55fc59ebe370-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x5618c206a8b0-DeclarationConstruct", + "id": "0x55fc59ebe8b0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x5618c206a8b0-SpecificationConstruct" + "SpecificationConstruct": "0x55fc59ebe8b0-SpecificationConstruct" }, { - "id": "0x5618c206a8b0-SpecificationConstruct", + "id": "0x55fc59ebe8b0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x5618c206a8b0-Statement" + "Statement": "0x55fc59ebe8b0-Statement" }, { - "id": "0x5618c206a8b0-Statement", - "statement": "0x5618c2018040-TypeDeclarationStmt", + "id": "0x55fc59ebe8b0-Statement", + "statement": "0x55fc59e6c040-TypeDeclarationStmt", "source": "real(16) :: r16 = 2.0" }, { - "id": "0x5618c2018040-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x5618c2018070-DeclarationTypeSpec", + "id": "0x55fc59e6c040-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fc59e6c070-DeclarationTypeSpec", "EntityDecl": [ - "0x5618c206a7c0-EntityDecl" + "0x55fc59ebe7c0-EntityDecl" ] }, { - "id": "0x5618c2018070-DeclarationTypeSpec", + "id": "0x55fc59e6c070-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x5618c2018070-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fc59e6c070-IntrinsicTypeSpec" }, { - "id": "0x5618c2018070-IntrinsicTypeSpec", + "id": "0x55fc59e6c070-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x5618c2018070-Real" + "Real": "0x55fc59e6c070-Real" }, { - "id": "0x5618c2018070-Real", - "KindSelector": "0x5618c2018070-KindSelector" + "id": "0x55fc59e6c070-Real", + "KindSelector": "0x55fc59e6c070-KindSelector" }, { - "id": "0x5618c2018070-KindSelector", + "id": "0x55fc59e6c070-KindSelector", "variantKey": "Expr", - "Expr": "0x5618c206a5f0-Expr" + "Expr": "0x55fc59ebe5f0-Expr" }, { - "id": "0x5618c206a5f0-Expr", + "id": "0x55fc59ebe5f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5618c206a610-LiteralConstant" + "LiteralConstant": "0x55fc59ebe610-LiteralConstant" }, { - "id": "0x5618c206a610-LiteralConstant", + "id": "0x55fc59ebe610-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x5618c206a610-IntLiteralConstant" + "IntLiteralConstant": "0x55fc59ebe610-IntLiteralConstant" }, { - "id": "0x5618c206a610-IntLiteralConstant", + "id": "0x55fc59ebe610-IntLiteralConstant", "CharBlock": "16" }, { - "id": "0x5618c206a7c0-EntityDecl", - "Name": "0x5618c206a878-Name", - "Initialization": "0x5618c206a7c0-Initialization" + "id": "0x55fc59ebe7c0-EntityDecl", + "Name": "0x55fc59ebe878-Name", + "Initialization": "0x55fc59ebe7c0-Initialization" }, { - "id": "0x5618c206a878-Name", + "id": "0x55fc59ebe878-Name", "source": "r16" }, { - "id": "0x5618c206a7c0-Initialization", + "id": "0x55fc59ebe7c0-Initialization", "variantKey": "Expr", - "Expr": "0x5618c206a6d0-Expr" + "Expr": "0x55fc59ebe6d0-Expr" }, { - "id": "0x5618c206a6d0-Expr", + "id": "0x55fc59ebe6d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5618c206a6f0-LiteralConstant" + "LiteralConstant": "0x55fc59ebe6f0-LiteralConstant" }, { - "id": "0x5618c206a6f0-LiteralConstant", + "id": "0x55fc59ebe6f0-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x5618c206a6f0-RealLiteralConstant" + "RealLiteralConstant": "0x55fc59ebe6f0-RealLiteralConstant" }, { - "id": "0x5618c206a6f0-RealLiteralConstant", - "real": "0x5618c206a6f0-Real" + "id": "0x55fc59ebe6f0-RealLiteralConstant", + "real": "0x55fc59ebe6f0-Real" }, { - "id": "0x5618c206a6f0-Real", + "id": "0x55fc59ebe6f0-Real", "source": "2.0" }, { - "id": "0x5618c206c5b8-ExecutionPart", + "id": "0x55fc59ec05b8-ExecutionPart", "ExecutionPartConstruct": [ - "0x5618c206c450-ExecutionPartConstruct" + "0x55fc59ec0450-ExecutionPartConstruct" ] }, { - "id": "0x5618c206c5b8-ExecutionPartConstruct" + "id": "0x55fc59ec05b8-ExecutionPartConstruct" }, { - "id": "0x5618c206c450-ExecutionPartConstruct", + "id": "0x55fc59ec0450-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x5618c206c450-ExecutableConstruct" + "ExecutableConstruct": "0x55fc59ec0450-ExecutableConstruct" }, { - "id": "0x5618c206c450-ExecutableConstruct", + "id": "0x55fc59ec0450-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x5618c206c450-Statement" + "Statement": "0x55fc59ec0450-Statement" }, { - "id": "0x5618c206c450-Statement", - "statement": "0x5618c206c460-ActionStmt", + "id": "0x55fc59ec0450-Statement", + "statement": "0x55fc59ec0460-ActionStmt", "source": "print *, i8, r16" }, { - "id": "0x5618c206c460-ActionStmt", + "id": "0x55fc59ec0460-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x5618c206c2d0-PrintStmt" + "PrintStmt": "0x55fc59ec02d0-PrintStmt" }, { - "id": "0x5618c206c2d0-PrintStmt", - "Format": "0x5618c206c2e8-Format", + "id": "0x55fc59ec02d0-PrintStmt", + "Format": "0x55fc59ec02e8-Format", "OutputItem": [ - "0x5618c206c180-OutputItem", - "0x5618c206c090-OutputItem" + "0x55fc59ec0180-OutputItem", + "0x55fc59ec0090-OutputItem" ] }, { - "id": "0x5618c206c2e8-Format", + "id": "0x55fc59ec02e8-Format", "variantKey": "Star", - "Star": "0x5618c206c2e8-Star" + "Star": "0x55fc59ec02e8-Star" }, { - "id": "0x5618c206c2e8-Star" + "id": "0x55fc59ec02e8-Star" }, { - "id": "0x5618c206c180-OutputItem", + "id": "0x55fc59ec0180-OutputItem", "variantKey": "Expr", - "Expr": "0x5618c206c180-Expr" + "Expr": "0x55fc59ec0180-Expr" }, { - "id": "0x5618c206c180-Expr", + "id": "0x55fc59ec0180-Expr", "variantKey": "Designator", - "Designator": "0x5618c206bd90-Designator" + "Designator": "0x55fc59ebfd90-Designator" }, { - "id": "0x5618c206bd90-Designator", + "id": "0x55fc59ebfd90-Designator", "variantKey": "DataRef", - "DataRef": "0x5618c206bda0-DataRef" + "DataRef": "0x55fc59ebfda0-DataRef" }, { - "id": "0x5618c206bda0-DataRef", + "id": "0x55fc59ebfda0-DataRef", "variantKey": "Name", - "Name": "0x5618c206bda0-Name" + "Name": "0x55fc59ebfda0-Name" }, { - "id": "0x5618c206bda0-Name", + "id": "0x55fc59ebfda0-Name", "source": "i8" }, { - "id": "0x5618c206c090-OutputItem", + "id": "0x55fc59ec0090-OutputItem", "variantKey": "Expr", - "Expr": "0x5618c206c090-Expr" + "Expr": "0x55fc59ec0090-Expr" }, { - "id": "0x5618c206c090-Expr", + "id": "0x55fc59ec0090-Expr", "variantKey": "Designator", - "Designator": "0x5618c203faf0-Designator" + "Designator": "0x55fc59e93af0-Designator" }, { - "id": "0x5618c203faf0-Designator", + "id": "0x55fc59e93af0-Designator", "variantKey": "DataRef", - "DataRef": "0x5618c203fb00-DataRef" + "DataRef": "0x55fc59e93b00-DataRef" }, { - "id": "0x5618c203fb00-DataRef", + "id": "0x55fc59e93b00-DataRef", "variantKey": "Name", - "Name": "0x5618c203fb00-Name" + "Name": "0x55fc59e93b00-Name" }, { - "id": "0x5618c203fb00-Name", + "id": "0x55fc59e93b00-Name", "source": "r16" }, { - "id": "0x5618c206c530-Statement", - "statement": "0x5618c206c540-EndProgramStmt", + "id": "0x55fc59ec0530-Statement", + "statement": "0x55fc59ec0540-EndProgramStmt", "source": "end program kind_selector" }, { - "id": "0x5618c206c540-EndProgramStmt", - "Name": "0x5618c206c540-Name" + "id": "0x55fc59ec0540-EndProgramStmt", + "Name": "0x55fc59ec0540-Name" }, { - "id": "0x5618c206c540-Name", + "id": "0x55fc59ec0540-Name", "source": "kind_selector" } ], diff --git a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json index dbb3b759..b045fe47 100644 --- a/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json +++ b/FortranParser/resources-test/fortran/parser/decl/legacy_kind_selector.json @@ -1,300 +1,301 @@ { "nodes": [ { - "id": "0x56154f37ccc0-Program", + "id": "0x55f44ff79cc0-Program", "ProgramUnit": [ - "0x56154f3a6eb0-ProgramUnit" + "0x55f44ffa3eb0-ProgramUnit" ] }, { - "id": "0x56154f3a6eb0-ProgramUnit", + "id": "0x55f44ffa3eb0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x56154f3a9420-MainProgram" + "MainProgram": "0x55f44ffa6420-MainProgram" }, { - "id": "0x56154f3a9420-MainProgram", - "Statement": "0x56154f3a9568-Statement", - "SpecificationPart": "0x56154f3a94c0-SpecificationPart", - "ExecutionPart": "0x56154f3a94a8-ExecutionPart", - "Statement": "0x56154f3a9420-Statement" + "id": "0x55f44ffa6420-MainProgram", + "Statement": "0x55f44ffa6568-Statement", + "SpecificationPart": "0x55f44ffa64c0-SpecificationPart", + "ExecutionPart": "0x55f44ffa64a8-ExecutionPart", + "Statement": "0x55f44ffa6420-Statement" }, { - "id": "0x56154f3a9568-Statement", - "statement": "0x56154f3a9578-ProgramStmt", + "id": "0x55f44ffa6568-Statement", + "statement": "0x55f44ffa6578-ProgramStmt", "source": "program legacy_kind_selector" }, { - "id": "0x56154f3a9578-ProgramStmt", - "Name": "0x56154f3a9578-Name" + "id": "0x55f44ffa6578-ProgramStmt", + "Name": "0x55f44ffa6578-Name" }, { - "id": "0x56154f3a9578-Name", + "id": "0x55f44ffa6578-Name", "source": "legacy_kind_selector" }, { - "id": "0x56154f3a94c0-SpecificationPart", - "ImplicitPart": "0x56154f3a94d8-ImplicitPart", + "id": "0x55f44ffa64c0-SpecificationPart", + "ImplicitPart": "0x55f44ffa64d8-ImplicitPart", "DeclarationConstruct": [ - "0x56154f383240-DeclarationConstruct", - "0x56154f3551a0-DeclarationConstruct" + "0x55f44ff80240-DeclarationConstruct", + "0x55f44ff521a0-DeclarationConstruct" ] }, { - "id": "0x56154f3a94d8-ImplicitPart" + "id": "0x55f44ffa64d8-ImplicitPart" }, { - "id": "0x56154f383240-DeclarationConstruct", + "id": "0x55f44ff80240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56154f383240-SpecificationConstruct" + "SpecificationConstruct": "0x55f44ff80240-SpecificationConstruct" }, { - "id": "0x56154f383240-SpecificationConstruct", + "id": "0x55f44ff80240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56154f383240-Statement" + "Statement": "0x55f44ff80240-Statement" }, { - "id": "0x56154f383240-Statement", - "statement": "0x56154f38b250-TypeDeclarationStmt", + "id": "0x55f44ff80240-Statement", + "statement": "0x55f44ff88250-TypeDeclarationStmt", "source": "integer*8 :: i8 = 1" }, { - "id": "0x56154f38b250-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56154f38b280-DeclarationTypeSpec", + "id": "0x55f44ff88250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55f44ff88280-DeclarationTypeSpec", "EntityDecl": [ - "0x56154f3a72c0-EntityDecl" + "0x55f44ffa42c0-EntityDecl" ] }, { - "id": "0x56154f38b280-DeclarationTypeSpec", + "id": "0x55f44ff88280-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56154f38b280-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55f44ff88280-IntrinsicTypeSpec" }, { - "id": "0x56154f38b280-IntrinsicTypeSpec", + "id": "0x55f44ff88280-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x56154f38b280-IntegerTypeSpec" + "IntegerTypeSpec": "0x55f44ff88280-IntegerTypeSpec" }, { - "id": "0x56154f38b280-IntegerTypeSpec", - "KindSelector": "0x56154f38b280-KindSelector" + "id": "0x55f44ff88280-IntegerTypeSpec", + "KindSelector": "0x55f44ff88280-KindSelector" }, { - "id": "0x56154f38b280-KindSelector", + "id": "0x55f44ff88280-KindSelector", "variantKey": "StarSize", - "StarSize": "0x56154f38b280-StarSize" + "StarSize": "0x55f44ff88280-StarSize" }, { - "id": "0x56154f38b280-StarSize", + "id": "0x55f44ff88280-StarSize", "uint64_t": "8" }, { - "id": "0x56154f3a72c0-EntityDecl", - "Name": "0x56154f3a7378-Name", - "Initialization": "0x56154f3a72c0-Initialization" + "id": "0x55f44ffa42c0-EntityDecl", + "Name": "0x55f44ffa4378-Name", + "Initialization": "0x55f44ffa42c0-Initialization" }, { - "id": "0x56154f3a7378-Name", + "id": "0x55f44ffa4378-Name", "source": "i8" }, { - "id": "0x56154f3a72c0-Initialization", + "id": "0x55f44ffa42c0-Initialization", "variantKey": "Expr", - "Expr": "0x56154f3a71d0-Expr" + "Expr": "0x55f44ffa41d0-Expr" }, { - "id": "0x56154f3a71d0-Expr", + "id": "0x55f44ffa41d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56154f3a71f0-LiteralConstant" + "LiteralConstant": "0x55f44ffa41f0-LiteralConstant" }, { - "id": "0x56154f3a71f0-LiteralConstant", + "id": "0x55f44ffa41f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56154f3a71f0-IntLiteralConstant" + "IntLiteralConstant": "0x55f44ffa41f0-IntLiteralConstant" }, { - "id": "0x56154f3a71f0-IntLiteralConstant", + "id": "0x55f44ffa41f0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56154f3551a0-DeclarationConstruct", + "id": "0x55f44ff521a0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56154f3551a0-SpecificationConstruct" + "SpecificationConstruct": "0x55f44ff521a0-SpecificationConstruct" }, { - "id": "0x56154f3551a0-SpecificationConstruct", + "id": "0x55f44ff521a0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56154f3551a0-Statement" + "Statement": "0x55f44ff521a0-Statement" }, { - "id": "0x56154f3551a0-Statement", - "statement": "0x56154f355110-TypeDeclarationStmt", + "id": "0x55f44ff521a0-Statement", + "statement": "0x55f44ff52110-TypeDeclarationStmt", "source": "real*16 :: r16 = 2.0" }, { - "id": "0x56154f355110-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56154f355140-DeclarationTypeSpec", + "id": "0x55f44ff52110-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55f44ff52140-DeclarationTypeSpec", "EntityDecl": [ - "0x56154f3a75f0-EntityDecl" + "0x55f44ffa45f0-EntityDecl" ] }, { - "id": "0x56154f355140-DeclarationTypeSpec", + "id": "0x55f44ff52140-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56154f355140-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55f44ff52140-IntrinsicTypeSpec" }, { - "id": "0x56154f355140-IntrinsicTypeSpec", + "id": "0x55f44ff52140-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x56154f355140-Real" + "Real": "0x55f44ff52140-Real" }, { - "id": "0x56154f355140-Real" + "id": "0x55f44ff52140-Real", + "KindSelector": "0x55f44ff52140-KindSelector" }, { - "id": "0x56154f355140-KindSelector", + "id": "0x55f44ff52140-KindSelector", "variantKey": "StarSize", - "StarSize": "0x56154f355140-StarSize" + "StarSize": "0x55f44ff52140-StarSize" }, { - "id": "0x56154f355140-StarSize", + "id": "0x55f44ff52140-StarSize", "uint64_t": "16" }, { - "id": "0x56154f3a75f0-EntityDecl", - "Name": "0x56154f3a76a8-Name", - "Initialization": "0x56154f3a75f0-Initialization" + "id": "0x55f44ffa45f0-EntityDecl", + "Name": "0x55f44ffa46a8-Name", + "Initialization": "0x55f44ffa45f0-Initialization" }, { - "id": "0x56154f3a76a8-Name", + "id": "0x55f44ffa46a8-Name", "source": "r16" }, { - "id": "0x56154f3a75f0-Initialization", + "id": "0x55f44ffa45f0-Initialization", "variantKey": "Expr", - "Expr": "0x56154f3a7500-Expr" + "Expr": "0x55f44ffa4500-Expr" }, { - "id": "0x56154f3a7500-Expr", + "id": "0x55f44ffa4500-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56154f3a7520-LiteralConstant" + "LiteralConstant": "0x55f44ffa4520-LiteralConstant" }, { - "id": "0x56154f3a7520-LiteralConstant", + "id": "0x55f44ffa4520-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56154f3a7520-RealLiteralConstant" + "RealLiteralConstant": "0x55f44ffa4520-RealLiteralConstant" }, { - "id": "0x56154f3a7520-RealLiteralConstant", - "real": "0x56154f3a7520-Real" + "id": "0x55f44ffa4520-RealLiteralConstant", + "real": "0x55f44ffa4520-Real" }, { - "id": "0x56154f3a7520-Real", + "id": "0x55f44ffa4520-Real", "source": "2.0" }, { - "id": "0x56154f3a94a8-ExecutionPart", + "id": "0x55f44ffa64a8-ExecutionPart", "ExecutionPartConstruct": [ - "0x56154f3a9340-ExecutionPartConstruct" + "0x55f44ffa6340-ExecutionPartConstruct" ] }, { - "id": "0x56154f3a94a8-ExecutionPartConstruct" + "id": "0x55f44ffa64a8-ExecutionPartConstruct" }, { - "id": "0x56154f3a9340-ExecutionPartConstruct", + "id": "0x55f44ffa6340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56154f3a9340-ExecutableConstruct" + "ExecutableConstruct": "0x55f44ffa6340-ExecutableConstruct" }, { - "id": "0x56154f3a9340-ExecutableConstruct", + "id": "0x55f44ffa6340-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56154f3a9340-Statement" + "Statement": "0x55f44ffa6340-Statement" }, { - "id": "0x56154f3a9340-Statement", - "statement": "0x56154f3a9350-ActionStmt", + "id": "0x55f44ffa6340-Statement", + "statement": "0x55f44ffa6350-ActionStmt", "source": "print *, i8, r16" }, { - "id": "0x56154f3a9350-ActionStmt", + "id": "0x55f44ffa6350-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56154f3a5de0-PrintStmt" + "PrintStmt": "0x55f44ffa2de0-PrintStmt" }, { - "id": "0x56154f3a5de0-PrintStmt", - "Format": "0x56154f3a5df8-Format", + "id": "0x55f44ffa2de0-PrintStmt", + "Format": "0x55f44ffa2df8-Format", "OutputItem": [ - "0x56154f3a9170-OutputItem", - "0x56154f3a9080-OutputItem" + "0x55f44ffa6170-OutputItem", + "0x55f44ffa6080-OutputItem" ] }, { - "id": "0x56154f3a5df8-Format", + "id": "0x55f44ffa2df8-Format", "variantKey": "Star", - "Star": "0x56154f3a5df8-Star" + "Star": "0x55f44ffa2df8-Star" }, { - "id": "0x56154f3a5df8-Star" + "id": "0x55f44ffa2df8-Star" }, { - "id": "0x56154f3a9170-OutputItem", + "id": "0x55f44ffa6170-OutputItem", "variantKey": "Expr", - "Expr": "0x56154f3a9170-Expr" + "Expr": "0x55f44ffa6170-Expr" }, { - "id": "0x56154f3a9170-Expr", + "id": "0x55f44ffa6170-Expr", "variantKey": "Designator", - "Designator": "0x56154f3a8d80-Designator" + "Designator": "0x55f44ffa5d80-Designator" }, { - "id": "0x56154f3a8d80-Designator", + "id": "0x55f44ffa5d80-Designator", "variantKey": "DataRef", - "DataRef": "0x56154f3a8d90-DataRef" + "DataRef": "0x55f44ffa5d90-DataRef" }, { - "id": "0x56154f3a8d90-DataRef", + "id": "0x55f44ffa5d90-DataRef", "variantKey": "Name", - "Name": "0x56154f3a8d90-Name" + "Name": "0x55f44ffa5d90-Name" }, { - "id": "0x56154f3a8d90-Name", + "id": "0x55f44ffa5d90-Name", "source": "i8" }, { - "id": "0x56154f3a9080-OutputItem", + "id": "0x55f44ffa6080-OutputItem", "variantKey": "Expr", - "Expr": "0x56154f3a9080-Expr" + "Expr": "0x55f44ffa6080-Expr" }, { - "id": "0x56154f3a9080-Expr", + "id": "0x55f44ffa6080-Expr", "variantKey": "Designator", - "Designator": "0x56154f37caf0-Designator" + "Designator": "0x55f44ff79af0-Designator" }, { - "id": "0x56154f37caf0-Designator", + "id": "0x55f44ff79af0-Designator", "variantKey": "DataRef", - "DataRef": "0x56154f37cb00-DataRef" + "DataRef": "0x55f44ff79b00-DataRef" }, { - "id": "0x56154f37cb00-DataRef", + "id": "0x55f44ff79b00-DataRef", "variantKey": "Name", - "Name": "0x56154f37cb00-Name" + "Name": "0x55f44ff79b00-Name" }, { - "id": "0x56154f37cb00-Name", + "id": "0x55f44ff79b00-Name", "source": "r16" }, { - "id": "0x56154f3a9420-Statement", - "statement": "0x56154f3a9430-EndProgramStmt", + "id": "0x55f44ffa6420-Statement", + "statement": "0x55f44ffa6430-EndProgramStmt", "source": "end program legacy_kind_selector" }, { - "id": "0x56154f3a9430-EndProgramStmt", - "Name": "0x56154f3a9430-Name" + "id": "0x55f44ffa6430-EndProgramStmt", + "Name": "0x55f44ffa6430-Name" }, { - "id": "0x56154f3a9430-Name", + "id": "0x55f44ffa6430-Name", "source": "legacy_kind_selector" } ], diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json index fc892a98..abbbe011 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json @@ -1,1484 +1,1489 @@ { "nodes": [ { - "id": "0x55ee11df6cc0-Program", + "id": "0x55e6178d1cc0-Program", "ProgramUnit": [ - "0x55ee11e1f660-ProgramUnit" + "0x55e6178fa660-ProgramUnit" ] }, { - "id": "0x55ee11e1f660-ProgramUnit", + "id": "0x55e6178fa660-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55ee11e20a50-MainProgram" + "MainProgram": "0x55e6178fba50-MainProgram" }, { - "id": "0x55ee11e20a50-MainProgram", - "SpecificationPart": "0x55ee11e20af0-SpecificationPart", - "ExecutionPart": "0x55ee11e20ad8-ExecutionPart", - "Statement": "0x55ee11e20a50-Statement" + "id": "0x55e6178fba50-MainProgram", + "SpecificationPart": "0x55e6178fbaf0-SpecificationPart", + "ExecutionPart": "0x55e6178fbad8-ExecutionPart", + "Statement": "0x55e6178fba50-Statement" }, { - "id": "0x55ee11e20af0-SpecificationPart", - "ImplicitPart": "0x55ee11e20b08-ImplicitPart", + "id": "0x55e6178fbaf0-SpecificationPart", + "ImplicitPart": "0x55e6178fbb08-ImplicitPart", "DeclarationConstruct": [ - "0x55ee11dfd5b0-DeclarationConstruct", - "0x55ee11dfd240-DeclarationConstruct", - "0x55ee11dcf140-DeclarationConstruct" + "0x55e6178d85b0-DeclarationConstruct", + "0x55e6178d8240-DeclarationConstruct", + "0x55e6178aa140-DeclarationConstruct" ] }, { - "id": "0x55ee11e20b08-ImplicitPart" + "id": "0x55e6178fbb08-ImplicitPart" }, { - "id": "0x55ee11dfd5b0-DeclarationConstruct", + "id": "0x55e6178d85b0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ee11dfd5b0-SpecificationConstruct" + "SpecificationConstruct": "0x55e6178d85b0-SpecificationConstruct" }, { - "id": "0x55ee11dfd5b0-SpecificationConstruct", + "id": "0x55e6178d85b0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ee11dfd5b0-Statement" + "Statement": "0x55e6178d85b0-Statement" }, { - "id": "0x55ee11dfd5b0-Statement", - "statement": "0x55ee11e05250-TypeDeclarationStmt", + "id": "0x55e6178d85b0-Statement", + "statement": "0x55e6178e0250-TypeDeclarationStmt", "source": "integer*1 a1, a2" }, { - "id": "0x55ee11e05250-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ee11e05280-DeclarationTypeSpec", + "id": "0x55e6178e0250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e6178e0280-DeclarationTypeSpec", "EntityDecl": [ - "0x55ee11e21f30-EntityDecl", - "0x55ee11dcf050-EntityDecl" + "0x55e6178fcf30-EntityDecl", + "0x55e6178aa050-EntityDecl" ] }, { - "id": "0x55ee11e05280-DeclarationTypeSpec", + "id": "0x55e6178e0280-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ee11e05280-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e6178e0280-IntrinsicTypeSpec" }, { - "id": "0x55ee11e05280-IntrinsicTypeSpec", + "id": "0x55e6178e0280-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55ee11e05280-IntegerTypeSpec" + "IntegerTypeSpec": "0x55e6178e0280-IntegerTypeSpec" }, { - "id": "0x55ee11e05280-IntegerTypeSpec", - "KindSelector": "0x55ee11e05280-KindSelector" + "id": "0x55e6178e0280-IntegerTypeSpec", + "KindSelector": "0x55e6178e0280-KindSelector" }, { - "id": "0x55ee11e05280-KindSelector", + "id": "0x55e6178e0280-KindSelector", "variantKey": "StarSize", - "StarSize": "0x55ee11e05280-StarSize" + "StarSize": "0x55e6178e0280-StarSize" }, { - "id": "0x55ee11e05280-StarSize", + "id": "0x55e6178e0280-StarSize", "uint64_t": "1" }, { - "id": "0x55ee11e21f30-EntityDecl", - "Name": "0x55ee11e21fe8-Name" + "id": "0x55e6178fcf30-EntityDecl", + "Name": "0x55e6178fcfe8-Name" }, { - "id": "0x55ee11e21fe8-Name", + "id": "0x55e6178fcfe8-Name", "source": "a1" }, { - "id": "0x55ee11dcf050-EntityDecl", - "Name": "0x55ee11dcf108-Name" + "id": "0x55e6178aa050-EntityDecl", + "Name": "0x55e6178aa108-Name" }, { - "id": "0x55ee11dcf108-Name", + "id": "0x55e6178aa108-Name", "source": "a2" }, { - "id": "0x55ee11dfd240-DeclarationConstruct", + "id": "0x55e6178d8240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ee11dfd240-SpecificationConstruct" + "SpecificationConstruct": "0x55e6178d8240-SpecificationConstruct" }, { - "id": "0x55ee11dfd240-SpecificationConstruct", + "id": "0x55e6178d8240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ee11dfd240-Statement" + "Statement": "0x55e6178d8240-Statement" }, { - "id": "0x55ee11dfd240-Statement", - "statement": "0x55ee11e21d00-TypeDeclarationStmt", + "id": "0x55e6178d8240-Statement", + "statement": "0x55e6178fcd00-TypeDeclarationStmt", "source": "real*16 b1, b2" }, { - "id": "0x55ee11e21d00-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ee11e21d30-DeclarationTypeSpec", + "id": "0x55e6178fcd00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e6178fcd30-DeclarationTypeSpec", "EntityDecl": [ - "0x55ee11e212f0-EntityDecl", - "0x55ee11e21200-EntityDecl" + "0x55e6178fc2f0-EntityDecl", + "0x55e6178fc200-EntityDecl" ] }, { - "id": "0x55ee11e21d30-DeclarationTypeSpec", + "id": "0x55e6178fcd30-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ee11e21d30-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e6178fcd30-IntrinsicTypeSpec" }, { - "id": "0x55ee11e21d30-IntrinsicTypeSpec", + "id": "0x55e6178fcd30-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x55ee11e21d30-Real" + "Real": "0x55e6178fcd30-Real" }, { - "id": "0x55ee11e21d30-Real" + "id": "0x55e6178fcd30-Real", + "KindSelector": "0x55e6178fcd30-KindSelector" }, { - "id": "0x55ee11e21d30-KindSelector", + "id": "0x55e6178fcd30-KindSelector", "variantKey": "StarSize", - "StarSize": "0x55ee11e21d30-StarSize" + "StarSize": "0x55e6178fcd30-StarSize" }, { - "id": "0x55ee11e21d30-StarSize", + "id": "0x55e6178fcd30-StarSize", "uint64_t": "16" }, { - "id": "0x55ee11e212f0-EntityDecl", - "Name": "0x55ee11e213a8-Name" + "id": "0x55e6178fc2f0-EntityDecl", + "Name": "0x55e6178fc3a8-Name" }, { - "id": "0x55ee11e213a8-Name", + "id": "0x55e6178fc3a8-Name", "source": "b1" }, { - "id": "0x55ee11e21200-EntityDecl", - "Name": "0x55ee11e212b8-Name" + "id": "0x55e6178fc200-EntityDecl", + "Name": "0x55e6178fc2b8-Name" }, { - "id": "0x55ee11e212b8-Name", + "id": "0x55e6178fc2b8-Name", "source": "b2" }, { - "id": "0x55ee11dcf140-DeclarationConstruct", + "id": "0x55e6178aa140-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55ee11dcf140-SpecificationConstruct" + "SpecificationConstruct": "0x55e6178aa140-SpecificationConstruct" }, { - "id": "0x55ee11dcf140-SpecificationConstruct", + "id": "0x55e6178aa140-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55ee11dcf140-Statement" + "Statement": "0x55e6178aa140-Statement" }, { - "id": "0x55ee11dcf140-Statement", - "statement": "0x55ee11e21d80-TypeDeclarationStmt", + "id": "0x55e6178aa140-Statement", + "statement": "0x55e6178fcd80-TypeDeclarationStmt", "source": "logical ok" }, { - "id": "0x55ee11e21d80-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55ee11e21db0-DeclarationTypeSpec", + "id": "0x55e6178fcd80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e6178fcdb0-DeclarationTypeSpec", "EntityDecl": [ - "0x55ee11e21460-EntityDecl" + "0x55e6178fc460-EntityDecl" ] }, { - "id": "0x55ee11e21db0-DeclarationTypeSpec", + "id": "0x55e6178fcdb0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55ee11e21db0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55e6178fcdb0-IntrinsicTypeSpec" }, { - "id": "0x55ee11e21db0-IntrinsicTypeSpec", + "id": "0x55e6178fcdb0-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x55ee11e21db0-Logical" + "Logical": "0x55e6178fcdb0-Logical" }, { - "id": "0x55ee11e21db0-Logical" + "id": "0x55e6178fcdb0-Logical" }, { - "id": "0x55ee11e21460-EntityDecl", - "Name": "0x55ee11e21518-Name" + "id": "0x55e6178fc460-EntityDecl", + "Name": "0x55e6178fc518-Name" }, { - "id": "0x55ee11e21518-Name", + "id": "0x55e6178fc518-Name", "source": "ok" }, { - "id": "0x55ee11e20ad8-ExecutionPart", + "id": "0x55e6178fbad8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55ee11e22890-ExecutionPartConstruct", - "0x55ee11e22b60-ExecutionPartConstruct", - "0x55ee11e22520-ExecutionPartConstruct", - "0x55ee11e221b0-ExecutionPartConstruct", - "0x55ee11e23130-ExecutionPartConstruct", - "0x55ee11e231f0-ExecutionPartConstruct", - "0x55ee11e238c0-ExecutionPartConstruct", - "0x55ee11e234e0-ExecutionPartConstruct", - "0x55ee11e27200-ExecutionPartConstruct", - "0x55ee11e27430-ExecutionPartConstruct", - "0x55ee11e274f0-ExecutionPartConstruct", - "0x55ee11e27030-ExecutionPartConstruct" + "0x55e6178fd890-ExecutionPartConstruct", + "0x55e6178fdb60-ExecutionPartConstruct", + "0x55e6178fd520-ExecutionPartConstruct", + "0x55e6178fd1b0-ExecutionPartConstruct", + "0x55e6178fe130-ExecutionPartConstruct", + "0x55e6178fe1f0-ExecutionPartConstruct", + "0x55e6178fe8c0-ExecutionPartConstruct", + "0x55e6178fe4e0-ExecutionPartConstruct", + "0x55e617902200-ExecutionPartConstruct", + "0x55e617902430-ExecutionPartConstruct", + "0x55e6179024f0-ExecutionPartConstruct", + "0x55e617902030-ExecutionPartConstruct" ] }, { - "id": "0x55ee11e20ad8-ExecutionPartConstruct" + "id": "0x55e6178fbad8-ExecutionPartConstruct" }, { - "id": "0x55ee11e22890-ExecutionPartConstruct", + "id": "0x55e6178fd890-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e22890-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fd890-ExecutableConstruct" }, { - "id": "0x55ee11e22890-ExecutableConstruct", + "id": "0x55e6178fd890-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e22890-Statement" + "Statement": "0x55e6178fd890-Statement" }, { - "id": "0x55ee11e22890-Statement", - "statement": "0x55ee11e228a0-ActionStmt", + "id": "0x55e6178fd890-Statement", + "statement": "0x55e6178fd8a0-ActionStmt", "source": "ok = .true." }, { - "id": "0x55ee11e228a0-ActionStmt", + "id": "0x55e6178fd8a0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e20940-AssignmentStmt" + "AssignmentStmt": "0x55e6178fb940-AssignmentStmt" }, { - "id": "0x55ee11e20940-AssignmentStmt", - "Variable": "0x55ee11e20a20-Variable", - "Expr": "0x55ee11e20950-Expr" + "id": "0x55e6178fb940-AssignmentStmt", + "Variable": "0x55e6178fba20-Variable", + "Expr": "0x55e6178fb950-Expr" }, { - "id": "0x55ee11e20a20-Variable", + "id": "0x55e6178fba20-Variable", "variantKey": "Designator", - "Designator": "0x55ee11dcf190-Designator" + "Designator": "0x55e6178aa190-Designator" }, { - "id": "0x55ee11dcf190-Designator", + "id": "0x55e6178aa190-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11dcf1a0-DataRef" + "DataRef": "0x55e6178aa1a0-DataRef" }, { - "id": "0x55ee11dcf1a0-DataRef", + "id": "0x55e6178aa1a0-DataRef", "variantKey": "Name", - "Name": "0x55ee11dcf1a0-Name" + "Name": "0x55e6178aa1a0-Name" }, { - "id": "0x55ee11dcf1a0-Name", + "id": "0x55e6178aa1a0-Name", "source": "ok" }, { - "id": "0x55ee11e20950-Expr", + "id": "0x55e6178fb950-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e20970-LiteralConstant" + "LiteralConstant": "0x55e6178fb970-LiteralConstant" }, { - "id": "0x55ee11e20970-LiteralConstant", + "id": "0x55e6178fb970-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55ee11e20970-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55e6178fb970-LogicalLiteralConstant" }, { - "id": "0x55ee11e20970-LogicalLiteralConstant", + "id": "0x55e6178fb970-LogicalLiteralConstant", "bool": "1" }, { - "id": "0x55ee11e22b60-ExecutionPartConstruct", + "id": "0x55e6178fdb60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e22b60-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fdb60-ExecutableConstruct" }, { - "id": "0x55ee11e22b60-ExecutableConstruct", + "id": "0x55e6178fdb60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e22b60-Statement" + "Statement": "0x55e6178fdb60-Statement" }, { - "id": "0x55ee11e22b60-Statement", - "statement": "0x55ee11e22b70-ActionStmt", + "id": "0x55e6178fdb60-Statement", + "statement": "0x55e6178fdb70-ActionStmt", "source": "a1 = 1" }, { - "id": "0x55ee11e22b70-ActionStmt", + "id": "0x55e6178fdb70-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e22a40-AssignmentStmt" + "AssignmentStmt": "0x55e6178fda40-AssignmentStmt" }, { - "id": "0x55ee11e22a40-AssignmentStmt", - "Variable": "0x55ee11e22b20-Variable", - "Expr": "0x55ee11e22a50-Expr" + "id": "0x55e6178fda40-AssignmentStmt", + "Variable": "0x55e6178fdb20-Variable", + "Expr": "0x55e6178fda50-Expr" }, { - "id": "0x55ee11e22b20-Variable", + "id": "0x55e6178fdb20-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e21820-Designator" + "Designator": "0x55e6178fc820-Designator" }, { - "id": "0x55ee11e21820-Designator", + "id": "0x55e6178fc820-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e21830-DataRef" + "DataRef": "0x55e6178fc830-DataRef" }, { - "id": "0x55ee11e21830-DataRef", + "id": "0x55e6178fc830-DataRef", "variantKey": "Name", - "Name": "0x55ee11e21830-Name" + "Name": "0x55e6178fc830-Name" }, { - "id": "0x55ee11e21830-Name", + "id": "0x55e6178fc830-Name", "source": "a1" }, { - "id": "0x55ee11e22a50-Expr", + "id": "0x55e6178fda50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e22a70-LiteralConstant" + "LiteralConstant": "0x55e6178fda70-LiteralConstant" }, { - "id": "0x55ee11e22a70-LiteralConstant", + "id": "0x55e6178fda70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ee11e22a70-IntLiteralConstant" + "IntLiteralConstant": "0x55e6178fda70-IntLiteralConstant" }, { - "id": "0x55ee11e22a70-IntLiteralConstant", + "id": "0x55e6178fda70-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ee11e22520-ExecutionPartConstruct", + "id": "0x55e6178fd520-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e22520-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fd520-ExecutableConstruct" }, { - "id": "0x55ee11e22520-ExecutableConstruct", + "id": "0x55e6178fd520-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e22520-Statement" + "Statement": "0x55e6178fd520-Statement" }, { - "id": "0x55ee11e22520-Statement", - "statement": "0x55ee11e22530-ActionStmt", + "id": "0x55e6178fd520-Statement", + "statement": "0x55e6178fd530-ActionStmt", "source": "b1 = 1.1" }, { - "id": "0x55ee11e22530-ActionStmt", + "id": "0x55e6178fd530-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e22400-AssignmentStmt" + "AssignmentStmt": "0x55e6178fd400-AssignmentStmt" }, { - "id": "0x55ee11e22400-AssignmentStmt", - "Variable": "0x55ee11e224e0-Variable", - "Expr": "0x55ee11e22410-Expr" + "id": "0x55e6178fd400-AssignmentStmt", + "Variable": "0x55e6178fd4e0-Variable", + "Expr": "0x55e6178fd410-Expr" }, { - "id": "0x55ee11e224e0-Variable", + "id": "0x55e6178fd4e0-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e22140-Designator" + "Designator": "0x55e6178fd140-Designator" }, { - "id": "0x55ee11e22140-Designator", + "id": "0x55e6178fd140-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e22150-DataRef" + "DataRef": "0x55e6178fd150-DataRef" }, { - "id": "0x55ee11e22150-DataRef", + "id": "0x55e6178fd150-DataRef", "variantKey": "Name", - "Name": "0x55ee11e22150-Name" + "Name": "0x55e6178fd150-Name" }, { - "id": "0x55ee11e22150-Name", + "id": "0x55e6178fd150-Name", "source": "b1" }, { - "id": "0x55ee11e22410-Expr", + "id": "0x55e6178fd410-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e22430-LiteralConstant" + "LiteralConstant": "0x55e6178fd430-LiteralConstant" }, { - "id": "0x55ee11e22430-LiteralConstant", + "id": "0x55e6178fd430-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55ee11e22430-RealLiteralConstant" + "RealLiteralConstant": "0x55e6178fd430-RealLiteralConstant" }, { - "id": "0x55ee11e22430-RealLiteralConstant", - "real": "0x55ee11e22430-Real" + "id": "0x55e6178fd430-RealLiteralConstant", + "real": "0x55e6178fd430-Real" }, { - "id": "0x55ee11e22430-Real", + "id": "0x55e6178fd430-Real", "source": "1.1" }, { - "id": "0x55ee11e221b0-ExecutionPartConstruct", + "id": "0x55e6178fd1b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e221b0-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fd1b0-ExecutableConstruct" }, { - "id": "0x55ee11e221b0-ExecutableConstruct", + "id": "0x55e6178fd1b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e221b0-Statement" + "Statement": "0x55e6178fd1b0-Statement" }, { - "id": "0x55ee11e221b0-Statement", - "statement": "0x55ee11e221c0-ActionStmt", + "id": "0x55e6178fd1b0-Statement", + "statement": "0x55e6178fd1c0-ActionStmt", "source": "a2 = b1" }, { - "id": "0x55ee11e221c0-ActionStmt", + "id": "0x55e6178fd1c0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e22e30-AssignmentStmt" + "AssignmentStmt": "0x55e6178fde30-AssignmentStmt" }, { - "id": "0x55ee11e22e30-AssignmentStmt", - "Variable": "0x55ee11e22f10-Variable", - "Expr": "0x55ee11e22e40-Expr" + "id": "0x55e6178fde30-AssignmentStmt", + "Variable": "0x55e6178fdf10-Variable", + "Expr": "0x55e6178fde40-Expr" }, { - "id": "0x55ee11e22f10-Variable", + "id": "0x55e6178fdf10-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e22bb0-Designator" + "Designator": "0x55e6178fdbb0-Designator" }, { - "id": "0x55ee11e22bb0-Designator", + "id": "0x55e6178fdbb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e22bc0-DataRef" + "DataRef": "0x55e6178fdbc0-DataRef" }, { - "id": "0x55ee11e22bc0-DataRef", + "id": "0x55e6178fdbc0-DataRef", "variantKey": "Name", - "Name": "0x55ee11e22bc0-Name" + "Name": "0x55e6178fdbc0-Name" }, { - "id": "0x55ee11e22bc0-Name", + "id": "0x55e6178fdbc0-Name", "source": "a2" }, { - "id": "0x55ee11e22e40-Expr", + "id": "0x55e6178fde40-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e22630-Designator" + "Designator": "0x55e6178fd630-Designator" }, { - "id": "0x55ee11e22630-Designator", + "id": "0x55e6178fd630-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e22640-DataRef" + "DataRef": "0x55e6178fd640-DataRef" }, { - "id": "0x55ee11e22640-DataRef", + "id": "0x55e6178fd640-DataRef", "variantKey": "Name", - "Name": "0x55ee11e22640-Name" + "Name": "0x55e6178fd640-Name" }, { - "id": "0x55ee11e22640-Name", + "id": "0x55e6178fd640-Name", "source": "b1" }, { - "id": "0x55ee11e23130-ExecutionPartConstruct", + "id": "0x55e6178fe130-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e23130-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fe130-ExecutableConstruct" }, { - "id": "0x55ee11e23130-ExecutableConstruct", + "id": "0x55e6178fe130-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e23130-Statement" + "Statement": "0x55e6178fe130-Statement" }, { - "id": "0x55ee11e23130-Statement", - "statement": "0x55ee11e23140-ActionStmt", + "id": "0x55e6178fe130-Statement", + "statement": "0x55e6178fe140-ActionStmt", "source": "b2 = a1" }, { - "id": "0x55ee11e23140-ActionStmt", + "id": "0x55e6178fe140-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e22fa0-AssignmentStmt" + "AssignmentStmt": "0x55e6178fdfa0-AssignmentStmt" }, { - "id": "0x55ee11e22fa0-AssignmentStmt", - "Variable": "0x55ee11e23080-Variable", - "Expr": "0x55ee11e22fb0-Expr" + "id": "0x55e6178fdfa0-AssignmentStmt", + "Variable": "0x55e6178fe080-Variable", + "Expr": "0x55e6178fdfb0-Expr" }, { - "id": "0x55ee11e23080-Variable", + "id": "0x55e6178fe080-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e22570-Designator" + "Designator": "0x55e6178fd570-Designator" }, { - "id": "0x55ee11e22570-Designator", + "id": "0x55e6178fd570-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e22580-DataRef" + "DataRef": "0x55e6178fd580-DataRef" }, { - "id": "0x55ee11e22580-DataRef", + "id": "0x55e6178fd580-DataRef", "variantKey": "Name", - "Name": "0x55ee11e22580-Name" + "Name": "0x55e6178fd580-Name" }, { - "id": "0x55ee11e22580-Name", + "id": "0x55e6178fd580-Name", "source": "b2" }, { - "id": "0x55ee11e22fb0-Expr", + "id": "0x55e6178fdfb0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e22f40-Designator" + "Designator": "0x55e6178fdf40-Designator" }, { - "id": "0x55ee11e22f40-Designator", + "id": "0x55e6178fdf40-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e22f50-DataRef" + "DataRef": "0x55e6178fdf50-DataRef" }, { - "id": "0x55ee11e22f50-DataRef", + "id": "0x55e6178fdf50-DataRef", "variantKey": "Name", - "Name": "0x55ee11e22f50-Name" + "Name": "0x55e6178fdf50-Name" }, { - "id": "0x55ee11e22f50-Name", + "id": "0x55e6178fdf50-Name", "source": "a1" }, { - "id": "0x55ee11e231f0-ExecutionPartConstruct", + "id": "0x55e6178fe1f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e231f0-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fe1f0-ExecutableConstruct" }, { - "id": "0x55ee11e231f0-ExecutableConstruct", + "id": "0x55e6178fe1f0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55ee11de0490-IfConstruct" + "IfConstruct": "0x55e6178bb490-IfConstruct" }, { - "id": "0x55ee11de0490-IfConstruct", - "Statement": "0x55ee11de0560-Statement", + "id": "0x55e6178bb490-IfConstruct", + "Statement": "0x55e6178bb560-Statement", "ExecutionPartConstruct": [ - "0x55ee11e22210-ExecutionPartConstruct", - "0x55ee11e26b90-ExecutionPartConstruct" + "0x55e6178fd210-ExecutionPartConstruct", + "0x55e617901b90-ExecutionPartConstruct" ], - "Statement": "0x55ee11de0490-Statement" + "Statement": "0x55e6178bb490-Statement" }, { - "id": "0x55ee11de0560-Statement", - "statement": "0x55ee11de0570-IfThenStmt", + "id": "0x55e6178bb560-Statement", + "statement": "0x55e6178bb570-IfThenStmt", "source": "if((a2 - b2) .ne. 0) then" }, { - "id": "0x55ee11de0570-IfThenStmt", - "Expr": "0x55ee11e23ad0-Expr" + "id": "0x55e6178bb570-IfThenStmt", + "Expr": "0x55e6178fead0-Expr" }, { - "id": "0x55ee11e23ad0-Expr", + "id": "0x55e6178fead0-Expr", "variantKey": "NE", - "NE": "0x55ee11e23af0-NE" + "NE": "0x55e6178feaf0-NE" }, { - "id": "0x55ee11e23af0-NE", - "left": "0x55ee11e23760-Expr", - "right": "0x55ee11e23680-Expr", + "id": "0x55e6178feaf0-NE", + "left": "0x55e6178fe760-Expr", + "right": "0x55e6178fe680-Expr", "op": "NE" }, { - "id": "0x55ee11e23760-Expr", + "id": "0x55e6178fe760-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55ee11e23780-Parentheses" + "Parentheses": "0x55e6178fe780-Parentheses" }, { - "id": "0x55ee11e23780-Parentheses", - "Expr": "0x55ee11e235a0-Expr" + "id": "0x55e6178fe780-Parentheses", + "Expr": "0x55e6178fe5a0-Expr", + "op": "PARENTHESES" }, { - "id": "0x55ee11e235a0-Expr", + "id": "0x55e6178fe5a0-Expr", "variantKey": "Subtract", - "Subtract": "0x55ee11e235c0-Subtract" + "Subtract": "0x55e6178fe5c0-Subtract" }, { - "id": "0x55ee11e235c0-Subtract", - "left": "0x55ee11e23c90-Expr", - "right": "0x55ee11e23bb0-Expr", + "id": "0x55e6178fe5c0-Subtract", + "left": "0x55e6178fec90-Expr", + "right": "0x55e6178febb0-Expr", "op": "SUBTRACT" }, { - "id": "0x55ee11e23c90-Expr", + "id": "0x55e6178fec90-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e24730-Designator" + "Designator": "0x55e6178ff730-Designator" }, { - "id": "0x55ee11e24730-Designator", + "id": "0x55e6178ff730-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e24740-DataRef" + "DataRef": "0x55e6178ff740-DataRef" }, { - "id": "0x55ee11e24740-DataRef", + "id": "0x55e6178ff740-DataRef", "variantKey": "Name", - "Name": "0x55ee11e24740-Name" + "Name": "0x55e6178ff740-Name" }, { - "id": "0x55ee11e24740-Name", + "id": "0x55e6178ff740-Name", "source": "a2" }, { - "id": "0x55ee11e23bb0-Expr", + "id": "0x55e6178febb0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e24950-Designator" + "Designator": "0x55e6178ff950-Designator" }, { - "id": "0x55ee11e24950-Designator", + "id": "0x55e6178ff950-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e24960-DataRef" + "DataRef": "0x55e6178ff960-DataRef" }, { - "id": "0x55ee11e24960-DataRef", + "id": "0x55e6178ff960-DataRef", "variantKey": "Name", - "Name": "0x55ee11e24960-Name" + "Name": "0x55e6178ff960-Name" }, { - "id": "0x55ee11e24960-Name", + "id": "0x55e6178ff960-Name", "source": "b2" }, { - "id": "0x55ee11e23680-Expr", + "id": "0x55e6178fe680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e236a0-LiteralConstant" + "LiteralConstant": "0x55e6178fe6a0-LiteralConstant" }, { - "id": "0x55ee11e236a0-LiteralConstant", + "id": "0x55e6178fe6a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ee11e236a0-IntLiteralConstant" + "IntLiteralConstant": "0x55e6178fe6a0-IntLiteralConstant" }, { - "id": "0x55ee11e236a0-IntLiteralConstant", + "id": "0x55e6178fe6a0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ee11de0548-ExecutionPartConstruct" + "id": "0x55e6178bb548-ExecutionPartConstruct" }, { - "id": "0x55ee11e22210-ExecutionPartConstruct", + "id": "0x55e6178fd210-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e22210-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fd210-ExecutableConstruct" }, { - "id": "0x55ee11e22210-ExecutableConstruct", + "id": "0x55e6178fd210-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e22210-Statement" + "Statement": "0x55e6178fd210-Statement" }, { - "id": "0x55ee11e22210-Statement", - "statement": "0x55ee11e22220-ActionStmt", + "id": "0x55e6178fd210-Statement", + "statement": "0x55e6178fd220-ActionStmt", "source": "ok = .false." }, { - "id": "0x55ee11e22220-ActionStmt", + "id": "0x55e6178fd220-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e23eb0-AssignmentStmt" + "AssignmentStmt": "0x55e6178feeb0-AssignmentStmt" }, { - "id": "0x55ee11e23eb0-AssignmentStmt", - "Variable": "0x55ee11e23f90-Variable", - "Expr": "0x55ee11e23ec0-Expr" + "id": "0x55e6178feeb0-AssignmentStmt", + "Variable": "0x55e6178fef90-Variable", + "Expr": "0x55e6178feec0-Expr" }, { - "id": "0x55ee11e23f90-Variable", + "id": "0x55e6178fef90-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e217c0-Designator" + "Designator": "0x55e6178fc7c0-Designator" }, { - "id": "0x55ee11e217c0-Designator", + "id": "0x55e6178fc7c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e217d0-DataRef" + "DataRef": "0x55e6178fc7d0-DataRef" }, { - "id": "0x55ee11e217d0-DataRef", + "id": "0x55e6178fc7d0-DataRef", "variantKey": "Name", - "Name": "0x55ee11e217d0-Name" + "Name": "0x55e6178fc7d0-Name" }, { - "id": "0x55ee11e217d0-Name", + "id": "0x55e6178fc7d0-Name", "source": "ok" }, { - "id": "0x55ee11e23ec0-Expr", + "id": "0x55e6178feec0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e23ee0-LiteralConstant" + "LiteralConstant": "0x55e6178feee0-LiteralConstant" }, { - "id": "0x55ee11e23ee0-LiteralConstant", + "id": "0x55e6178feee0-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55ee11e23ee0-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55e6178feee0-LogicalLiteralConstant" }, { - "id": "0x55ee11e23ee0-LogicalLiteralConstant", + "id": "0x55e6178feee0-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x55ee11e26b90-ExecutionPartConstruct", + "id": "0x55e617901b90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e26b90-ExecutableConstruct" + "ExecutableConstruct": "0x55e617901b90-ExecutableConstruct" }, { - "id": "0x55ee11e26b90-ExecutableConstruct", + "id": "0x55e617901b90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e26b90-Statement" + "Statement": "0x55e617901b90-Statement" }, { - "id": "0x55ee11e26b90-Statement", - "statement": "0x55ee11e26ba0-ActionStmt", + "id": "0x55e617901b90-Statement", + "statement": "0x55e617901ba0-ActionStmt", "source": "print *, \"TEST1-NG =>\", a2 - b2" }, { - "id": "0x55ee11e26ba0-ActionStmt", + "id": "0x55e617901ba0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ee11e26a80-PrintStmt" + "PrintStmt": "0x55e617901a80-PrintStmt" }, { - "id": "0x55ee11e26a80-PrintStmt", - "Format": "0x55ee11e26a98-Format", + "id": "0x55e617901a80-PrintStmt", + "Format": "0x55e617901a98-Format", "OutputItem": [ - "0x55ee11e269a0-OutputItem", - "0x55ee11e268b0-OutputItem" + "0x55e6179019a0-OutputItem", + "0x55e6179018b0-OutputItem" ] }, { - "id": "0x55ee11e26a98-Format", + "id": "0x55e617901a98-Format", "variantKey": "Star", - "Star": "0x55ee11e26a98-Star" + "Star": "0x55e617901a98-Star" }, { - "id": "0x55ee11e26a98-Star" + "id": "0x55e617901a98-Star" }, { - "id": "0x55ee11e269a0-OutputItem", + "id": "0x55e6179019a0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ee11e269a0-Expr" + "Expr": "0x55e6179019a0-Expr" }, { - "id": "0x55ee11e269a0-Expr", + "id": "0x55e6179019a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e269c0-LiteralConstant" + "LiteralConstant": "0x55e6179019c0-LiteralConstant" }, { - "id": "0x55ee11e269c0-LiteralConstant", + "id": "0x55e6179019c0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ee11e269c0-CharLiteralConstant" + "CharLiteralConstant": "0x55e6179019c0-CharLiteralConstant" }, { - "id": "0x55ee11e269c0-CharLiteralConstant", + "id": "0x55e6179019c0-CharLiteralConstant", "string": "TEST1-NG =>" }, { - "id": "0x55ee11e268b0-OutputItem", + "id": "0x55e6179018b0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ee11e268b0-Expr" + "Expr": "0x55e6179018b0-Expr" }, { - "id": "0x55ee11e268b0-Expr", + "id": "0x55e6179018b0-Expr", "variantKey": "Subtract", - "Subtract": "0x55ee11e268d0-Subtract" + "Subtract": "0x55e6179018d0-Subtract" }, { - "id": "0x55ee11e268d0-Subtract", - "left": "0x55ee11e267c0-Expr", - "right": "0x55ee11e266e0-Expr", + "id": "0x55e6179018d0-Subtract", + "left": "0x55e6179017c0-Expr", + "right": "0x55e6179016e0-Expr", "op": "SUBTRACT" }, { - "id": "0x55ee11e267c0-Expr", + "id": "0x55e6179017c0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e23d70-Designator" + "Designator": "0x55e6178fed70-Designator" }, { - "id": "0x55ee11e23d70-Designator", + "id": "0x55e6178fed70-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e23d80-DataRef" + "DataRef": "0x55e6178fed80-DataRef" }, { - "id": "0x55ee11e23d80-DataRef", + "id": "0x55e6178fed80-DataRef", "variantKey": "Name", - "Name": "0x55ee11e23d80-Name" + "Name": "0x55e6178fed80-Name" }, { - "id": "0x55ee11e23d80-Name", + "id": "0x55e6178fed80-Name", "source": "a2" }, { - "id": "0x55ee11e266e0-Expr", + "id": "0x55e6179016e0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e26680-Designator" + "Designator": "0x55e617901680-Designator" }, { - "id": "0x55ee11e26680-Designator", + "id": "0x55e617901680-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e26690-DataRef" + "DataRef": "0x55e617901690-DataRef" }, { - "id": "0x55ee11e26690-DataRef", + "id": "0x55e617901690-DataRef", "variantKey": "Name", - "Name": "0x55ee11e26690-Name" + "Name": "0x55e617901690-Name" }, { - "id": "0x55ee11e26690-Name", + "id": "0x55e617901690-Name", "source": "b2" }, { - "id": "0x55ee11de0490-Statement", - "statement": "0x55ee11de04a0-EndIfStmt", + "id": "0x55e6178bb490-Statement", + "statement": "0x55e6178bb4a0-EndIfStmt", "source": "endif" }, { - "id": "0x55ee11de04a0-EndIfStmt" + "id": "0x55e6178bb4a0-EndIfStmt" }, { - "id": "0x55ee11e238c0-ExecutionPartConstruct", + "id": "0x55e6178fe8c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e238c0-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fe8c0-ExecutableConstruct" }, { - "id": "0x55ee11e238c0-ExecutableConstruct", + "id": "0x55e6178fe8c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e238c0-Statement" + "Statement": "0x55e6178fe8c0-Statement" }, { - "id": "0x55ee11e238c0-Statement", - "statement": "0x55ee11e238d0-ActionStmt", + "id": "0x55e6178fe8c0-Statement", + "statement": "0x55e6178fe8d0-ActionStmt", "source": "a1 = -1" }, { - "id": "0x55ee11e238d0-ActionStmt", + "id": "0x55e6178fe8d0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e26cc0-AssignmentStmt" + "AssignmentStmt": "0x55e617901cc0-AssignmentStmt" }, { - "id": "0x55ee11e26cc0-AssignmentStmt", - "Variable": "0x55ee11e26da0-Variable", - "Expr": "0x55ee11e26cd0-Expr" + "id": "0x55e617901cc0-AssignmentStmt", + "Variable": "0x55e617901da0-Variable", + "Expr": "0x55e617901cd0-Expr" }, { - "id": "0x55ee11e26da0-Variable", + "id": "0x55e617901da0-Variable", "variantKey": "Designator", - "Designator": "0x55ee11df6af0-Designator" + "Designator": "0x55e6178d1af0-Designator" }, { - "id": "0x55ee11df6af0-Designator", + "id": "0x55e6178d1af0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11df6b00-DataRef" + "DataRef": "0x55e6178d1b00-DataRef" }, { - "id": "0x55ee11df6b00-DataRef", + "id": "0x55e6178d1b00-DataRef", "variantKey": "Name", - "Name": "0x55ee11df6b00-Name" + "Name": "0x55e6178d1b00-Name" }, { - "id": "0x55ee11df6b00-Name", + "id": "0x55e6178d1b00-Name", "source": "a1" }, { - "id": "0x55ee11e26cd0-Expr", + "id": "0x55e617901cd0-Expr", "variantKey": "Negate", - "Negate": "0x55ee11e26cf0-Negate" + "Negate": "0x55e617901cf0-Negate" }, { - "id": "0x55ee11e26cf0-Negate", - "Expr": "0x55ee11e26be0-Expr" + "id": "0x55e617901cf0-Negate", + "Expr": "0x55e617901be0-Expr", + "op": "NEGATE" }, { - "id": "0x55ee11e26be0-Expr", + "id": "0x55e617901be0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e26c00-LiteralConstant" + "LiteralConstant": "0x55e617901c00-LiteralConstant" }, { - "id": "0x55ee11e26c00-LiteralConstant", + "id": "0x55e617901c00-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ee11e26c00-IntLiteralConstant" + "IntLiteralConstant": "0x55e617901c00-IntLiteralConstant" }, { - "id": "0x55ee11e26c00-IntLiteralConstant", + "id": "0x55e617901c00-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55ee11e234e0-ExecutionPartConstruct", + "id": "0x55e6178fe4e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e234e0-ExecutableConstruct" + "ExecutableConstruct": "0x55e6178fe4e0-ExecutableConstruct" }, { - "id": "0x55ee11e234e0-ExecutableConstruct", + "id": "0x55e6178fe4e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e234e0-Statement" + "Statement": "0x55e6178fe4e0-Statement" }, { - "id": "0x55ee11e234e0-Statement", - "statement": "0x55ee11e234f0-ActionStmt", + "id": "0x55e6178fe4e0-Statement", + "statement": "0x55e6178fe4f0-ActionStmt", "source": "b1 = -1.1" }, { - "id": "0x55ee11e234f0-ActionStmt", + "id": "0x55e6178fe4f0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e26eb0-AssignmentStmt" + "AssignmentStmt": "0x55e617901eb0-AssignmentStmt" }, { - "id": "0x55ee11e26eb0-AssignmentStmt", - "Variable": "0x55ee11e26f90-Variable", - "Expr": "0x55ee11e26ec0-Expr" + "id": "0x55e617901eb0-AssignmentStmt", + "Variable": "0x55e617901f90-Variable", + "Expr": "0x55e617901ec0-Expr" }, { - "id": "0x55ee11e26f90-Variable", + "id": "0x55e617901f90-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e232b0-Designator" + "Designator": "0x55e6178fe2b0-Designator" }, { - "id": "0x55ee11e232b0-Designator", + "id": "0x55e6178fe2b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e232c0-DataRef" + "DataRef": "0x55e6178fe2c0-DataRef" }, { - "id": "0x55ee11e232c0-DataRef", + "id": "0x55e6178fe2c0-DataRef", "variantKey": "Name", - "Name": "0x55ee11e232c0-Name" + "Name": "0x55e6178fe2c0-Name" }, { - "id": "0x55ee11e232c0-Name", + "id": "0x55e6178fe2c0-Name", "source": "b1" }, { - "id": "0x55ee11e26ec0-Expr", + "id": "0x55e617901ec0-Expr", "variantKey": "Negate", - "Negate": "0x55ee11e26ee0-Negate" + "Negate": "0x55e617901ee0-Negate" }, { - "id": "0x55ee11e26ee0-Negate", - "Expr": "0x55ee11e26dd0-Expr" + "id": "0x55e617901ee0-Negate", + "Expr": "0x55e617901dd0-Expr", + "op": "NEGATE" }, { - "id": "0x55ee11e26dd0-Expr", + "id": "0x55e617901dd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e26df0-LiteralConstant" + "LiteralConstant": "0x55e617901df0-LiteralConstant" }, { - "id": "0x55ee11e26df0-LiteralConstant", + "id": "0x55e617901df0-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55ee11e26df0-RealLiteralConstant" + "RealLiteralConstant": "0x55e617901df0-RealLiteralConstant" }, { - "id": "0x55ee11e26df0-RealLiteralConstant", - "real": "0x55ee11e26df0-Real" + "id": "0x55e617901df0-RealLiteralConstant", + "real": "0x55e617901df0-Real" }, { - "id": "0x55ee11e26df0-Real", + "id": "0x55e617901df0-Real", "source": "1.1" }, { - "id": "0x55ee11e27200-ExecutionPartConstruct", + "id": "0x55e617902200-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e27200-ExecutableConstruct" + "ExecutableConstruct": "0x55e617902200-ExecutableConstruct" }, { - "id": "0x55ee11e27200-ExecutableConstruct", + "id": "0x55e617902200-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e27200-Statement" + "Statement": "0x55e617902200-Statement" }, { - "id": "0x55ee11e27200-Statement", - "statement": "0x55ee11e27210-ActionStmt", + "id": "0x55e617902200-Statement", + "statement": "0x55e617902210-ActionStmt", "source": "a2 = b1" }, { - "id": "0x55ee11e27210-ActionStmt", + "id": "0x55e617902210-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e270e0-AssignmentStmt" + "AssignmentStmt": "0x55e6179020e0-AssignmentStmt" }, { - "id": "0x55ee11e270e0-AssignmentStmt", - "Variable": "0x55ee11e271c0-Variable", - "Expr": "0x55ee11e270f0-Expr" + "id": "0x55e6179020e0-AssignmentStmt", + "Variable": "0x55e6179021c0-Variable", + "Expr": "0x55e6179020f0-Expr" }, { - "id": "0x55ee11e271c0-Variable", + "id": "0x55e6179021c0-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e26620-Designator" + "Designator": "0x55e617901620-Designator" }, { - "id": "0x55ee11e26620-Designator", + "id": "0x55e617901620-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e26630-DataRef" + "DataRef": "0x55e617901630-DataRef" }, { - "id": "0x55ee11e26630-DataRef", + "id": "0x55e617901630-DataRef", "variantKey": "Name", - "Name": "0x55ee11e26630-Name" + "Name": "0x55e617901630-Name" }, { - "id": "0x55ee11e26630-Name", + "id": "0x55e617901630-Name", "source": "a2" }, { - "id": "0x55ee11e270f0-Expr", + "id": "0x55e6179020f0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e27080-Designator" + "Designator": "0x55e617902080-Designator" }, { - "id": "0x55ee11e27080-Designator", + "id": "0x55e617902080-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e27090-DataRef" + "DataRef": "0x55e617902090-DataRef" }, { - "id": "0x55ee11e27090-DataRef", + "id": "0x55e617902090-DataRef", "variantKey": "Name", - "Name": "0x55ee11e27090-Name" + "Name": "0x55e617902090-Name" }, { - "id": "0x55ee11e27090-Name", + "id": "0x55e617902090-Name", "source": "b1" }, { - "id": "0x55ee11e27430-ExecutionPartConstruct", + "id": "0x55e617902430-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e27430-ExecutableConstruct" + "ExecutableConstruct": "0x55e617902430-ExecutableConstruct" }, { - "id": "0x55ee11e27430-ExecutableConstruct", + "id": "0x55e617902430-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e27430-Statement" + "Statement": "0x55e617902430-Statement" }, { - "id": "0x55ee11e27430-Statement", - "statement": "0x55ee11e27440-ActionStmt", + "id": "0x55e617902430-Statement", + "statement": "0x55e617902440-ActionStmt", "source": "b2 = a1" }, { - "id": "0x55ee11e27440-ActionStmt", + "id": "0x55e617902440-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e27310-AssignmentStmt" + "AssignmentStmt": "0x55e617902310-AssignmentStmt" }, { - "id": "0x55ee11e27310-AssignmentStmt", - "Variable": "0x55ee11e273f0-Variable", - "Expr": "0x55ee11e27320-Expr" + "id": "0x55e617902310-AssignmentStmt", + "Variable": "0x55e6179023f0-Variable", + "Expr": "0x55e617902320-Expr" }, { - "id": "0x55ee11e273f0-Variable", + "id": "0x55e6179023f0-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e26fc0-Designator" + "Designator": "0x55e617901fc0-Designator" }, { - "id": "0x55ee11e26fc0-Designator", + "id": "0x55e617901fc0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e26fd0-DataRef" + "DataRef": "0x55e617901fd0-DataRef" }, { - "id": "0x55ee11e26fd0-DataRef", + "id": "0x55e617901fd0-DataRef", "variantKey": "Name", - "Name": "0x55ee11e26fd0-Name" + "Name": "0x55e617901fd0-Name" }, { - "id": "0x55ee11e26fd0-Name", + "id": "0x55e617901fd0-Name", "source": "b2" }, { - "id": "0x55ee11e27320-Expr", + "id": "0x55e617902320-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e272b0-Designator" + "Designator": "0x55e6179022b0-Designator" }, { - "id": "0x55ee11e272b0-Designator", + "id": "0x55e6179022b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e272c0-DataRef" + "DataRef": "0x55e6179022c0-DataRef" }, { - "id": "0x55ee11e272c0-DataRef", + "id": "0x55e6179022c0-DataRef", "variantKey": "Name", - "Name": "0x55ee11e272c0-Name" + "Name": "0x55e6179022c0-Name" }, { - "id": "0x55ee11e272c0-Name", + "id": "0x55e6179022c0-Name", "source": "a1" }, { - "id": "0x55ee11e274f0-ExecutionPartConstruct", + "id": "0x55e6179024f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e274f0-ExecutableConstruct" + "ExecutableConstruct": "0x55e6179024f0-ExecutableConstruct" }, { - "id": "0x55ee11e274f0-ExecutableConstruct", + "id": "0x55e6179024f0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55ee11e28390-IfConstruct" + "IfConstruct": "0x55e617903390-IfConstruct" }, { - "id": "0x55ee11e28390-IfConstruct", - "Statement": "0x55ee11e28460-Statement", + "id": "0x55e617903390-IfConstruct", + "Statement": "0x55e617903460-Statement", "ExecutionPartConstruct": [ - "0x55ee11e27260-ExecutionPartConstruct", - "0x55ee11e28340-ExecutionPartConstruct" + "0x55e617902260-ExecutionPartConstruct", + "0x55e617903340-ExecutionPartConstruct" ], - "Statement": "0x55ee11e28390-Statement" + "Statement": "0x55e617903390-Statement" }, { - "id": "0x55ee11e28460-Statement", - "statement": "0x55ee11e28470-IfThenStmt", + "id": "0x55e617903460-Statement", + "statement": "0x55e617903470-IfThenStmt", "source": "if((a2 - b2) .ne. 0) then" }, { - "id": "0x55ee11e28470-IfThenStmt", - "Expr": "0x55ee11e27900-Expr" + "id": "0x55e617903470-IfThenStmt", + "Expr": "0x55e617902900-Expr" }, { - "id": "0x55ee11e27900-Expr", + "id": "0x55e617902900-Expr", "variantKey": "NE", - "NE": "0x55ee11e27920-NE" + "NE": "0x55e617902920-NE" }, { - "id": "0x55ee11e27920-NE", - "left": "0x55ee11e277c0-Expr", - "right": "0x55ee11e276e0-Expr", + "id": "0x55e617902920-NE", + "left": "0x55e6179027c0-Expr", + "right": "0x55e6179026e0-Expr", "op": "NE" }, { - "id": "0x55ee11e277c0-Expr", + "id": "0x55e6179027c0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55ee11e277e0-Parentheses" + "Parentheses": "0x55e6179027e0-Parentheses" }, { - "id": "0x55ee11e277e0-Parentheses", - "Expr": "0x55ee11e27600-Expr" + "id": "0x55e6179027e0-Parentheses", + "Expr": "0x55e617902600-Expr", + "op": "PARENTHESES" }, { - "id": "0x55ee11e27600-Expr", + "id": "0x55e617902600-Expr", "variantKey": "Subtract", - "Subtract": "0x55ee11e27620-Subtract" + "Subtract": "0x55e617902620-Subtract" }, { - "id": "0x55ee11e27620-Subtract", - "left": "0x55ee11e27ac0-Expr", - "right": "0x55ee11e279e0-Expr", + "id": "0x55e617902620-Subtract", + "left": "0x55e617902ac0-Expr", + "right": "0x55e6179029e0-Expr", "op": "SUBTRACT" }, { - "id": "0x55ee11e27ac0-Expr", + "id": "0x55e617902ac0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e27d10-Designator" + "Designator": "0x55e617902d10-Designator" }, { - "id": "0x55ee11e27d10-Designator", + "id": "0x55e617902d10-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e27d20-DataRef" + "DataRef": "0x55e617902d20-DataRef" }, { - "id": "0x55ee11e27d20-DataRef", + "id": "0x55e617902d20-DataRef", "variantKey": "Name", - "Name": "0x55ee11e27d20-Name" + "Name": "0x55e617902d20-Name" }, { - "id": "0x55ee11e27d20-Name", + "id": "0x55e617902d20-Name", "source": "a2" }, { - "id": "0x55ee11e279e0-Expr", + "id": "0x55e6179029e0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e27d70-Designator" + "Designator": "0x55e617902d70-Designator" }, { - "id": "0x55ee11e27d70-Designator", + "id": "0x55e617902d70-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e27d80-DataRef" + "DataRef": "0x55e617902d80-DataRef" }, { - "id": "0x55ee11e27d80-DataRef", + "id": "0x55e617902d80-DataRef", "variantKey": "Name", - "Name": "0x55ee11e27d80-Name" + "Name": "0x55e617902d80-Name" }, { - "id": "0x55ee11e27d80-Name", + "id": "0x55e617902d80-Name", "source": "b2" }, { - "id": "0x55ee11e276e0-Expr", + "id": "0x55e6179026e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e27700-LiteralConstant" + "LiteralConstant": "0x55e617902700-LiteralConstant" }, { - "id": "0x55ee11e27700-LiteralConstant", + "id": "0x55e617902700-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55ee11e27700-IntLiteralConstant" + "IntLiteralConstant": "0x55e617902700-IntLiteralConstant" }, { - "id": "0x55ee11e27700-IntLiteralConstant", + "id": "0x55e617902700-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55ee11e28448-ExecutionPartConstruct" + "id": "0x55e617903448-ExecutionPartConstruct" }, { - "id": "0x55ee11e27260-ExecutionPartConstruct", + "id": "0x55e617902260-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e27260-ExecutableConstruct" + "ExecutableConstruct": "0x55e617902260-ExecutableConstruct" }, { - "id": "0x55ee11e27260-ExecutableConstruct", + "id": "0x55e617902260-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e27260-Statement" + "Statement": "0x55e617902260-Statement" }, { - "id": "0x55ee11e27260-Statement", - "statement": "0x55ee11e27270-ActionStmt", + "id": "0x55e617902260-Statement", + "statement": "0x55e617902270-ActionStmt", "source": "ok = .false." }, { - "id": "0x55ee11e27270-ActionStmt", + "id": "0x55e617902270-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55ee11e27c00-AssignmentStmt" + "AssignmentStmt": "0x55e617902c00-AssignmentStmt" }, { - "id": "0x55ee11e27c00-AssignmentStmt", - "Variable": "0x55ee11e27ce0-Variable", - "Expr": "0x55ee11e27c10-Expr" + "id": "0x55e617902c00-AssignmentStmt", + "Variable": "0x55e617902ce0-Variable", + "Expr": "0x55e617902c10-Expr" }, { - "id": "0x55ee11e27ce0-Variable", + "id": "0x55e617902ce0-Variable", "variantKey": "Designator", - "Designator": "0x55ee11e23180-Designator" + "Designator": "0x55e6178fe180-Designator" }, { - "id": "0x55ee11e23180-Designator", + "id": "0x55e6178fe180-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e23190-DataRef" + "DataRef": "0x55e6178fe190-DataRef" }, { - "id": "0x55ee11e23190-DataRef", + "id": "0x55e6178fe190-DataRef", "variantKey": "Name", - "Name": "0x55ee11e23190-Name" + "Name": "0x55e6178fe190-Name" }, { - "id": "0x55ee11e23190-Name", + "id": "0x55e6178fe190-Name", "source": "ok" }, { - "id": "0x55ee11e27c10-Expr", + "id": "0x55e617902c10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e27c30-LiteralConstant" + "LiteralConstant": "0x55e617902c30-LiteralConstant" }, { - "id": "0x55ee11e27c30-LiteralConstant", + "id": "0x55e617902c30-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55ee11e27c30-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55e617902c30-LogicalLiteralConstant" }, { - "id": "0x55ee11e27c30-LogicalLiteralConstant", + "id": "0x55e617902c30-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x55ee11e28340-ExecutionPartConstruct", + "id": "0x55e617903340-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e28340-ExecutableConstruct" + "ExecutableConstruct": "0x55e617903340-ExecutableConstruct" }, { - "id": "0x55ee11e28340-ExecutableConstruct", + "id": "0x55e617903340-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e28340-Statement" + "Statement": "0x55e617903340-Statement" }, { - "id": "0x55ee11e28340-Statement", - "statement": "0x55ee11e28350-ActionStmt", + "id": "0x55e617903340-Statement", + "statement": "0x55e617903350-ActionStmt", "source": "print *, \"TEST2-NG =>\", a2 - b2" }, { - "id": "0x55ee11e28350-ActionStmt", + "id": "0x55e617903350-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ee11e28230-PrintStmt" + "PrintStmt": "0x55e617903230-PrintStmt" }, { - "id": "0x55ee11e28230-PrintStmt", - "Format": "0x55ee11e28248-Format", + "id": "0x55e617903230-PrintStmt", + "Format": "0x55e617903248-Format", "OutputItem": [ - "0x55ee11e28150-OutputItem", - "0x55ee11e28060-OutputItem" + "0x55e617903150-OutputItem", + "0x55e617903060-OutputItem" ] }, { - "id": "0x55ee11e28248-Format", + "id": "0x55e617903248-Format", "variantKey": "Star", - "Star": "0x55ee11e28248-Star" + "Star": "0x55e617903248-Star" }, { - "id": "0x55ee11e28248-Star" + "id": "0x55e617903248-Star" }, { - "id": "0x55ee11e28150-OutputItem", + "id": "0x55e617903150-OutputItem", "variantKey": "Expr", - "Expr": "0x55ee11e28150-Expr" + "Expr": "0x55e617903150-Expr" }, { - "id": "0x55ee11e28150-Expr", + "id": "0x55e617903150-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e28170-LiteralConstant" + "LiteralConstant": "0x55e617903170-LiteralConstant" }, { - "id": "0x55ee11e28170-LiteralConstant", + "id": "0x55e617903170-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ee11e28170-CharLiteralConstant" + "CharLiteralConstant": "0x55e617903170-CharLiteralConstant" }, { - "id": "0x55ee11e28170-CharLiteralConstant", + "id": "0x55e617903170-CharLiteralConstant", "string": "TEST2-NG =>" }, { - "id": "0x55ee11e28060-OutputItem", + "id": "0x55e617903060-OutputItem", "variantKey": "Expr", - "Expr": "0x55ee11e28060-Expr" + "Expr": "0x55e617903060-Expr" }, { - "id": "0x55ee11e28060-Expr", + "id": "0x55e617903060-Expr", "variantKey": "Subtract", - "Subtract": "0x55ee11e28080-Subtract" + "Subtract": "0x55e617903080-Subtract" }, { - "id": "0x55ee11e28080-Subtract", - "left": "0x55ee11e27f70-Expr", - "right": "0x55ee11e27e90-Expr", + "id": "0x55e617903080-Subtract", + "left": "0x55e617902f70-Expr", + "right": "0x55e617902e90-Expr", "op": "SUBTRACT" }, { - "id": "0x55ee11e27f70-Expr", + "id": "0x55e617902f70-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e27ba0-Designator" + "Designator": "0x55e617902ba0-Designator" }, { - "id": "0x55ee11e27ba0-Designator", + "id": "0x55e617902ba0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e27bb0-DataRef" + "DataRef": "0x55e617902bb0-DataRef" }, { - "id": "0x55ee11e27bb0-DataRef", + "id": "0x55e617902bb0-DataRef", "variantKey": "Name", - "Name": "0x55ee11e27bb0-Name" + "Name": "0x55e617902bb0-Name" }, { - "id": "0x55ee11e27bb0-Name", + "id": "0x55e617902bb0-Name", "source": "a2" }, { - "id": "0x55ee11e27e90-Expr", + "id": "0x55e617902e90-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e27e30-Designator" + "Designator": "0x55e617902e30-Designator" }, { - "id": "0x55ee11e27e30-Designator", + "id": "0x55e617902e30-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e27e40-DataRef" + "DataRef": "0x55e617902e40-DataRef" }, { - "id": "0x55ee11e27e40-DataRef", + "id": "0x55e617902e40-DataRef", "variantKey": "Name", - "Name": "0x55ee11e27e40-Name" + "Name": "0x55e617902e40-Name" }, { - "id": "0x55ee11e27e40-Name", + "id": "0x55e617902e40-Name", "source": "b2" }, { - "id": "0x55ee11e28390-Statement", - "statement": "0x55ee11e283a0-EndIfStmt", + "id": "0x55e617903390-Statement", + "statement": "0x55e6179033a0-EndIfStmt", "source": "endif" }, { - "id": "0x55ee11e283a0-EndIfStmt" + "id": "0x55e6179033a0-EndIfStmt" }, { - "id": "0x55ee11e27030-ExecutionPartConstruct", + "id": "0x55e617902030-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e27030-ExecutableConstruct" + "ExecutableConstruct": "0x55e617902030-ExecutableConstruct" }, { - "id": "0x55ee11e27030-ExecutableConstruct", + "id": "0x55e617902030-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55ee11e28890-IfConstruct" + "IfConstruct": "0x55e617903890-IfConstruct" }, { - "id": "0x55ee11e28890-IfConstruct", - "Statement": "0x55ee11e28960-Statement", + "id": "0x55e617903890-IfConstruct", + "Statement": "0x55e617903960-Statement", "ExecutionPartConstruct": [ - "0x55ee11e27550-ExecutionPartConstruct" + "0x55e617902550-ExecutionPartConstruct" ], - "Statement": "0x55ee11e28890-Statement" + "Statement": "0x55e617903890-Statement" }, { - "id": "0x55ee11e28960-Statement", - "statement": "0x55ee11e28970-IfThenStmt", + "id": "0x55e617903960-Statement", + "statement": "0x55e617903970-IfThenStmt", "source": "if(ok) then" }, { - "id": "0x55ee11e28970-IfThenStmt", - "Expr": "0x55ee11e284b0-Expr" + "id": "0x55e617903970-IfThenStmt", + "Expr": "0x55e6179034b0-Expr" }, { - "id": "0x55ee11e284b0-Expr", + "id": "0x55e6179034b0-Expr", "variantKey": "Designator", - "Designator": "0x55ee11e225d0-Designator" + "Designator": "0x55e6178fd5d0-Designator" }, { - "id": "0x55ee11e225d0-Designator", + "id": "0x55e6178fd5d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55ee11e225e0-DataRef" + "DataRef": "0x55e6178fd5e0-DataRef" }, { - "id": "0x55ee11e225e0-DataRef", + "id": "0x55e6178fd5e0-DataRef", "variantKey": "Name", - "Name": "0x55ee11e225e0-Name" + "Name": "0x55e6178fd5e0-Name" }, { - "id": "0x55ee11e225e0-Name", + "id": "0x55e6178fd5e0-Name", "source": "ok" }, { - "id": "0x55ee11e28948-ExecutionPartConstruct" + "id": "0x55e617903948-ExecutionPartConstruct" }, { - "id": "0x55ee11e27550-ExecutionPartConstruct", + "id": "0x55e617902550-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55ee11e27550-ExecutableConstruct" + "ExecutableConstruct": "0x55e617902550-ExecutableConstruct" }, { - "id": "0x55ee11e27550-ExecutableConstruct", + "id": "0x55e617902550-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55ee11e27550-Statement" + "Statement": "0x55e617902550-Statement" }, { - "id": "0x55ee11e27550-Statement", - "statement": "0x55ee11e27560-ActionStmt", + "id": "0x55e617902550-Statement", + "statement": "0x55e617902560-ActionStmt", "source": "print *, \"OK\"" }, { - "id": "0x55ee11e27560-ActionStmt", + "id": "0x55e617902560-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55ee11e28790-PrintStmt" + "PrintStmt": "0x55e617903790-PrintStmt" }, { - "id": "0x55ee11e28790-PrintStmt", - "Format": "0x55ee11e287a8-Format", + "id": "0x55e617903790-PrintStmt", + "Format": "0x55e6179037a8-Format", "OutputItem": [ - "0x55ee11e286b0-OutputItem" + "0x55e6179036b0-OutputItem" ] }, { - "id": "0x55ee11e287a8-Format", + "id": "0x55e6179037a8-Format", "variantKey": "Star", - "Star": "0x55ee11e287a8-Star" + "Star": "0x55e6179037a8-Star" }, { - "id": "0x55ee11e287a8-Star" + "id": "0x55e6179037a8-Star" }, { - "id": "0x55ee11e286b0-OutputItem", + "id": "0x55e6179036b0-OutputItem", "variantKey": "Expr", - "Expr": "0x55ee11e286b0-Expr" + "Expr": "0x55e6179036b0-Expr" }, { - "id": "0x55ee11e286b0-Expr", + "id": "0x55e6179036b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55ee11e286d0-LiteralConstant" + "LiteralConstant": "0x55e6179036d0-LiteralConstant" }, { - "id": "0x55ee11e286d0-LiteralConstant", + "id": "0x55e6179036d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55ee11e286d0-CharLiteralConstant" + "CharLiteralConstant": "0x55e6179036d0-CharLiteralConstant" }, { - "id": "0x55ee11e286d0-CharLiteralConstant", + "id": "0x55e6179036d0-CharLiteralConstant", "string": "OK" }, { - "id": "0x55ee11e28890-Statement", - "statement": "0x55ee11e288a0-EndIfStmt", + "id": "0x55e617903890-Statement", + "statement": "0x55e6179038a0-EndIfStmt", "source": "endif" }, { - "id": "0x55ee11e288a0-EndIfStmt" + "id": "0x55e6179038a0-EndIfStmt" }, { - "id": "0x55ee11e20a50-Statement", - "statement": "0x55ee11e20a60-EndProgramStmt", + "id": "0x55e6178fba50-Statement", + "statement": "0x55e6178fba60-EndProgramStmt", "source": "end" }, { - "id": "0x55ee11e20a60-EndProgramStmt" + "id": "0x55e6178fba60-EndProgramStmt" } ], "enums": { From 8d0fcb86f6c969d2edcabba87bf5afa2305f3d42 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 23 Apr 2026 15:54:14 +0100 Subject: [PATCH 016/132] Add kind information to real declaration --- .../fe/specs/fortran/parser/processors/TypeProcessors.java | 5 ++++- 1 file changed, 4 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 d91f604f..3ec501c9 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 @@ -51,6 +51,9 @@ public void characterType(CharacterType characterType) { } public void realType(RealType realType) { - + if (attributes(realType).has(FlangName.KIND_SELECTOR)) { + var kindSelector = getChild(realType, FlangName.KIND_SELECTOR); + realType.addChild(kindSelector); + } } } From aadb0c58d817af1eeb72693c875877727705f2fc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:04:27 +0100 Subject: [PATCH 017/132] Add unary operator tests --- .../fortran/parser/expr/not.expected.f90 | 3 + .../fortran/parser/expr/not.f90 | 3 + .../fortran/parser/expr/not.json | 449 ++++++++++++++++++ .../parser/expr/parentheses.expected.f90 | 3 + .../fortran/parser/expr/parentheses.f90 | 3 + .../fortran/parser/expr/parentheses.json | 449 ++++++++++++++++++ .../parser/expr/unary_plus.expected.f90 | 3 + .../fortran/parser/expr/unary_plus.f90 | 3 + .../fortran/parser/expr/unary_plus.json | 449 ++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 36 ++ 10 files changed, 1401 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/expr/not.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/not.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/not.json create mode 100644 FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/parentheses.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/parentheses.json create mode 100644 FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/unary_plus.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/unary_plus.json diff --git a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 new file mode 100644 index 00000000..581c1007 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 @@ -0,0 +1,3 @@ +PROGRAM not + logical :: a = .not. .true.; +END PROGRAM not \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/not.f90 b/FortranParser/resources-test/fortran/parser/expr/not.f90 new file mode 100644 index 00000000..9ad7356a --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/not.f90 @@ -0,0 +1,3 @@ +program not + logical :: a = .not. .true.; +end program not \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/not.json b/FortranParser/resources-test/fortran/parser/expr/not.json new file mode 100644 index 00000000..e163ff31 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/not.json @@ -0,0 +1,449 @@ +{ + "nodes": [ + { + "id": "0x55fbcdbf1cc0-Program", + "ProgramUnit": [ + "0x55fbcdc1a550-ProgramUnit" + ] + }, + { + "id": "0x55fbcdc1a550-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55fbcdc1d500-MainProgram" + }, + { + "id": "0x55fbcdc1d500-MainProgram", + "Statement": "0x55fbcdc1d648-Statement", + "SpecificationPart": "0x55fbcdc1d5a0-SpecificationPart", + "ExecutionPart": "0x55fbcdc1d588-ExecutionPart", + "Statement": "0x55fbcdc1d500-Statement" + }, + { + "id": "0x55fbcdc1d648-Statement", + "statement": "0x55fbcdc1d658-ProgramStmt", + "source": "program not" + }, + { + "id": "0x55fbcdc1d658-ProgramStmt", + "Name": "0x55fbcdc1d658-Name" + }, + { + "id": "0x55fbcdc1d658-Name", + "source": "not" + }, + { + "id": "0x55fbcdc1d5a0-SpecificationPart", + "ImplicitPart": "0x55fbcdc1d5b8-ImplicitPart", + "DeclarationConstruct": [ + "0x55fbcdbf8240-DeclarationConstruct" + ] + }, + { + "id": "0x55fbcdc1d5b8-ImplicitPart" + }, + { + "id": "0x55fbcdbf8240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55fbcdbf8240-SpecificationConstruct" + }, + { + "id": "0x55fbcdbf8240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55fbcdbf8240-Statement" + }, + { + "id": "0x55fbcdbf8240-Statement", + "statement": "0x55fbcdc1b470-TypeDeclarationStmt", + "source": "logical :: a = .not. .true." + }, + { + "id": "0x55fbcdc1b470-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fbcdc1b4a0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55fbcdc1be40-EntityDecl" + ] + }, + { + "id": "0x55fbcdc1b4a0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55fbcdc1b4a0-IntrinsicTypeSpec" + }, + { + "id": "0x55fbcdc1b4a0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55fbcdc1b4a0-Logical" + }, + { + "id": "0x55fbcdc1b4a0-Logical" + }, + { + "id": "0x55fbcdc1be40-EntityDecl", + "Name": "0x55fbcdc1bef8-Name", + "Initialization": "0x55fbcdc1be40-Initialization" + }, + { + "id": "0x55fbcdc1bef8-Name", + "source": "a" + }, + { + "id": "0x55fbcdc1be40-Initialization", + "variantKey": "Expr", + "Expr": "0x55fbcdc1bd50-Expr" + }, + { + "id": "0x55fbcdc1bd50-Expr", + "variantKey": "NOT", + "NOT": "0x55fbcdc1bd70-NOT" + }, + { + "id": "0x55fbcdc1bd70-NOT", + "Expr": "0x55fbcdbca0b0-Expr", + "op": "NOT" + }, + { + "id": "0x55fbcdbca0b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55fbcdbca0d0-LiteralConstant" + }, + { + "id": "0x55fbcdbca0d0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55fbcdbca0d0-LogicalLiteralConstant" + }, + { + "id": "0x55fbcdbca0d0-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x55fbcdc1d588-ExecutionPart" + }, + { + "id": "0x55fbcdc1d588-list" + }, + { + "id": "0x55fbcdc1d500-Statement", + "statement": "0x55fbcdc1d510-EndProgramStmt", + "source": "end program not" + }, + { + "id": "0x55fbcdc1d510-EndProgramStmt", + "Name": "0x55fbcdc1d510-Name" + }, + { + "id": "0x55fbcdc1d510-Name", + "source": "not" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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/resources-test/fortran/parser/expr/parentheses.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 new file mode 100644 index 00000000..adcc943a --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/parentheses.expected.f90 @@ -0,0 +1,3 @@ +PROGRAM parentheses + integer :: a = (10) +END PROGRAM parentheses \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/parentheses.f90 b/FortranParser/resources-test/fortran/parser/expr/parentheses.f90 new file mode 100644 index 00000000..1e373643 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/parentheses.f90 @@ -0,0 +1,3 @@ +program parentheses + integer :: a = (10) +end program parentheses \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/parentheses.json b/FortranParser/resources-test/fortran/parser/expr/parentheses.json new file mode 100644 index 00000000..f495e844 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/parentheses.json @@ -0,0 +1,449 @@ +{ + "nodes": [ + { + "id": "0x559600445cc0-Program", + "ProgramUnit": [ + "0x55960046fa40-ProgramUnit" + ] + }, + { + "id": "0x55960046fa40-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x559600471790-MainProgram" + }, + { + "id": "0x559600471790-MainProgram", + "Statement": "0x5596004718d8-Statement", + "SpecificationPart": "0x559600471830-SpecificationPart", + "ExecutionPart": "0x559600471818-ExecutionPart", + "Statement": "0x559600471790-Statement" + }, + { + "id": "0x5596004718d8-Statement", + "statement": "0x5596004718e8-ProgramStmt", + "source": "program parentheses" + }, + { + "id": "0x5596004718e8-ProgramStmt", + "Name": "0x5596004718e8-Name" + }, + { + "id": "0x5596004718e8-Name", + "source": "parentheses" + }, + { + "id": "0x559600471830-SpecificationPart", + "ImplicitPart": "0x559600471848-ImplicitPart", + "DeclarationConstruct": [ + "0x559600470420-DeclarationConstruct" + ] + }, + { + "id": "0x559600471848-ImplicitPart" + }, + { + "id": "0x559600470420-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x559600470420-SpecificationConstruct" + }, + { + "id": "0x559600470420-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x559600470420-Statement" + }, + { + "id": "0x559600470420-Statement", + "statement": "0x559600454240-TypeDeclarationStmt", + "source": "integer :: a =(10)" + }, + { + "id": "0x559600454240-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x559600454270-DeclarationTypeSpec", + "EntityDecl": [ + "0x559600470250-EntityDecl" + ] + }, + { + "id": "0x559600454270-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x559600454270-IntrinsicTypeSpec" + }, + { + "id": "0x559600454270-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x559600454270-IntegerTypeSpec" + }, + { + "id": "0x559600454270-IntegerTypeSpec" + }, + { + "id": "0x559600470250-EntityDecl", + "Name": "0x559600470308-Name", + "Initialization": "0x559600470250-Initialization" + }, + { + "id": "0x559600470308-Name", + "source": "a" + }, + { + "id": "0x559600470250-Initialization", + "variantKey": "Expr", + "Expr": "0x559600470160-Expr" + }, + { + "id": "0x559600470160-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x559600470180-Parentheses" + }, + { + "id": "0x559600470180-Parentheses", + "Expr": "0x559600470010-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x559600470010-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x559600470030-LiteralConstant" + }, + { + "id": "0x559600470030-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x559600470030-IntLiteralConstant" + }, + { + "id": "0x559600470030-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x559600471818-ExecutionPart" + }, + { + "id": "0x559600471818-list" + }, + { + "id": "0x559600471790-Statement", + "statement": "0x5596004717a0-EndProgramStmt", + "source": "end program parentheses" + }, + { + "id": "0x5596004717a0-EndProgramStmt", + "Name": "0x5596004717a0-Name" + }, + { + "id": "0x5596004717a0-Name", + "source": "parentheses" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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/resources-test/fortran/parser/expr/unary_plus.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 new file mode 100644 index 00000000..6ed53045 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 @@ -0,0 +1,3 @@ +PROGRAM unary_plus + integer :: a = +10; +end PROGRAM unary_plus \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/unary_plus.f90 b/FortranParser/resources-test/fortran/parser/expr/unary_plus.f90 new file mode 100644 index 00000000..847b9491 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/unary_plus.f90 @@ -0,0 +1,3 @@ +program unary_plus + integer :: a = +10; +end program unary_plus \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/unary_plus.json b/FortranParser/resources-test/fortran/parser/expr/unary_plus.json new file mode 100644 index 00000000..13d92834 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/unary_plus.json @@ -0,0 +1,449 @@ +{ + "nodes": [ + { + "id": "0x55b8036c5cc0-Program", + "ProgramUnit": [ + "0x55b8036ef910-ProgramUnit" + ] + }, + { + "id": "0x55b8036ef910-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55b8036f1610-MainProgram" + }, + { + "id": "0x55b8036f1610-MainProgram", + "Statement": "0x55b8036f1758-Statement", + "SpecificationPart": "0x55b8036f16b0-SpecificationPart", + "ExecutionPart": "0x55b8036f1698-ExecutionPart", + "Statement": "0x55b8036f1610-Statement" + }, + { + "id": "0x55b8036f1758-Statement", + "statement": "0x55b8036f1768-ProgramStmt", + "source": "program unary_plus" + }, + { + "id": "0x55b8036f1768-ProgramStmt", + "Name": "0x55b8036f1768-Name" + }, + { + "id": "0x55b8036f1768-Name", + "source": "unary_plus" + }, + { + "id": "0x55b8036f16b0-SpecificationPart", + "ImplicitPart": "0x55b8036f16c8-ImplicitPart", + "DeclarationConstruct": [ + "0x55b8036cc240-DeclarationConstruct" + ] + }, + { + "id": "0x55b8036f16c8-ImplicitPart" + }, + { + "id": "0x55b8036cc240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55b8036cc240-SpecificationConstruct" + }, + { + "id": "0x55b8036cc240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55b8036cc240-Statement" + }, + { + "id": "0x55b8036cc240-Statement", + "statement": "0x55b8036d4240-TypeDeclarationStmt", + "source": "integer :: a = +10" + }, + { + "id": "0x55b8036d4240-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55b8036d4270-DeclarationTypeSpec", + "EntityDecl": [ + "0x55b8036efef0-EntityDecl" + ] + }, + { + "id": "0x55b8036d4270-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55b8036d4270-IntrinsicTypeSpec" + }, + { + "id": "0x55b8036d4270-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55b8036d4270-IntegerTypeSpec" + }, + { + "id": "0x55b8036d4270-IntegerTypeSpec" + }, + { + "id": "0x55b8036efef0-EntityDecl", + "Name": "0x55b8036effa8-Name", + "Initialization": "0x55b8036efef0-Initialization" + }, + { + "id": "0x55b8036effa8-Name", + "source": "a" + }, + { + "id": "0x55b8036efef0-Initialization", + "variantKey": "Expr", + "Expr": "0x55b8036efe00-Expr" + }, + { + "id": "0x55b8036efe00-Expr", + "variantKey": "UnaryPlus", + "UnaryPlus": "0x55b8036efe20-UnaryPlus" + }, + { + "id": "0x55b8036efe20-UnaryPlus", + "Expr": "0x55b80369e040-Expr", + "op": "UNARY_PLUS" + }, + { + "id": "0x55b80369e040-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55b80369e060-LiteralConstant" + }, + { + "id": "0x55b80369e060-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55b80369e060-IntLiteralConstant" + }, + { + "id": "0x55b80369e060-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55b8036f1698-ExecutionPart" + }, + { + "id": "0x55b8036f1698-list" + }, + { + "id": "0x55b8036f1610-Statement", + "statement": "0x55b8036f1620-EndProgramStmt", + "source": "end program unary_plus" + }, + { + "id": "0x55b8036f1620-EndProgramStmt", + "Name": "0x55b8036f1620-Name" + }, + { + "id": "0x55b8036f1620-Name", + "source": "unary_plus" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 865043f6..94ea7b67 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -359,6 +359,42 @@ void testNegateNative() { } } + @Test + void testParenteses() { + testJson("expr/parentheses.json"); + } + + @Test + void testParentesesNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/parentheses.f90"); + } + } + + @Test + void testUnaryPlus() { + testJson("expr/unary_plus.json"); + } + + @Test + void testUnaryPlusNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/unary_plus.f90"); + } + } + + @Test + void testNot() { + testJson("expr/not.json"); + } + + @Test + void testNotNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/not.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From a0b5d19553071b2cc76bfe129de0977cbbf11a87 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:14:28 +0100 Subject: [PATCH 018/132] Add support for more unary operators --- .../specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java | 4 +++- FortranParser/resources-test/fortran/parser/expr/negate.f90 | 2 +- FortranParser/resources-test/fortran/parser/expr/not.f90 | 2 +- .../fortran/parser/expr/unary_plus.expected.f90 | 4 ++-- .../resources-test/fortran/parser/expr/unary_plus.f90 | 2 +- .../src/pt/up/fe/specs/fortran/parser/FlangName.java | 4 +++- .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 2 ++ 7 files changed, 13 insertions(+), 7 deletions(-) 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 8164a8e7..69d59c9d 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 @@ -3,7 +3,9 @@ import pt.up.fe.specs.util.providers.StringProvider; public enum UnaryOperatorKind implements StringProvider { - NEGATE("-"); + NEGATE("-"), + UNARY_PLUS("+"), + NOT(".not."); UnaryOperatorKind(String opString) { this.opString = opString; diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.f90 b/FortranParser/resources-test/fortran/parser/expr/negate.f90 index 5c5ae9a4..902f68bb 100644 --- a/FortranParser/resources-test/fortran/parser/expr/negate.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/negate.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.f90 b/FortranParser/resources-test/fortran/parser/expr/not.f90 index 9ad7356a..c9c39fe0 100644 --- a/FortranParser/resources-test/fortran/parser/expr/not.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/not.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/unary_plus.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 index 6ed53045..1df1d95a 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; -end PROGRAM unary_plus \ No newline at end of file + integer :: a = +10 +END PROGRAM unary_plus \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/unary_plus.f90 b/FortranParser/resources-test/fortran/parser/expr/unary_plus.f90 index 847b9491..6f01e1b4 100644 --- a/FortranParser/resources-test/fortran/parser/expr/unary_plus.f90 +++ b/FortranParser/resources-test/fortran/parser/expr/unary_plus.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/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 2f50b871..2144fe5f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -81,8 +81,10 @@ public enum FlangName implements StringProvider { LOGICAL_LITERAL_CONSTANT, REAL_LITERAL_CONSTANT, STAR, - NEGATE, PARENTHESES, + UNARY_PLUS, + NEGATE, + NOT, ADD, SUBTRACT, MULTIPLY, 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 26a132d5..482729bd 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -85,7 +85,9 @@ public class FlangToClass { 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); From 210236017f5c49a87d037af0a90d9dd185735359 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:16:21 +0100 Subject: [PATCH 019/132] Fix support for NOT operator --- .../specs/fortran/ast/nodes/expr/enums/UnaryOperatorKind.java | 2 +- .../resources-test/fortran/parser/expr/not.expected.f90 | 2 +- FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 69d59c9d..922111bb 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,7 +5,7 @@ public enum UnaryOperatorKind implements StringProvider { NEGATE("-"), UNARY_PLUS("+"), - NOT(".not."); + NOT(".not. "); UnaryOperatorKind(String opString) { this.opString = opString; diff --git a/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/not.expected.f90 index 581c1007..96389911 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/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 2144fe5f..7d71b4a8 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -84,7 +84,7 @@ public enum FlangName implements StringProvider { PARENTHESES, UNARY_PLUS, NEGATE, - NOT, + NOT("NOT"), ADD, SUBTRACT, MULTIPLY, From 84ca3f6910ceff5cd32a35185686be9b7d879619 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:18:30 +0100 Subject: [PATCH 020/132] Add new Fujitsu test case --- .../fujitsu/0000/0000_0002.expected.f90 | 31 + .../fortran/parser/fujitsu/0000/0000_0002.f90 | 31 + .../parser/fujitsu/0000/0000_0002.json | 1801 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1875 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json 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 new file mode 100644 index 00000000..958deb9f --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.expected.f90 @@ -0,0 +1,31 @@ +integer*1 a1, a2 +real*4 b1, b2 +logical ok + +ok = .true. + +b1 = 1.1 +a1 = 1 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST1-NG =>",a2-b2 +endif + +b1 = -1.1 +a1 = -1 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST2-NG =>",a2-b2 +endif + +if (ok) then + print *,"OK" +endif + +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.f90 new file mode 100644 index 00000000..8e200279 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.f90 @@ -0,0 +1,31 @@ +integer*1 :: a1, a2 +real*4 :: b1, b2 +logical :: ok + +ok = .true. + +b1 = 1.1 +a1 = 1 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) .ne. 0) THEN + ok = .false. + PRINT *, "TEST1-NG =>", a2 - b2 +END IF + +b1 = -1.1 +a1 = -1 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) .ne. 0) THEN + ok = .false. + PRINT *, "TEST2-NG =>", a2 - b2 +END IF + +IF (ok) THEN + PRINT *, "OK" +END IF + +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json new file mode 100644 index 00000000..056682ef --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json @@ -0,0 +1,1801 @@ +{ + "nodes": [ + { + "id": "0x55cb9d0cacc0-Program", + "ProgramUnit": [ + "0x55cb9d0f3660-ProgramUnit" + ] + }, + { + "id": "0x55cb9d0f3660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55cb9d0fca20-MainProgram" + }, + { + "id": "0x55cb9d0fca20-MainProgram", + "SpecificationPart": "0x55cb9d0fcac0-SpecificationPart", + "ExecutionPart": "0x55cb9d0fcaa8-ExecutionPart", + "Statement": "0x55cb9d0fca20-Statement" + }, + { + "id": "0x55cb9d0fcac0-SpecificationPart", + "ImplicitPart": "0x55cb9d0fcad8-ImplicitPart", + "DeclarationConstruct": [ + "0x55cb9d0d15b0-DeclarationConstruct", + "0x55cb9d0d1240-DeclarationConstruct", + "0x55cb9d0a3140-DeclarationConstruct" + ] + }, + { + "id": "0x55cb9d0fcad8-ImplicitPart" + }, + { + "id": "0x55cb9d0d15b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cb9d0d15b0-SpecificationConstruct" + }, + { + "id": "0x55cb9d0d15b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0d15b0-Statement" + }, + { + "id": "0x55cb9d0d15b0-Statement", + "statement": "0x55cb9d0d9250-TypeDeclarationStmt", + "source": "integer*1 :: a1, a2" + }, + { + "id": "0x55cb9d0d9250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cb9d0d9280-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cb9d0f5f10-EntityDecl", + "0x55cb9d0a3050-EntityDecl" + ] + }, + { + "id": "0x55cb9d0d9280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cb9d0d9280-IntrinsicTypeSpec" + }, + { + "id": "0x55cb9d0d9280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55cb9d0d9280-IntegerTypeSpec" + }, + { + "id": "0x55cb9d0d9280-IntegerTypeSpec", + "KindSelector": "0x55cb9d0d9280-KindSelector" + }, + { + "id": "0x55cb9d0d9280-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55cb9d0d9280-StarSize" + }, + { + "id": "0x55cb9d0d9280-StarSize", + "uint64_t": "1" + }, + { + "id": "0x55cb9d0f5f10-EntityDecl", + "Name": "0x55cb9d0f5fc8-Name" + }, + { + "id": "0x55cb9d0f5fc8-Name", + "source": "a1" + }, + { + "id": "0x55cb9d0a3050-EntityDecl", + "Name": "0x55cb9d0a3108-Name" + }, + { + "id": "0x55cb9d0a3108-Name", + "source": "a2" + }, + { + "id": "0x55cb9d0d1240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cb9d0d1240-SpecificationConstruct" + }, + { + "id": "0x55cb9d0d1240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0d1240-Statement" + }, + { + "id": "0x55cb9d0d1240-Statement", + "statement": "0x55cb9d0f5ce0-TypeDeclarationStmt", + "source": "real*4 :: b1, b2" + }, + { + "id": "0x55cb9d0f5ce0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cb9d0f5d10-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cb9d0f52d0-EntityDecl", + "0x55cb9d0f51e0-EntityDecl" + ] + }, + { + "id": "0x55cb9d0f5d10-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cb9d0f5d10-IntrinsicTypeSpec" + }, + { + "id": "0x55cb9d0f5d10-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x55cb9d0f5d10-Real" + }, + { + "id": "0x55cb9d0f5d10-Real", + "KindSelector": "0x55cb9d0f5d10-KindSelector" + }, + { + "id": "0x55cb9d0f5d10-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55cb9d0f5d10-StarSize" + }, + { + "id": "0x55cb9d0f5d10-StarSize", + "uint64_t": "4" + }, + { + "id": "0x55cb9d0f52d0-EntityDecl", + "Name": "0x55cb9d0f5388-Name" + }, + { + "id": "0x55cb9d0f5388-Name", + "source": "b1" + }, + { + "id": "0x55cb9d0f51e0-EntityDecl", + "Name": "0x55cb9d0f5298-Name" + }, + { + "id": "0x55cb9d0f5298-Name", + "source": "b2" + }, + { + "id": "0x55cb9d0a3140-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cb9d0a3140-SpecificationConstruct" + }, + { + "id": "0x55cb9d0a3140-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0a3140-Statement" + }, + { + "id": "0x55cb9d0a3140-Statement", + "statement": "0x55cb9d0f5d60-TypeDeclarationStmt", + "source": "logical :: ok" + }, + { + "id": "0x55cb9d0f5d60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cb9d0f5d90-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cb9d0f5440-EntityDecl" + ] + }, + { + "id": "0x55cb9d0f5d90-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cb9d0f5d90-IntrinsicTypeSpec" + }, + { + "id": "0x55cb9d0f5d90-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55cb9d0f5d90-Logical" + }, + { + "id": "0x55cb9d0f5d90-Logical" + }, + { + "id": "0x55cb9d0f5440-EntityDecl", + "Name": "0x55cb9d0f54f8-Name" + }, + { + "id": "0x55cb9d0f54f8-Name", + "source": "ok" + }, + { + "id": "0x55cb9d0fcaa8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55cb9d0f6870-ExecutionPartConstruct", + "0x55cb9d0f6b40-ExecutionPartConstruct", + "0x55cb9d0f6500-ExecutionPartConstruct", + "0x55cb9d0f6190-ExecutionPartConstruct", + "0x55cb9d0f7110-ExecutionPartConstruct", + "0x55cb9d0f71d0-ExecutionPartConstruct", + "0x55cb9d0f78a0-ExecutionPartConstruct", + "0x55cb9d0f74c0-ExecutionPartConstruct", + "0x55cb9d0fb1e0-ExecutionPartConstruct", + "0x55cb9d0fb410-ExecutionPartConstruct", + "0x55cb9d0fb4d0-ExecutionPartConstruct", + "0x55cb9d0fb010-ExecutionPartConstruct" + ] + }, + { + "id": "0x55cb9d0fcaa8-ExecutionPartConstruct" + }, + { + "id": "0x55cb9d0f6870-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f6870-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f6870-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f6870-Statement" + }, + { + "id": "0x55cb9d0f6870-Statement", + "statement": "0x55cb9d0f6880-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x55cb9d0f6880-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0f4840-AssignmentStmt" + }, + { + "id": "0x55cb9d0f4840-AssignmentStmt", + "Variable": "0x55cb9d0f4920-Variable", + "Expr": "0x55cb9d0f4850-Expr" + }, + { + "id": "0x55cb9d0f4920-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0a3190-Designator" + }, + { + "id": "0x55cb9d0a3190-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0a31a0-DataRef" + }, + { + "id": "0x55cb9d0a31a0-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0a31a0-Name" + }, + { + "id": "0x55cb9d0a31a0-Name", + "source": "ok" + }, + { + "id": "0x55cb9d0f4850-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0f4870-LiteralConstant" + }, + { + "id": "0x55cb9d0f4870-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55cb9d0f4870-LogicalLiteralConstant" + }, + { + "id": "0x55cb9d0f4870-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x55cb9d0f6b40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f6b40-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f6b40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f6b40-Statement" + }, + { + "id": "0x55cb9d0f6b40-Statement", + "statement": "0x55cb9d0f6b50-ActionStmt", + "source": "b1 = 1.1" + }, + { + "id": "0x55cb9d0f6b50-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0f6a20-AssignmentStmt" + }, + { + "id": "0x55cb9d0f6a20-AssignmentStmt", + "Variable": "0x55cb9d0f6b00-Variable", + "Expr": "0x55cb9d0f6a30-Expr" + }, + { + "id": "0x55cb9d0f6b00-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0f5800-Designator" + }, + { + "id": "0x55cb9d0f5800-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f5810-DataRef" + }, + { + "id": "0x55cb9d0f5810-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f5810-Name" + }, + { + "id": "0x55cb9d0f5810-Name", + "source": "b1" + }, + { + "id": "0x55cb9d0f6a30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0f6a50-LiteralConstant" + }, + { + "id": "0x55cb9d0f6a50-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55cb9d0f6a50-RealLiteralConstant" + }, + { + "id": "0x55cb9d0f6a50-RealLiteralConstant", + "real": "0x55cb9d0f6a50-Real" + }, + { + "id": "0x55cb9d0f6a50-Real", + "source": "1.1" + }, + { + "id": "0x55cb9d0f6500-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f6500-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f6500-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f6500-Statement" + }, + { + "id": "0x55cb9d0f6500-Statement", + "statement": "0x55cb9d0f6510-ActionStmt", + "source": "a1 = 1" + }, + { + "id": "0x55cb9d0f6510-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0f63e0-AssignmentStmt" + }, + { + "id": "0x55cb9d0f63e0-AssignmentStmt", + "Variable": "0x55cb9d0f64c0-Variable", + "Expr": "0x55cb9d0f63f0-Expr" + }, + { + "id": "0x55cb9d0f64c0-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0f6120-Designator" + }, + { + "id": "0x55cb9d0f6120-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f6130-DataRef" + }, + { + "id": "0x55cb9d0f6130-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f6130-Name" + }, + { + "id": "0x55cb9d0f6130-Name", + "source": "a1" + }, + { + "id": "0x55cb9d0f63f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0f6410-LiteralConstant" + }, + { + "id": "0x55cb9d0f6410-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cb9d0f6410-IntLiteralConstant" + }, + { + "id": "0x55cb9d0f6410-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cb9d0f6190-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f6190-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f6190-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f6190-Statement" + }, + { + "id": "0x55cb9d0f6190-Statement", + "statement": "0x55cb9d0f61a0-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55cb9d0f61a0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0f6e10-AssignmentStmt" + }, + { + "id": "0x55cb9d0f6e10-AssignmentStmt", + "Variable": "0x55cb9d0f6ef0-Variable", + "Expr": "0x55cb9d0f6e20-Expr" + }, + { + "id": "0x55cb9d0f6ef0-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0f6b90-Designator" + }, + { + "id": "0x55cb9d0f6b90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f6ba0-DataRef" + }, + { + "id": "0x55cb9d0f6ba0-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f6ba0-Name" + }, + { + "id": "0x55cb9d0f6ba0-Name", + "source": "a2" + }, + { + "id": "0x55cb9d0f6e20-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0f6610-Designator" + }, + { + "id": "0x55cb9d0f6610-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f6620-DataRef" + }, + { + "id": "0x55cb9d0f6620-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f6620-Name" + }, + { + "id": "0x55cb9d0f6620-Name", + "source": "b1" + }, + { + "id": "0x55cb9d0f7110-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f7110-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f7110-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f7110-Statement" + }, + { + "id": "0x55cb9d0f7110-Statement", + "statement": "0x55cb9d0f7120-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55cb9d0f7120-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0f6f80-AssignmentStmt" + }, + { + "id": "0x55cb9d0f6f80-AssignmentStmt", + "Variable": "0x55cb9d0f7060-Variable", + "Expr": "0x55cb9d0f6f90-Expr" + }, + { + "id": "0x55cb9d0f7060-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0f6550-Designator" + }, + { + "id": "0x55cb9d0f6550-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f6560-DataRef" + }, + { + "id": "0x55cb9d0f6560-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f6560-Name" + }, + { + "id": "0x55cb9d0f6560-Name", + "source": "b2" + }, + { + "id": "0x55cb9d0f6f90-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0f6f20-Designator" + }, + { + "id": "0x55cb9d0f6f20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f6f30-DataRef" + }, + { + "id": "0x55cb9d0f6f30-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f6f30-Name" + }, + { + "id": "0x55cb9d0f6f30-Name", + "source": "a1" + }, + { + "id": "0x55cb9d0f71d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f71d0-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f71d0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55cb9d0b4490-IfConstruct" + }, + { + "id": "0x55cb9d0b4490-IfConstruct", + "Statement": "0x55cb9d0b4560-Statement", + "ExecutionPartConstruct": [ + "0x55cb9d0f61f0-ExecutionPartConstruct", + "0x55cb9d0fab70-ExecutionPartConstruct" + ], + "Statement": "0x55cb9d0b4490-Statement" + }, + { + "id": "0x55cb9d0b4560-Statement", + "statement": "0x55cb9d0b4570-IfThenStmt", + "source": "if((a2 - b2) .ne. 0) then" + }, + { + "id": "0x55cb9d0b4570-IfThenStmt", + "Expr": "0x55cb9d0f7ab0-Expr" + }, + { + "id": "0x55cb9d0f7ab0-Expr", + "variantKey": "NE", + "NE": "0x55cb9d0f7ad0-NE" + }, + { + "id": "0x55cb9d0f7ad0-NE", + "left": "0x55cb9d0f7740-Expr", + "right": "0x55cb9d0f7660-Expr", + "op": "NE" + }, + { + "id": "0x55cb9d0f7740-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55cb9d0f7760-Parentheses" + }, + { + "id": "0x55cb9d0f7760-Parentheses", + "Expr": "0x55cb9d0f7580-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55cb9d0f7580-Expr", + "variantKey": "Subtract", + "Subtract": "0x55cb9d0f75a0-Subtract" + }, + { + "id": "0x55cb9d0f75a0-Subtract", + "left": "0x55cb9d0f7c70-Expr", + "right": "0x55cb9d0f7b90-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55cb9d0f7c70-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0f8710-Designator" + }, + { + "id": "0x55cb9d0f8710-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f8720-DataRef" + }, + { + "id": "0x55cb9d0f8720-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f8720-Name" + }, + { + "id": "0x55cb9d0f8720-Name", + "source": "a2" + }, + { + "id": "0x55cb9d0f7b90-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0f8930-Designator" + }, + { + "id": "0x55cb9d0f8930-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f8940-DataRef" + }, + { + "id": "0x55cb9d0f8940-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f8940-Name" + }, + { + "id": "0x55cb9d0f8940-Name", + "source": "b2" + }, + { + "id": "0x55cb9d0f7660-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0f7680-LiteralConstant" + }, + { + "id": "0x55cb9d0f7680-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cb9d0f7680-IntLiteralConstant" + }, + { + "id": "0x55cb9d0f7680-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55cb9d0b4548-ExecutionPartConstruct" + }, + { + "id": "0x55cb9d0f61f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f61f0-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f61f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f61f0-Statement" + }, + { + "id": "0x55cb9d0f61f0-Statement", + "statement": "0x55cb9d0f6200-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55cb9d0f6200-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0f7e90-AssignmentStmt" + }, + { + "id": "0x55cb9d0f7e90-AssignmentStmt", + "Variable": "0x55cb9d0f7f70-Variable", + "Expr": "0x55cb9d0f7ea0-Expr" + }, + { + "id": "0x55cb9d0f7f70-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0f57a0-Designator" + }, + { + "id": "0x55cb9d0f57a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f57b0-DataRef" + }, + { + "id": "0x55cb9d0f57b0-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f57b0-Name" + }, + { + "id": "0x55cb9d0f57b0-Name", + "source": "ok" + }, + { + "id": "0x55cb9d0f7ea0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0f7ec0-LiteralConstant" + }, + { + "id": "0x55cb9d0f7ec0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55cb9d0f7ec0-LogicalLiteralConstant" + }, + { + "id": "0x55cb9d0f7ec0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55cb9d0fab70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fab70-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fab70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0fab70-Statement" + }, + { + "id": "0x55cb9d0fab70-Statement", + "statement": "0x55cb9d0fab80-ActionStmt", + "source": "print *, \"TEST1-NG =>\", a2 - b2" + }, + { + "id": "0x55cb9d0fab80-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55cb9d0faa60-PrintStmt" + }, + { + "id": "0x55cb9d0faa60-PrintStmt", + "Format": "0x55cb9d0faa78-Format", + "OutputItem": [ + "0x55cb9d0fa980-OutputItem", + "0x55cb9d0fa890-OutputItem" + ] + }, + { + "id": "0x55cb9d0faa78-Format", + "variantKey": "Star", + "Star": "0x55cb9d0faa78-Star" + }, + { + "id": "0x55cb9d0faa78-Star" + }, + { + "id": "0x55cb9d0fa980-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cb9d0fa980-Expr" + }, + { + "id": "0x55cb9d0fa980-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0fa9a0-LiteralConstant" + }, + { + "id": "0x55cb9d0fa9a0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55cb9d0fa9a0-CharLiteralConstant" + }, + { + "id": "0x55cb9d0fa9a0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x55cb9d0fa890-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cb9d0fa890-Expr" + }, + { + "id": "0x55cb9d0fa890-Expr", + "variantKey": "Subtract", + "Subtract": "0x55cb9d0fa8b0-Subtract" + }, + { + "id": "0x55cb9d0fa8b0-Subtract", + "left": "0x55cb9d0fa7a0-Expr", + "right": "0x55cb9d0fa6c0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55cb9d0fa7a0-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0f7d50-Designator" + }, + { + "id": "0x55cb9d0f7d50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f7d60-DataRef" + }, + { + "id": "0x55cb9d0f7d60-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f7d60-Name" + }, + { + "id": "0x55cb9d0f7d60-Name", + "source": "a2" + }, + { + "id": "0x55cb9d0fa6c0-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0fa660-Designator" + }, + { + "id": "0x55cb9d0fa660-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fa670-DataRef" + }, + { + "id": "0x55cb9d0fa670-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fa670-Name" + }, + { + "id": "0x55cb9d0fa670-Name", + "source": "b2" + }, + { + "id": "0x55cb9d0b4490-Statement", + "statement": "0x55cb9d0b44a0-EndIfStmt", + "source": "end if" + }, + { + "id": "0x55cb9d0b44a0-EndIfStmt" + }, + { + "id": "0x55cb9d0f78a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f78a0-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f78a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f78a0-Statement" + }, + { + "id": "0x55cb9d0f78a0-Statement", + "statement": "0x55cb9d0f78b0-ActionStmt", + "source": "b1 = -1.1" + }, + { + "id": "0x55cb9d0f78b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0faca0-AssignmentStmt" + }, + { + "id": "0x55cb9d0faca0-AssignmentStmt", + "Variable": "0x55cb9d0fad80-Variable", + "Expr": "0x55cb9d0facb0-Expr" + }, + { + "id": "0x55cb9d0fad80-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0caaf0-Designator" + }, + { + "id": "0x55cb9d0caaf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0cab00-DataRef" + }, + { + "id": "0x55cb9d0cab00-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0cab00-Name" + }, + { + "id": "0x55cb9d0cab00-Name", + "source": "b1" + }, + { + "id": "0x55cb9d0facb0-Expr", + "variantKey": "Negate", + "Negate": "0x55cb9d0facd0-Negate" + }, + { + "id": "0x55cb9d0facd0-Negate", + "Expr": "0x55cb9d0fabc0-Expr", + "op": "NEGATE" + }, + { + "id": "0x55cb9d0fabc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0fabe0-LiteralConstant" + }, + { + "id": "0x55cb9d0fabe0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55cb9d0fabe0-RealLiteralConstant" + }, + { + "id": "0x55cb9d0fabe0-RealLiteralConstant", + "real": "0x55cb9d0fabe0-Real" + }, + { + "id": "0x55cb9d0fabe0-Real", + "source": "1.1" + }, + { + "id": "0x55cb9d0f74c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0f74c0-ExecutableConstruct" + }, + { + "id": "0x55cb9d0f74c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0f74c0-Statement" + }, + { + "id": "0x55cb9d0f74c0-Statement", + "statement": "0x55cb9d0f74d0-ActionStmt", + "source": "a1 = -1" + }, + { + "id": "0x55cb9d0f74d0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0fae90-AssignmentStmt" + }, + { + "id": "0x55cb9d0fae90-AssignmentStmt", + "Variable": "0x55cb9d0faf70-Variable", + "Expr": "0x55cb9d0faea0-Expr" + }, + { + "id": "0x55cb9d0faf70-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0f7290-Designator" + }, + { + "id": "0x55cb9d0f7290-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f72a0-DataRef" + }, + { + "id": "0x55cb9d0f72a0-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f72a0-Name" + }, + { + "id": "0x55cb9d0f72a0-Name", + "source": "a1" + }, + { + "id": "0x55cb9d0faea0-Expr", + "variantKey": "Negate", + "Negate": "0x55cb9d0faec0-Negate" + }, + { + "id": "0x55cb9d0faec0-Negate", + "Expr": "0x55cb9d0fadb0-Expr", + "op": "NEGATE" + }, + { + "id": "0x55cb9d0fadb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0fadd0-LiteralConstant" + }, + { + "id": "0x55cb9d0fadd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cb9d0fadd0-IntLiteralConstant" + }, + { + "id": "0x55cb9d0fadd0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cb9d0fb1e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fb1e0-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fb1e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0fb1e0-Statement" + }, + { + "id": "0x55cb9d0fb1e0-Statement", + "statement": "0x55cb9d0fb1f0-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55cb9d0fb1f0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0fb0c0-AssignmentStmt" + }, + { + "id": "0x55cb9d0fb0c0-AssignmentStmt", + "Variable": "0x55cb9d0fb1a0-Variable", + "Expr": "0x55cb9d0fb0d0-Expr" + }, + { + "id": "0x55cb9d0fb1a0-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0fa600-Designator" + }, + { + "id": "0x55cb9d0fa600-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fa610-DataRef" + }, + { + "id": "0x55cb9d0fa610-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fa610-Name" + }, + { + "id": "0x55cb9d0fa610-Name", + "source": "a2" + }, + { + "id": "0x55cb9d0fb0d0-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0fb060-Designator" + }, + { + "id": "0x55cb9d0fb060-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fb070-DataRef" + }, + { + "id": "0x55cb9d0fb070-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fb070-Name" + }, + { + "id": "0x55cb9d0fb070-Name", + "source": "b1" + }, + { + "id": "0x55cb9d0fb410-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fb410-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fb410-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0fb410-Statement" + }, + { + "id": "0x55cb9d0fb410-Statement", + "statement": "0x55cb9d0fb420-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55cb9d0fb420-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0fb2f0-AssignmentStmt" + }, + { + "id": "0x55cb9d0fb2f0-AssignmentStmt", + "Variable": "0x55cb9d0fb3d0-Variable", + "Expr": "0x55cb9d0fb300-Expr" + }, + { + "id": "0x55cb9d0fb3d0-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0fafa0-Designator" + }, + { + "id": "0x55cb9d0fafa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fafb0-DataRef" + }, + { + "id": "0x55cb9d0fafb0-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fafb0-Name" + }, + { + "id": "0x55cb9d0fafb0-Name", + "source": "b2" + }, + { + "id": "0x55cb9d0fb300-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0fb290-Designator" + }, + { + "id": "0x55cb9d0fb290-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fb2a0-DataRef" + }, + { + "id": "0x55cb9d0fb2a0-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fb2a0-Name" + }, + { + "id": "0x55cb9d0fb2a0-Name", + "source": "a1" + }, + { + "id": "0x55cb9d0fb4d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fb4d0-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fb4d0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55cb9d0fc370-IfConstruct" + }, + { + "id": "0x55cb9d0fc370-IfConstruct", + "Statement": "0x55cb9d0fc440-Statement", + "ExecutionPartConstruct": [ + "0x55cb9d0fb240-ExecutionPartConstruct", + "0x55cb9d0fc320-ExecutionPartConstruct" + ], + "Statement": "0x55cb9d0fc370-Statement" + }, + { + "id": "0x55cb9d0fc440-Statement", + "statement": "0x55cb9d0fc450-IfThenStmt", + "source": "if((a2 - b2) .ne. 0) then" + }, + { + "id": "0x55cb9d0fc450-IfThenStmt", + "Expr": "0x55cb9d0fb8e0-Expr" + }, + { + "id": "0x55cb9d0fb8e0-Expr", + "variantKey": "NE", + "NE": "0x55cb9d0fb900-NE" + }, + { + "id": "0x55cb9d0fb900-NE", + "left": "0x55cb9d0fb7a0-Expr", + "right": "0x55cb9d0fb6c0-Expr", + "op": "NE" + }, + { + "id": "0x55cb9d0fb7a0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55cb9d0fb7c0-Parentheses" + }, + { + "id": "0x55cb9d0fb7c0-Parentheses", + "Expr": "0x55cb9d0fb5e0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55cb9d0fb5e0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55cb9d0fb600-Subtract" + }, + { + "id": "0x55cb9d0fb600-Subtract", + "left": "0x55cb9d0fbaa0-Expr", + "right": "0x55cb9d0fb9c0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55cb9d0fbaa0-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0fbcf0-Designator" + }, + { + "id": "0x55cb9d0fbcf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fbd00-DataRef" + }, + { + "id": "0x55cb9d0fbd00-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fbd00-Name" + }, + { + "id": "0x55cb9d0fbd00-Name", + "source": "a2" + }, + { + "id": "0x55cb9d0fb9c0-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0fbd50-Designator" + }, + { + "id": "0x55cb9d0fbd50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fbd60-DataRef" + }, + { + "id": "0x55cb9d0fbd60-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fbd60-Name" + }, + { + "id": "0x55cb9d0fbd60-Name", + "source": "b2" + }, + { + "id": "0x55cb9d0fb6c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0fb6e0-LiteralConstant" + }, + { + "id": "0x55cb9d0fb6e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cb9d0fb6e0-IntLiteralConstant" + }, + { + "id": "0x55cb9d0fb6e0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55cb9d0fc428-ExecutionPartConstruct" + }, + { + "id": "0x55cb9d0fb240-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fb240-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fb240-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0fb240-Statement" + }, + { + "id": "0x55cb9d0fb240-Statement", + "statement": "0x55cb9d0fb250-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55cb9d0fb250-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cb9d0fbbe0-AssignmentStmt" + }, + { + "id": "0x55cb9d0fbbe0-AssignmentStmt", + "Variable": "0x55cb9d0fbcc0-Variable", + "Expr": "0x55cb9d0fbbf0-Expr" + }, + { + "id": "0x55cb9d0fbcc0-Variable", + "variantKey": "Designator", + "Designator": "0x55cb9d0f7160-Designator" + }, + { + "id": "0x55cb9d0f7160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f7170-DataRef" + }, + { + "id": "0x55cb9d0f7170-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f7170-Name" + }, + { + "id": "0x55cb9d0f7170-Name", + "source": "ok" + }, + { + "id": "0x55cb9d0fbbf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0fbc10-LiteralConstant" + }, + { + "id": "0x55cb9d0fbc10-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55cb9d0fbc10-LogicalLiteralConstant" + }, + { + "id": "0x55cb9d0fbc10-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55cb9d0fc320-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fc320-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fc320-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0fc320-Statement" + }, + { + "id": "0x55cb9d0fc320-Statement", + "statement": "0x55cb9d0fc330-ActionStmt", + "source": "print *, \"TEST2-NG =>\", a2 - b2" + }, + { + "id": "0x55cb9d0fc330-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55cb9d0fc210-PrintStmt" + }, + { + "id": "0x55cb9d0fc210-PrintStmt", + "Format": "0x55cb9d0fc228-Format", + "OutputItem": [ + "0x55cb9d0fc130-OutputItem", + "0x55cb9d0fc040-OutputItem" + ] + }, + { + "id": "0x55cb9d0fc228-Format", + "variantKey": "Star", + "Star": "0x55cb9d0fc228-Star" + }, + { + "id": "0x55cb9d0fc228-Star" + }, + { + "id": "0x55cb9d0fc130-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cb9d0fc130-Expr" + }, + { + "id": "0x55cb9d0fc130-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0fc150-LiteralConstant" + }, + { + "id": "0x55cb9d0fc150-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55cb9d0fc150-CharLiteralConstant" + }, + { + "id": "0x55cb9d0fc150-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x55cb9d0fc040-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cb9d0fc040-Expr" + }, + { + "id": "0x55cb9d0fc040-Expr", + "variantKey": "Subtract", + "Subtract": "0x55cb9d0fc060-Subtract" + }, + { + "id": "0x55cb9d0fc060-Subtract", + "left": "0x55cb9d0fbf50-Expr", + "right": "0x55cb9d0fbe70-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55cb9d0fbf50-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0fbb80-Designator" + }, + { + "id": "0x55cb9d0fbb80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fbb90-DataRef" + }, + { + "id": "0x55cb9d0fbb90-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fbb90-Name" + }, + { + "id": "0x55cb9d0fbb90-Name", + "source": "a2" + }, + { + "id": "0x55cb9d0fbe70-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0fbe10-Designator" + }, + { + "id": "0x55cb9d0fbe10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0fbe20-DataRef" + }, + { + "id": "0x55cb9d0fbe20-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0fbe20-Name" + }, + { + "id": "0x55cb9d0fbe20-Name", + "source": "b2" + }, + { + "id": "0x55cb9d0fc370-Statement", + "statement": "0x55cb9d0fc380-EndIfStmt", + "source": "end if" + }, + { + "id": "0x55cb9d0fc380-EndIfStmt" + }, + { + "id": "0x55cb9d0fb010-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fb010-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fb010-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55cb9d0fc870-IfConstruct" + }, + { + "id": "0x55cb9d0fc870-IfConstruct", + "Statement": "0x55cb9d0fc940-Statement", + "ExecutionPartConstruct": [ + "0x55cb9d0fb530-ExecutionPartConstruct" + ], + "Statement": "0x55cb9d0fc870-Statement" + }, + { + "id": "0x55cb9d0fc940-Statement", + "statement": "0x55cb9d0fc950-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x55cb9d0fc950-IfThenStmt", + "Expr": "0x55cb9d0fc490-Expr" + }, + { + "id": "0x55cb9d0fc490-Expr", + "variantKey": "Designator", + "Designator": "0x55cb9d0f65b0-Designator" + }, + { + "id": "0x55cb9d0f65b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cb9d0f65c0-DataRef" + }, + { + "id": "0x55cb9d0f65c0-DataRef", + "variantKey": "Name", + "Name": "0x55cb9d0f65c0-Name" + }, + { + "id": "0x55cb9d0f65c0-Name", + "source": "ok" + }, + { + "id": "0x55cb9d0fc928-ExecutionPartConstruct" + }, + { + "id": "0x55cb9d0fb530-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cb9d0fb530-ExecutableConstruct" + }, + { + "id": "0x55cb9d0fb530-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cb9d0fb530-Statement" + }, + { + "id": "0x55cb9d0fb530-Statement", + "statement": "0x55cb9d0fb540-ActionStmt", + "source": "print *, \"OK\"" + }, + { + "id": "0x55cb9d0fb540-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55cb9d0fc770-PrintStmt" + }, + { + "id": "0x55cb9d0fc770-PrintStmt", + "Format": "0x55cb9d0fc788-Format", + "OutputItem": [ + "0x55cb9d0fc690-OutputItem" + ] + }, + { + "id": "0x55cb9d0fc788-Format", + "variantKey": "Star", + "Star": "0x55cb9d0fc788-Star" + }, + { + "id": "0x55cb9d0fc788-Star" + }, + { + "id": "0x55cb9d0fc690-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cb9d0fc690-Expr" + }, + { + "id": "0x55cb9d0fc690-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cb9d0fc6b0-LiteralConstant" + }, + { + "id": "0x55cb9d0fc6b0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55cb9d0fc6b0-CharLiteralConstant" + }, + { + "id": "0x55cb9d0fc6b0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55cb9d0fc870-Statement", + "statement": "0x55cb9d0fc880-EndIfStmt", + "source": "end if" + }, + { + "id": "0x55cb9d0fc880-EndIfStmt" + }, + { + "id": "0x55cb9d0fca20-Statement", + "statement": "0x55cb9d0fca30-EndProgramStmt", + "source": "end" + }, + { + "id": "0x55cb9d0fca30-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 94ea7b67..6e339cfb 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -418,4 +418,16 @@ void testFujitsu0000_0001Native() { testNative("fujitsu/0000/0000_0001.f90"); } } + + @Test + void testFujitsu0000_0002() { + testJson("fujitsu/0000/0000_0002.json"); + } + + @Test + void testFujitsu0000_0002Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0002.f90"); + } + } } From 15158db88abd3b22d875be3d8e136fa002d8b46d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:20:37 +0100 Subject: [PATCH 021/132] Fix new Fujitsu test source files --- .../fujitsu/0000/0000_0002.expected.f90 | 26 +- .../fortran/parser/fujitsu/0000/0000_0002.f90 | 26 +- .../parser/fujitsu/0000/0000_0002.json | 1224 ++++++++--------- 3 files changed, 638 insertions(+), 638 deletions(-) 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 958deb9f..8e200279 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. @@ -9,23 +9,23 @@ a2 = b1 b2 = a1 -if ((a2-b2) .ne. 0) then +IF ((a2 - b2) .ne. 0) THEN ok = .false. - print *,"TEST1-NG =>",a2-b2 -endif + PRINT *, "TEST1-NG =>", a2 - b2 +END IF b1 = -1.1 a1 = -1 a2 = b1 b2 = a1 -if ((a2-b2) .ne. 0) then +IF ((a2 - b2) .ne. 0) THEN ok = .false. - print *,"TEST2-NG =>",a2-b2 -endif + PRINT *, "TEST2-NG =>", a2 - b2 +END IF -if (ok) then - print *,"OK" -endif +IF (ok) THEN + PRINT *, "OK" +END IF -end \ No newline at end of file +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.f90 index 8e200279..958deb9f 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.f90 +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.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. @@ -9,23 +9,23 @@ a2 = b1 b2 = a1 -IF ((a2 - b2) .ne. 0) THEN +if ((a2-b2) .ne. 0) then ok = .false. - PRINT *, "TEST1-NG =>", a2 - b2 -END IF + print *,"TEST1-NG =>",a2-b2 +endif b1 = -1.1 a1 = -1 a2 = b1 b2 = a1 -IF ((a2 - b2) .ne. 0) THEN +if ((a2-b2) .ne. 0) then ok = .false. - PRINT *, "TEST2-NG =>", a2 - b2 -END IF + print *,"TEST2-NG =>",a2-b2 +endif -IF (ok) THEN - PRINT *, "OK" -END IF +if (ok) then + print *,"OK" +endif -END \ No newline at end of file +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json index 056682ef..a91eebbe 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0002.json @@ -1,1489 +1,1489 @@ { "nodes": [ { - "id": "0x55cb9d0cacc0-Program", + "id": "0x564e9cd70cc0-Program", "ProgramUnit": [ - "0x55cb9d0f3660-ProgramUnit" + "0x564e9cd99660-ProgramUnit" ] }, { - "id": "0x55cb9d0f3660-ProgramUnit", + "id": "0x564e9cd99660-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55cb9d0fca20-MainProgram" + "MainProgram": "0x564e9cd9a960-MainProgram" }, { - "id": "0x55cb9d0fca20-MainProgram", - "SpecificationPart": "0x55cb9d0fcac0-SpecificationPart", - "ExecutionPart": "0x55cb9d0fcaa8-ExecutionPart", - "Statement": "0x55cb9d0fca20-Statement" + "id": "0x564e9cd9a960-MainProgram", + "SpecificationPart": "0x564e9cd9aa00-SpecificationPart", + "ExecutionPart": "0x564e9cd9a9e8-ExecutionPart", + "Statement": "0x564e9cd9a960-Statement" }, { - "id": "0x55cb9d0fcac0-SpecificationPart", - "ImplicitPart": "0x55cb9d0fcad8-ImplicitPart", + "id": "0x564e9cd9aa00-SpecificationPart", + "ImplicitPart": "0x564e9cd9aa18-ImplicitPart", "DeclarationConstruct": [ - "0x55cb9d0d15b0-DeclarationConstruct", - "0x55cb9d0d1240-DeclarationConstruct", - "0x55cb9d0a3140-DeclarationConstruct" + "0x564e9cd775b0-DeclarationConstruct", + "0x564e9cd77240-DeclarationConstruct", + "0x564e9cd49140-DeclarationConstruct" ] }, { - "id": "0x55cb9d0fcad8-ImplicitPart" + "id": "0x564e9cd9aa18-ImplicitPart" }, { - "id": "0x55cb9d0d15b0-DeclarationConstruct", + "id": "0x564e9cd775b0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55cb9d0d15b0-SpecificationConstruct" + "SpecificationConstruct": "0x564e9cd775b0-SpecificationConstruct" }, { - "id": "0x55cb9d0d15b0-SpecificationConstruct", + "id": "0x564e9cd775b0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0d15b0-Statement" + "Statement": "0x564e9cd775b0-Statement" }, { - "id": "0x55cb9d0d15b0-Statement", - "statement": "0x55cb9d0d9250-TypeDeclarationStmt", - "source": "integer*1 :: a1, a2" + "id": "0x564e9cd775b0-Statement", + "statement": "0x564e9cd7f250-TypeDeclarationStmt", + "source": "integer*1 a1, a2" }, { - "id": "0x55cb9d0d9250-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55cb9d0d9280-DeclarationTypeSpec", + "id": "0x564e9cd7f250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564e9cd7f280-DeclarationTypeSpec", "EntityDecl": [ - "0x55cb9d0f5f10-EntityDecl", - "0x55cb9d0a3050-EntityDecl" + "0x564e9cd9be40-EntityDecl", + "0x564e9cd49050-EntityDecl" ] }, { - "id": "0x55cb9d0d9280-DeclarationTypeSpec", + "id": "0x564e9cd7f280-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55cb9d0d9280-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564e9cd7f280-IntrinsicTypeSpec" }, { - "id": "0x55cb9d0d9280-IntrinsicTypeSpec", + "id": "0x564e9cd7f280-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55cb9d0d9280-IntegerTypeSpec" + "IntegerTypeSpec": "0x564e9cd7f280-IntegerTypeSpec" }, { - "id": "0x55cb9d0d9280-IntegerTypeSpec", - "KindSelector": "0x55cb9d0d9280-KindSelector" + "id": "0x564e9cd7f280-IntegerTypeSpec", + "KindSelector": "0x564e9cd7f280-KindSelector" }, { - "id": "0x55cb9d0d9280-KindSelector", + "id": "0x564e9cd7f280-KindSelector", "variantKey": "StarSize", - "StarSize": "0x55cb9d0d9280-StarSize" + "StarSize": "0x564e9cd7f280-StarSize" }, { - "id": "0x55cb9d0d9280-StarSize", + "id": "0x564e9cd7f280-StarSize", "uint64_t": "1" }, { - "id": "0x55cb9d0f5f10-EntityDecl", - "Name": "0x55cb9d0f5fc8-Name" + "id": "0x564e9cd9be40-EntityDecl", + "Name": "0x564e9cd9bef8-Name" }, { - "id": "0x55cb9d0f5fc8-Name", + "id": "0x564e9cd9bef8-Name", "source": "a1" }, { - "id": "0x55cb9d0a3050-EntityDecl", - "Name": "0x55cb9d0a3108-Name" + "id": "0x564e9cd49050-EntityDecl", + "Name": "0x564e9cd49108-Name" }, { - "id": "0x55cb9d0a3108-Name", + "id": "0x564e9cd49108-Name", "source": "a2" }, { - "id": "0x55cb9d0d1240-DeclarationConstruct", + "id": "0x564e9cd77240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55cb9d0d1240-SpecificationConstruct" + "SpecificationConstruct": "0x564e9cd77240-SpecificationConstruct" }, { - "id": "0x55cb9d0d1240-SpecificationConstruct", + "id": "0x564e9cd77240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0d1240-Statement" + "Statement": "0x564e9cd77240-Statement" }, { - "id": "0x55cb9d0d1240-Statement", - "statement": "0x55cb9d0f5ce0-TypeDeclarationStmt", - "source": "real*4 :: b1, b2" + "id": "0x564e9cd77240-Statement", + "statement": "0x564e9cd9bc10-TypeDeclarationStmt", + "source": "real*4 b1, b2" }, { - "id": "0x55cb9d0f5ce0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55cb9d0f5d10-DeclarationTypeSpec", + "id": "0x564e9cd9bc10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564e9cd9bc40-DeclarationTypeSpec", "EntityDecl": [ - "0x55cb9d0f52d0-EntityDecl", - "0x55cb9d0f51e0-EntityDecl" + "0x564e9cd9b200-EntityDecl", + "0x564e9cd9b110-EntityDecl" ] }, { - "id": "0x55cb9d0f5d10-DeclarationTypeSpec", + "id": "0x564e9cd9bc40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55cb9d0f5d10-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564e9cd9bc40-IntrinsicTypeSpec" }, { - "id": "0x55cb9d0f5d10-IntrinsicTypeSpec", + "id": "0x564e9cd9bc40-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x55cb9d0f5d10-Real" + "Real": "0x564e9cd9bc40-Real" }, { - "id": "0x55cb9d0f5d10-Real", - "KindSelector": "0x55cb9d0f5d10-KindSelector" + "id": "0x564e9cd9bc40-Real", + "KindSelector": "0x564e9cd9bc40-KindSelector" }, { - "id": "0x55cb9d0f5d10-KindSelector", + "id": "0x564e9cd9bc40-KindSelector", "variantKey": "StarSize", - "StarSize": "0x55cb9d0f5d10-StarSize" + "StarSize": "0x564e9cd9bc40-StarSize" }, { - "id": "0x55cb9d0f5d10-StarSize", + "id": "0x564e9cd9bc40-StarSize", "uint64_t": "4" }, { - "id": "0x55cb9d0f52d0-EntityDecl", - "Name": "0x55cb9d0f5388-Name" + "id": "0x564e9cd9b200-EntityDecl", + "Name": "0x564e9cd9b2b8-Name" }, { - "id": "0x55cb9d0f5388-Name", + "id": "0x564e9cd9b2b8-Name", "source": "b1" }, { - "id": "0x55cb9d0f51e0-EntityDecl", - "Name": "0x55cb9d0f5298-Name" + "id": "0x564e9cd9b110-EntityDecl", + "Name": "0x564e9cd9b1c8-Name" }, { - "id": "0x55cb9d0f5298-Name", + "id": "0x564e9cd9b1c8-Name", "source": "b2" }, { - "id": "0x55cb9d0a3140-DeclarationConstruct", + "id": "0x564e9cd49140-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55cb9d0a3140-SpecificationConstruct" + "SpecificationConstruct": "0x564e9cd49140-SpecificationConstruct" }, { - "id": "0x55cb9d0a3140-SpecificationConstruct", + "id": "0x564e9cd49140-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0a3140-Statement" + "Statement": "0x564e9cd49140-Statement" }, { - "id": "0x55cb9d0a3140-Statement", - "statement": "0x55cb9d0f5d60-TypeDeclarationStmt", - "source": "logical :: ok" + "id": "0x564e9cd49140-Statement", + "statement": "0x564e9cd9bc90-TypeDeclarationStmt", + "source": "logical ok" }, { - "id": "0x55cb9d0f5d60-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55cb9d0f5d90-DeclarationTypeSpec", + "id": "0x564e9cd9bc90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564e9cd9bcc0-DeclarationTypeSpec", "EntityDecl": [ - "0x55cb9d0f5440-EntityDecl" + "0x564e9cd9b370-EntityDecl" ] }, { - "id": "0x55cb9d0f5d90-DeclarationTypeSpec", + "id": "0x564e9cd9bcc0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55cb9d0f5d90-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x564e9cd9bcc0-IntrinsicTypeSpec" }, { - "id": "0x55cb9d0f5d90-IntrinsicTypeSpec", + "id": "0x564e9cd9bcc0-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x55cb9d0f5d90-Logical" + "Logical": "0x564e9cd9bcc0-Logical" }, { - "id": "0x55cb9d0f5d90-Logical" + "id": "0x564e9cd9bcc0-Logical" }, { - "id": "0x55cb9d0f5440-EntityDecl", - "Name": "0x55cb9d0f54f8-Name" + "id": "0x564e9cd9b370-EntityDecl", + "Name": "0x564e9cd9b428-Name" }, { - "id": "0x55cb9d0f54f8-Name", + "id": "0x564e9cd9b428-Name", "source": "ok" }, { - "id": "0x55cb9d0fcaa8-ExecutionPart", + "id": "0x564e9cd9a9e8-ExecutionPart", "ExecutionPartConstruct": [ - "0x55cb9d0f6870-ExecutionPartConstruct", - "0x55cb9d0f6b40-ExecutionPartConstruct", - "0x55cb9d0f6500-ExecutionPartConstruct", - "0x55cb9d0f6190-ExecutionPartConstruct", - "0x55cb9d0f7110-ExecutionPartConstruct", - "0x55cb9d0f71d0-ExecutionPartConstruct", - "0x55cb9d0f78a0-ExecutionPartConstruct", - "0x55cb9d0f74c0-ExecutionPartConstruct", - "0x55cb9d0fb1e0-ExecutionPartConstruct", - "0x55cb9d0fb410-ExecutionPartConstruct", - "0x55cb9d0fb4d0-ExecutionPartConstruct", - "0x55cb9d0fb010-ExecutionPartConstruct" + "0x564e9cd9ca70-ExecutionPartConstruct", + "0x564e9cd9c430-ExecutionPartConstruct", + "0x564e9cd9c600-ExecutionPartConstruct", + "0x564e9cd9d010-ExecutionPartConstruct", + "0x564e9cd9d2a0-ExecutionPartConstruct", + "0x564e9cd9d360-ExecutionPartConstruct", + "0x564e9cd9d9c0-ExecutionPartConstruct", + "0x564e9cd9d5e0-ExecutionPartConstruct", + "0x564e9cda1300-ExecutionPartConstruct", + "0x564e9cda1530-ExecutionPartConstruct", + "0x564e9cda15f0-ExecutionPartConstruct", + "0x564e9cda1130-ExecutionPartConstruct" ] }, { - "id": "0x55cb9d0fcaa8-ExecutionPartConstruct" + "id": "0x564e9cd9a9e8-ExecutionPartConstruct" }, { - "id": "0x55cb9d0f6870-ExecutionPartConstruct", + "id": "0x564e9cd9ca70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f6870-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9ca70-ExecutableConstruct" }, { - "id": "0x55cb9d0f6870-ExecutableConstruct", + "id": "0x564e9cd9ca70-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f6870-Statement" + "Statement": "0x564e9cd9ca70-Statement" }, { - "id": "0x55cb9d0f6870-Statement", - "statement": "0x55cb9d0f6880-ActionStmt", + "id": "0x564e9cd9ca70-Statement", + "statement": "0x564e9cd9ca80-ActionStmt", "source": "ok = .true." }, { - "id": "0x55cb9d0f6880-ActionStmt", + "id": "0x564e9cd9ca80-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0f4840-AssignmentStmt" + "AssignmentStmt": "0x564e9cd9c950-AssignmentStmt" }, { - "id": "0x55cb9d0f4840-AssignmentStmt", - "Variable": "0x55cb9d0f4920-Variable", - "Expr": "0x55cb9d0f4850-Expr" + "id": "0x564e9cd9c950-AssignmentStmt", + "Variable": "0x564e9cd9ca30-Variable", + "Expr": "0x564e9cd9c960-Expr" }, { - "id": "0x55cb9d0f4920-Variable", + "id": "0x564e9cd9ca30-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0a3190-Designator" + "Designator": "0x564e9cd49190-Designator" }, { - "id": "0x55cb9d0a3190-Designator", + "id": "0x564e9cd49190-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0a31a0-DataRef" + "DataRef": "0x564e9cd491a0-DataRef" }, { - "id": "0x55cb9d0a31a0-DataRef", + "id": "0x564e9cd491a0-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0a31a0-Name" + "Name": "0x564e9cd491a0-Name" }, { - "id": "0x55cb9d0a31a0-Name", + "id": "0x564e9cd491a0-Name", "source": "ok" }, { - "id": "0x55cb9d0f4850-Expr", + "id": "0x564e9cd9c960-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0f4870-LiteralConstant" + "LiteralConstant": "0x564e9cd9c980-LiteralConstant" }, { - "id": "0x55cb9d0f4870-LiteralConstant", + "id": "0x564e9cd9c980-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55cb9d0f4870-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x564e9cd9c980-LogicalLiteralConstant" }, { - "id": "0x55cb9d0f4870-LogicalLiteralConstant", + "id": "0x564e9cd9c980-LogicalLiteralConstant", "bool": "1" }, { - "id": "0x55cb9d0f6b40-ExecutionPartConstruct", + "id": "0x564e9cd9c430-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f6b40-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9c430-ExecutableConstruct" }, { - "id": "0x55cb9d0f6b40-ExecutableConstruct", + "id": "0x564e9cd9c430-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f6b40-Statement" + "Statement": "0x564e9cd9c430-Statement" }, { - "id": "0x55cb9d0f6b40-Statement", - "statement": "0x55cb9d0f6b50-ActionStmt", + "id": "0x564e9cd9c430-Statement", + "statement": "0x564e9cd9c440-ActionStmt", "source": "b1 = 1.1" }, { - "id": "0x55cb9d0f6b50-ActionStmt", + "id": "0x564e9cd9c440-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0f6a20-AssignmentStmt" + "AssignmentStmt": "0x564e9cd9c310-AssignmentStmt" }, { - "id": "0x55cb9d0f6a20-AssignmentStmt", - "Variable": "0x55cb9d0f6b00-Variable", - "Expr": "0x55cb9d0f6a30-Expr" + "id": "0x564e9cd9c310-AssignmentStmt", + "Variable": "0x564e9cd9c3f0-Variable", + "Expr": "0x564e9cd9c320-Expr" }, { - "id": "0x55cb9d0f6b00-Variable", + "id": "0x564e9cd9c3f0-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0f5800-Designator" + "Designator": "0x564e9cd9b730-Designator" }, { - "id": "0x55cb9d0f5800-Designator", + "id": "0x564e9cd9b730-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f5810-DataRef" + "DataRef": "0x564e9cd9b740-DataRef" }, { - "id": "0x55cb9d0f5810-DataRef", + "id": "0x564e9cd9b740-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f5810-Name" + "Name": "0x564e9cd9b740-Name" }, { - "id": "0x55cb9d0f5810-Name", + "id": "0x564e9cd9b740-Name", "source": "b1" }, { - "id": "0x55cb9d0f6a30-Expr", + "id": "0x564e9cd9c320-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0f6a50-LiteralConstant" + "LiteralConstant": "0x564e9cd9c340-LiteralConstant" }, { - "id": "0x55cb9d0f6a50-LiteralConstant", + "id": "0x564e9cd9c340-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55cb9d0f6a50-RealLiteralConstant" + "RealLiteralConstant": "0x564e9cd9c340-RealLiteralConstant" }, { - "id": "0x55cb9d0f6a50-RealLiteralConstant", - "real": "0x55cb9d0f6a50-Real" + "id": "0x564e9cd9c340-RealLiteralConstant", + "real": "0x564e9cd9c340-Real" }, { - "id": "0x55cb9d0f6a50-Real", + "id": "0x564e9cd9c340-Real", "source": "1.1" }, { - "id": "0x55cb9d0f6500-ExecutionPartConstruct", + "id": "0x564e9cd9c600-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f6500-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9c600-ExecutableConstruct" }, { - "id": "0x55cb9d0f6500-ExecutableConstruct", + "id": "0x564e9cd9c600-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f6500-Statement" + "Statement": "0x564e9cd9c600-Statement" }, { - "id": "0x55cb9d0f6500-Statement", - "statement": "0x55cb9d0f6510-ActionStmt", + "id": "0x564e9cd9c600-Statement", + "statement": "0x564e9cd9c610-ActionStmt", "source": "a1 = 1" }, { - "id": "0x55cb9d0f6510-ActionStmt", + "id": "0x564e9cd9c610-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0f63e0-AssignmentStmt" + "AssignmentStmt": "0x564e9cd9c4e0-AssignmentStmt" }, { - "id": "0x55cb9d0f63e0-AssignmentStmt", - "Variable": "0x55cb9d0f64c0-Variable", - "Expr": "0x55cb9d0f63f0-Expr" + "id": "0x564e9cd9c4e0-AssignmentStmt", + "Variable": "0x564e9cd9c5c0-Variable", + "Expr": "0x564e9cd9c4f0-Expr" }, { - "id": "0x55cb9d0f64c0-Variable", + "id": "0x564e9cd9c5c0-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0f6120-Designator" + "Designator": "0x564e9cd9cac0-Designator" }, { - "id": "0x55cb9d0f6120-Designator", + "id": "0x564e9cd9cac0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f6130-DataRef" + "DataRef": "0x564e9cd9cad0-DataRef" }, { - "id": "0x55cb9d0f6130-DataRef", + "id": "0x564e9cd9cad0-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f6130-Name" + "Name": "0x564e9cd9cad0-Name" }, { - "id": "0x55cb9d0f6130-Name", + "id": "0x564e9cd9cad0-Name", "source": "a1" }, { - "id": "0x55cb9d0f63f0-Expr", + "id": "0x564e9cd9c4f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0f6410-LiteralConstant" + "LiteralConstant": "0x564e9cd9c510-LiteralConstant" }, { - "id": "0x55cb9d0f6410-LiteralConstant", + "id": "0x564e9cd9c510-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55cb9d0f6410-IntLiteralConstant" + "IntLiteralConstant": "0x564e9cd9c510-IntLiteralConstant" }, { - "id": "0x55cb9d0f6410-IntLiteralConstant", + "id": "0x564e9cd9c510-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55cb9d0f6190-ExecutionPartConstruct", + "id": "0x564e9cd9d010-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f6190-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9d010-ExecutableConstruct" }, { - "id": "0x55cb9d0f6190-ExecutableConstruct", + "id": "0x564e9cd9d010-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f6190-Statement" + "Statement": "0x564e9cd9d010-Statement" }, { - "id": "0x55cb9d0f6190-Statement", - "statement": "0x55cb9d0f61a0-ActionStmt", + "id": "0x564e9cd9d010-Statement", + "statement": "0x564e9cd9d020-ActionStmt", "source": "a2 = b1" }, { - "id": "0x55cb9d0f61a0-ActionStmt", + "id": "0x564e9cd9d020-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0f6e10-AssignmentStmt" + "AssignmentStmt": "0x564e9cd9ce80-AssignmentStmt" }, { - "id": "0x55cb9d0f6e10-AssignmentStmt", - "Variable": "0x55cb9d0f6ef0-Variable", - "Expr": "0x55cb9d0f6e20-Expr" + "id": "0x564e9cd9ce80-AssignmentStmt", + "Variable": "0x564e9cd9cf60-Variable", + "Expr": "0x564e9cd9ce90-Expr" }, { - "id": "0x55cb9d0f6ef0-Variable", + "id": "0x564e9cd9cf60-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0f6b90-Designator" + "Designator": "0x564e9cd9c480-Designator" }, { - "id": "0x55cb9d0f6b90-Designator", + "id": "0x564e9cd9c480-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f6ba0-DataRef" + "DataRef": "0x564e9cd9c490-DataRef" }, { - "id": "0x55cb9d0f6ba0-DataRef", + "id": "0x564e9cd9c490-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f6ba0-Name" + "Name": "0x564e9cd9c490-Name" }, { - "id": "0x55cb9d0f6ba0-Name", + "id": "0x564e9cd9c490-Name", "source": "a2" }, { - "id": "0x55cb9d0f6e20-Expr", + "id": "0x564e9cd9ce90-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0f6610-Designator" + "Designator": "0x564e9cd9cd40-Designator" }, { - "id": "0x55cb9d0f6610-Designator", + "id": "0x564e9cd9cd40-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f6620-DataRef" + "DataRef": "0x564e9cd9cd50-DataRef" }, { - "id": "0x55cb9d0f6620-DataRef", + "id": "0x564e9cd9cd50-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f6620-Name" + "Name": "0x564e9cd9cd50-Name" }, { - "id": "0x55cb9d0f6620-Name", + "id": "0x564e9cd9cd50-Name", "source": "b1" }, { - "id": "0x55cb9d0f7110-ExecutionPartConstruct", + "id": "0x564e9cd9d2a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f7110-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9d2a0-ExecutableConstruct" }, { - "id": "0x55cb9d0f7110-ExecutableConstruct", + "id": "0x564e9cd9d2a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f7110-Statement" + "Statement": "0x564e9cd9d2a0-Statement" }, { - "id": "0x55cb9d0f7110-Statement", - "statement": "0x55cb9d0f7120-ActionStmt", + "id": "0x564e9cd9d2a0-Statement", + "statement": "0x564e9cd9d2b0-ActionStmt", "source": "b2 = a1" }, { - "id": "0x55cb9d0f7120-ActionStmt", + "id": "0x564e9cd9d2b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0f6f80-AssignmentStmt" + "AssignmentStmt": "0x564e9cd9d180-AssignmentStmt" }, { - "id": "0x55cb9d0f6f80-AssignmentStmt", - "Variable": "0x55cb9d0f7060-Variable", - "Expr": "0x55cb9d0f6f90-Expr" + "id": "0x564e9cd9d180-AssignmentStmt", + "Variable": "0x564e9cd9d260-Variable", + "Expr": "0x564e9cd9d190-Expr" }, { - "id": "0x55cb9d0f7060-Variable", + "id": "0x564e9cd9d260-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0f6550-Designator" + "Designator": "0x564e9cd9c650-Designator" }, { - "id": "0x55cb9d0f6550-Designator", + "id": "0x564e9cd9c650-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f6560-DataRef" + "DataRef": "0x564e9cd9c660-DataRef" }, { - "id": "0x55cb9d0f6560-DataRef", + "id": "0x564e9cd9c660-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f6560-Name" + "Name": "0x564e9cd9c660-Name" }, { - "id": "0x55cb9d0f6560-Name", + "id": "0x564e9cd9c660-Name", "source": "b2" }, { - "id": "0x55cb9d0f6f90-Expr", + "id": "0x564e9cd9d190-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0f6f20-Designator" + "Designator": "0x564e9cd9d120-Designator" }, { - "id": "0x55cb9d0f6f20-Designator", + "id": "0x564e9cd9d120-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f6f30-DataRef" + "DataRef": "0x564e9cd9d130-DataRef" }, { - "id": "0x55cb9d0f6f30-DataRef", + "id": "0x564e9cd9d130-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f6f30-Name" + "Name": "0x564e9cd9d130-Name" }, { - "id": "0x55cb9d0f6f30-Name", + "id": "0x564e9cd9d130-Name", "source": "a1" }, { - "id": "0x55cb9d0f71d0-ExecutionPartConstruct", + "id": "0x564e9cd9d360-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f71d0-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9d360-ExecutableConstruct" }, { - "id": "0x55cb9d0f71d0-ExecutableConstruct", + "id": "0x564e9cd9d360-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55cb9d0b4490-IfConstruct" + "IfConstruct": "0x564e9cd9c050-IfConstruct" }, { - "id": "0x55cb9d0b4490-IfConstruct", - "Statement": "0x55cb9d0b4560-Statement", + "id": "0x564e9cd9c050-IfConstruct", + "Statement": "0x564e9cd9c120-Statement", "ExecutionPartConstruct": [ - "0x55cb9d0f61f0-ExecutionPartConstruct", - "0x55cb9d0fab70-ExecutionPartConstruct" + "0x564e9cd9d0d0-ExecutionPartConstruct", + "0x564e9cda0c90-ExecutionPartConstruct" ], - "Statement": "0x55cb9d0b4490-Statement" + "Statement": "0x564e9cd9c050-Statement" }, { - "id": "0x55cb9d0b4560-Statement", - "statement": "0x55cb9d0b4570-IfThenStmt", - "source": "if((a2 - b2) .ne. 0) then" + "id": "0x564e9cd9c120-Statement", + "statement": "0x564e9cd9c130-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" }, { - "id": "0x55cb9d0b4570-IfThenStmt", - "Expr": "0x55cb9d0f7ab0-Expr" + "id": "0x564e9cd9c130-IfThenStmt", + "Expr": "0x564e9cd9dbd0-Expr" }, { - "id": "0x55cb9d0f7ab0-Expr", + "id": "0x564e9cd9dbd0-Expr", "variantKey": "NE", - "NE": "0x55cb9d0f7ad0-NE" + "NE": "0x564e9cd9dbf0-NE" }, { - "id": "0x55cb9d0f7ad0-NE", - "left": "0x55cb9d0f7740-Expr", - "right": "0x55cb9d0f7660-Expr", + "id": "0x564e9cd9dbf0-NE", + "left": "0x564e9cd9d860-Expr", + "right": "0x564e9cd9d780-Expr", "op": "NE" }, { - "id": "0x55cb9d0f7740-Expr", + "id": "0x564e9cd9d860-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55cb9d0f7760-Parentheses" + "Parentheses": "0x564e9cd9d880-Parentheses" }, { - "id": "0x55cb9d0f7760-Parentheses", - "Expr": "0x55cb9d0f7580-Expr", + "id": "0x564e9cd9d880-Parentheses", + "Expr": "0x564e9cd9d6a0-Expr", "op": "PARENTHESES" }, { - "id": "0x55cb9d0f7580-Expr", + "id": "0x564e9cd9d6a0-Expr", "variantKey": "Subtract", - "Subtract": "0x55cb9d0f75a0-Subtract" + "Subtract": "0x564e9cd9d6c0-Subtract" }, { - "id": "0x55cb9d0f75a0-Subtract", - "left": "0x55cb9d0f7c70-Expr", - "right": "0x55cb9d0f7b90-Expr", + "id": "0x564e9cd9d6c0-Subtract", + "left": "0x564e9cd9dd90-Expr", + "right": "0x564e9cd9dcb0-Expr", "op": "SUBTRACT" }, { - "id": "0x55cb9d0f7c70-Expr", + "id": "0x564e9cd9dd90-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0f8710-Designator" + "Designator": "0x564e9cd9e830-Designator" }, { - "id": "0x55cb9d0f8710-Designator", + "id": "0x564e9cd9e830-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f8720-DataRef" + "DataRef": "0x564e9cd9e840-DataRef" }, { - "id": "0x55cb9d0f8720-DataRef", + "id": "0x564e9cd9e840-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f8720-Name" + "Name": "0x564e9cd9e840-Name" }, { - "id": "0x55cb9d0f8720-Name", + "id": "0x564e9cd9e840-Name", "source": "a2" }, { - "id": "0x55cb9d0f7b90-Expr", + "id": "0x564e9cd9dcb0-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0f8930-Designator" + "Designator": "0x564e9cd9ea50-Designator" }, { - "id": "0x55cb9d0f8930-Designator", + "id": "0x564e9cd9ea50-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f8940-DataRef" + "DataRef": "0x564e9cd9ea60-DataRef" }, { - "id": "0x55cb9d0f8940-DataRef", + "id": "0x564e9cd9ea60-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f8940-Name" + "Name": "0x564e9cd9ea60-Name" }, { - "id": "0x55cb9d0f8940-Name", + "id": "0x564e9cd9ea60-Name", "source": "b2" }, { - "id": "0x55cb9d0f7660-Expr", + "id": "0x564e9cd9d780-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0f7680-LiteralConstant" + "LiteralConstant": "0x564e9cd9d7a0-LiteralConstant" }, { - "id": "0x55cb9d0f7680-LiteralConstant", + "id": "0x564e9cd9d7a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55cb9d0f7680-IntLiteralConstant" + "IntLiteralConstant": "0x564e9cd9d7a0-IntLiteralConstant" }, { - "id": "0x55cb9d0f7680-IntLiteralConstant", + "id": "0x564e9cd9d7a0-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55cb9d0b4548-ExecutionPartConstruct" + "id": "0x564e9cd9c108-ExecutionPartConstruct" }, { - "id": "0x55cb9d0f61f0-ExecutionPartConstruct", + "id": "0x564e9cd9d0d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f61f0-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9d0d0-ExecutableConstruct" }, { - "id": "0x55cb9d0f61f0-ExecutableConstruct", + "id": "0x564e9cd9d0d0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f61f0-Statement" + "Statement": "0x564e9cd9d0d0-Statement" }, { - "id": "0x55cb9d0f61f0-Statement", - "statement": "0x55cb9d0f6200-ActionStmt", + "id": "0x564e9cd9d0d0-Statement", + "statement": "0x564e9cd9d0e0-ActionStmt", "source": "ok = .false." }, { - "id": "0x55cb9d0f6200-ActionStmt", + "id": "0x564e9cd9d0e0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0f7e90-AssignmentStmt" + "AssignmentStmt": "0x564e9cd9dfb0-AssignmentStmt" }, { - "id": "0x55cb9d0f7e90-AssignmentStmt", - "Variable": "0x55cb9d0f7f70-Variable", - "Expr": "0x55cb9d0f7ea0-Expr" + "id": "0x564e9cd9dfb0-AssignmentStmt", + "Variable": "0x564e9cd9e090-Variable", + "Expr": "0x564e9cd9dfc0-Expr" }, { - "id": "0x55cb9d0f7f70-Variable", + "id": "0x564e9cd9e090-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0f57a0-Designator" + "Designator": "0x564e9cd9b6d0-Designator" }, { - "id": "0x55cb9d0f57a0-Designator", + "id": "0x564e9cd9b6d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f57b0-DataRef" + "DataRef": "0x564e9cd9b6e0-DataRef" }, { - "id": "0x55cb9d0f57b0-DataRef", + "id": "0x564e9cd9b6e0-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f57b0-Name" + "Name": "0x564e9cd9b6e0-Name" }, { - "id": "0x55cb9d0f57b0-Name", + "id": "0x564e9cd9b6e0-Name", "source": "ok" }, { - "id": "0x55cb9d0f7ea0-Expr", + "id": "0x564e9cd9dfc0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0f7ec0-LiteralConstant" + "LiteralConstant": "0x564e9cd9dfe0-LiteralConstant" }, { - "id": "0x55cb9d0f7ec0-LiteralConstant", + "id": "0x564e9cd9dfe0-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55cb9d0f7ec0-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x564e9cd9dfe0-LogicalLiteralConstant" }, { - "id": "0x55cb9d0f7ec0-LogicalLiteralConstant", + "id": "0x564e9cd9dfe0-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x55cb9d0fab70-ExecutionPartConstruct", + "id": "0x564e9cda0c90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fab70-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda0c90-ExecutableConstruct" }, { - "id": "0x55cb9d0fab70-ExecutableConstruct", + "id": "0x564e9cda0c90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0fab70-Statement" + "Statement": "0x564e9cda0c90-Statement" }, { - "id": "0x55cb9d0fab70-Statement", - "statement": "0x55cb9d0fab80-ActionStmt", - "source": "print *, \"TEST1-NG =>\", a2 - b2" + "id": "0x564e9cda0c90-Statement", + "statement": "0x564e9cda0ca0-ActionStmt", + "source": "print *,\"TEST1-NG =>\",a2-b2" }, { - "id": "0x55cb9d0fab80-ActionStmt", + "id": "0x564e9cda0ca0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55cb9d0faa60-PrintStmt" + "PrintStmt": "0x564e9cda0b80-PrintStmt" }, { - "id": "0x55cb9d0faa60-PrintStmt", - "Format": "0x55cb9d0faa78-Format", + "id": "0x564e9cda0b80-PrintStmt", + "Format": "0x564e9cda0b98-Format", "OutputItem": [ - "0x55cb9d0fa980-OutputItem", - "0x55cb9d0fa890-OutputItem" + "0x564e9cda0aa0-OutputItem", + "0x564e9cda09b0-OutputItem" ] }, { - "id": "0x55cb9d0faa78-Format", + "id": "0x564e9cda0b98-Format", "variantKey": "Star", - "Star": "0x55cb9d0faa78-Star" + "Star": "0x564e9cda0b98-Star" }, { - "id": "0x55cb9d0faa78-Star" + "id": "0x564e9cda0b98-Star" }, { - "id": "0x55cb9d0fa980-OutputItem", + "id": "0x564e9cda0aa0-OutputItem", "variantKey": "Expr", - "Expr": "0x55cb9d0fa980-Expr" + "Expr": "0x564e9cda0aa0-Expr" }, { - "id": "0x55cb9d0fa980-Expr", + "id": "0x564e9cda0aa0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0fa9a0-LiteralConstant" + "LiteralConstant": "0x564e9cda0ac0-LiteralConstant" }, { - "id": "0x55cb9d0fa9a0-LiteralConstant", + "id": "0x564e9cda0ac0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55cb9d0fa9a0-CharLiteralConstant" + "CharLiteralConstant": "0x564e9cda0ac0-CharLiteralConstant" }, { - "id": "0x55cb9d0fa9a0-CharLiteralConstant", + "id": "0x564e9cda0ac0-CharLiteralConstant", "string": "TEST1-NG =>" }, { - "id": "0x55cb9d0fa890-OutputItem", + "id": "0x564e9cda09b0-OutputItem", "variantKey": "Expr", - "Expr": "0x55cb9d0fa890-Expr" + "Expr": "0x564e9cda09b0-Expr" }, { - "id": "0x55cb9d0fa890-Expr", + "id": "0x564e9cda09b0-Expr", "variantKey": "Subtract", - "Subtract": "0x55cb9d0fa8b0-Subtract" + "Subtract": "0x564e9cda09d0-Subtract" }, { - "id": "0x55cb9d0fa8b0-Subtract", - "left": "0x55cb9d0fa7a0-Expr", - "right": "0x55cb9d0fa6c0-Expr", + "id": "0x564e9cda09d0-Subtract", + "left": "0x564e9cda08c0-Expr", + "right": "0x564e9cda07e0-Expr", "op": "SUBTRACT" }, { - "id": "0x55cb9d0fa7a0-Expr", + "id": "0x564e9cda08c0-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0f7d50-Designator" + "Designator": "0x564e9cd9de70-Designator" }, { - "id": "0x55cb9d0f7d50-Designator", + "id": "0x564e9cd9de70-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f7d60-DataRef" + "DataRef": "0x564e9cd9de80-DataRef" }, { - "id": "0x55cb9d0f7d60-DataRef", + "id": "0x564e9cd9de80-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f7d60-Name" + "Name": "0x564e9cd9de80-Name" }, { - "id": "0x55cb9d0f7d60-Name", + "id": "0x564e9cd9de80-Name", "source": "a2" }, { - "id": "0x55cb9d0fa6c0-Expr", + "id": "0x564e9cda07e0-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0fa660-Designator" + "Designator": "0x564e9cda0780-Designator" }, { - "id": "0x55cb9d0fa660-Designator", + "id": "0x564e9cda0780-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fa670-DataRef" + "DataRef": "0x564e9cda0790-DataRef" }, { - "id": "0x55cb9d0fa670-DataRef", + "id": "0x564e9cda0790-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fa670-Name" + "Name": "0x564e9cda0790-Name" }, { - "id": "0x55cb9d0fa670-Name", + "id": "0x564e9cda0790-Name", "source": "b2" }, { - "id": "0x55cb9d0b4490-Statement", - "statement": "0x55cb9d0b44a0-EndIfStmt", - "source": "end if" + "id": "0x564e9cd9c050-Statement", + "statement": "0x564e9cd9c060-EndIfStmt", + "source": "endif" }, { - "id": "0x55cb9d0b44a0-EndIfStmt" + "id": "0x564e9cd9c060-EndIfStmt" }, { - "id": "0x55cb9d0f78a0-ExecutionPartConstruct", + "id": "0x564e9cd9d9c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f78a0-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9d9c0-ExecutableConstruct" }, { - "id": "0x55cb9d0f78a0-ExecutableConstruct", + "id": "0x564e9cd9d9c0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f78a0-Statement" + "Statement": "0x564e9cd9d9c0-Statement" }, { - "id": "0x55cb9d0f78a0-Statement", - "statement": "0x55cb9d0f78b0-ActionStmt", + "id": "0x564e9cd9d9c0-Statement", + "statement": "0x564e9cd9d9d0-ActionStmt", "source": "b1 = -1.1" }, { - "id": "0x55cb9d0f78b0-ActionStmt", + "id": "0x564e9cd9d9d0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0faca0-AssignmentStmt" + "AssignmentStmt": "0x564e9cda0dc0-AssignmentStmt" }, { - "id": "0x55cb9d0faca0-AssignmentStmt", - "Variable": "0x55cb9d0fad80-Variable", - "Expr": "0x55cb9d0facb0-Expr" + "id": "0x564e9cda0dc0-AssignmentStmt", + "Variable": "0x564e9cda0ea0-Variable", + "Expr": "0x564e9cda0dd0-Expr" }, { - "id": "0x55cb9d0fad80-Variable", + "id": "0x564e9cda0ea0-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0caaf0-Designator" + "Designator": "0x564e9cd70af0-Designator" }, { - "id": "0x55cb9d0caaf0-Designator", + "id": "0x564e9cd70af0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0cab00-DataRef" + "DataRef": "0x564e9cd70b00-DataRef" }, { - "id": "0x55cb9d0cab00-DataRef", + "id": "0x564e9cd70b00-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0cab00-Name" + "Name": "0x564e9cd70b00-Name" }, { - "id": "0x55cb9d0cab00-Name", + "id": "0x564e9cd70b00-Name", "source": "b1" }, { - "id": "0x55cb9d0facb0-Expr", + "id": "0x564e9cda0dd0-Expr", "variantKey": "Negate", - "Negate": "0x55cb9d0facd0-Negate" + "Negate": "0x564e9cda0df0-Negate" }, { - "id": "0x55cb9d0facd0-Negate", - "Expr": "0x55cb9d0fabc0-Expr", + "id": "0x564e9cda0df0-Negate", + "Expr": "0x564e9cda0ce0-Expr", "op": "NEGATE" }, { - "id": "0x55cb9d0fabc0-Expr", + "id": "0x564e9cda0ce0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0fabe0-LiteralConstant" + "LiteralConstant": "0x564e9cda0d00-LiteralConstant" }, { - "id": "0x55cb9d0fabe0-LiteralConstant", + "id": "0x564e9cda0d00-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x55cb9d0fabe0-RealLiteralConstant" + "RealLiteralConstant": "0x564e9cda0d00-RealLiteralConstant" }, { - "id": "0x55cb9d0fabe0-RealLiteralConstant", - "real": "0x55cb9d0fabe0-Real" + "id": "0x564e9cda0d00-RealLiteralConstant", + "real": "0x564e9cda0d00-Real" }, { - "id": "0x55cb9d0fabe0-Real", + "id": "0x564e9cda0d00-Real", "source": "1.1" }, { - "id": "0x55cb9d0f74c0-ExecutionPartConstruct", + "id": "0x564e9cd9d5e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0f74c0-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cd9d5e0-ExecutableConstruct" }, { - "id": "0x55cb9d0f74c0-ExecutableConstruct", + "id": "0x564e9cd9d5e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0f74c0-Statement" + "Statement": "0x564e9cd9d5e0-Statement" }, { - "id": "0x55cb9d0f74c0-Statement", - "statement": "0x55cb9d0f74d0-ActionStmt", + "id": "0x564e9cd9d5e0-Statement", + "statement": "0x564e9cd9d5f0-ActionStmt", "source": "a1 = -1" }, { - "id": "0x55cb9d0f74d0-ActionStmt", + "id": "0x564e9cd9d5f0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0fae90-AssignmentStmt" + "AssignmentStmt": "0x564e9cda0fb0-AssignmentStmt" }, { - "id": "0x55cb9d0fae90-AssignmentStmt", - "Variable": "0x55cb9d0faf70-Variable", - "Expr": "0x55cb9d0faea0-Expr" + "id": "0x564e9cda0fb0-AssignmentStmt", + "Variable": "0x564e9cda1090-Variable", + "Expr": "0x564e9cda0fc0-Expr" }, { - "id": "0x55cb9d0faf70-Variable", + "id": "0x564e9cda1090-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0f7290-Designator" + "Designator": "0x564e9cd9d3b0-Designator" }, { - "id": "0x55cb9d0f7290-Designator", + "id": "0x564e9cd9d3b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f72a0-DataRef" + "DataRef": "0x564e9cd9d3c0-DataRef" }, { - "id": "0x55cb9d0f72a0-DataRef", + "id": "0x564e9cd9d3c0-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f72a0-Name" + "Name": "0x564e9cd9d3c0-Name" }, { - "id": "0x55cb9d0f72a0-Name", + "id": "0x564e9cd9d3c0-Name", "source": "a1" }, { - "id": "0x55cb9d0faea0-Expr", + "id": "0x564e9cda0fc0-Expr", "variantKey": "Negate", - "Negate": "0x55cb9d0faec0-Negate" + "Negate": "0x564e9cda0fe0-Negate" }, { - "id": "0x55cb9d0faec0-Negate", - "Expr": "0x55cb9d0fadb0-Expr", + "id": "0x564e9cda0fe0-Negate", + "Expr": "0x564e9cda0ed0-Expr", "op": "NEGATE" }, { - "id": "0x55cb9d0fadb0-Expr", + "id": "0x564e9cda0ed0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0fadd0-LiteralConstant" + "LiteralConstant": "0x564e9cda0ef0-LiteralConstant" }, { - "id": "0x55cb9d0fadd0-LiteralConstant", + "id": "0x564e9cda0ef0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55cb9d0fadd0-IntLiteralConstant" + "IntLiteralConstant": "0x564e9cda0ef0-IntLiteralConstant" }, { - "id": "0x55cb9d0fadd0-IntLiteralConstant", + "id": "0x564e9cda0ef0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55cb9d0fb1e0-ExecutionPartConstruct", + "id": "0x564e9cda1300-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fb1e0-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda1300-ExecutableConstruct" }, { - "id": "0x55cb9d0fb1e0-ExecutableConstruct", + "id": "0x564e9cda1300-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0fb1e0-Statement" + "Statement": "0x564e9cda1300-Statement" }, { - "id": "0x55cb9d0fb1e0-Statement", - "statement": "0x55cb9d0fb1f0-ActionStmt", + "id": "0x564e9cda1300-Statement", + "statement": "0x564e9cda1310-ActionStmt", "source": "a2 = b1" }, { - "id": "0x55cb9d0fb1f0-ActionStmt", + "id": "0x564e9cda1310-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0fb0c0-AssignmentStmt" + "AssignmentStmt": "0x564e9cda11e0-AssignmentStmt" }, { - "id": "0x55cb9d0fb0c0-AssignmentStmt", - "Variable": "0x55cb9d0fb1a0-Variable", - "Expr": "0x55cb9d0fb0d0-Expr" + "id": "0x564e9cda11e0-AssignmentStmt", + "Variable": "0x564e9cda12c0-Variable", + "Expr": "0x564e9cda11f0-Expr" }, { - "id": "0x55cb9d0fb1a0-Variable", + "id": "0x564e9cda12c0-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0fa600-Designator" + "Designator": "0x564e9cda0720-Designator" }, { - "id": "0x55cb9d0fa600-Designator", + "id": "0x564e9cda0720-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fa610-DataRef" + "DataRef": "0x564e9cda0730-DataRef" }, { - "id": "0x55cb9d0fa610-DataRef", + "id": "0x564e9cda0730-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fa610-Name" + "Name": "0x564e9cda0730-Name" }, { - "id": "0x55cb9d0fa610-Name", + "id": "0x564e9cda0730-Name", "source": "a2" }, { - "id": "0x55cb9d0fb0d0-Expr", + "id": "0x564e9cda11f0-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0fb060-Designator" + "Designator": "0x564e9cda1180-Designator" }, { - "id": "0x55cb9d0fb060-Designator", + "id": "0x564e9cda1180-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fb070-DataRef" + "DataRef": "0x564e9cda1190-DataRef" }, { - "id": "0x55cb9d0fb070-DataRef", + "id": "0x564e9cda1190-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fb070-Name" + "Name": "0x564e9cda1190-Name" }, { - "id": "0x55cb9d0fb070-Name", + "id": "0x564e9cda1190-Name", "source": "b1" }, { - "id": "0x55cb9d0fb410-ExecutionPartConstruct", + "id": "0x564e9cda1530-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fb410-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda1530-ExecutableConstruct" }, { - "id": "0x55cb9d0fb410-ExecutableConstruct", + "id": "0x564e9cda1530-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0fb410-Statement" + "Statement": "0x564e9cda1530-Statement" }, { - "id": "0x55cb9d0fb410-Statement", - "statement": "0x55cb9d0fb420-ActionStmt", + "id": "0x564e9cda1530-Statement", + "statement": "0x564e9cda1540-ActionStmt", "source": "b2 = a1" }, { - "id": "0x55cb9d0fb420-ActionStmt", + "id": "0x564e9cda1540-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0fb2f0-AssignmentStmt" + "AssignmentStmt": "0x564e9cda1410-AssignmentStmt" }, { - "id": "0x55cb9d0fb2f0-AssignmentStmt", - "Variable": "0x55cb9d0fb3d0-Variable", - "Expr": "0x55cb9d0fb300-Expr" + "id": "0x564e9cda1410-AssignmentStmt", + "Variable": "0x564e9cda14f0-Variable", + "Expr": "0x564e9cda1420-Expr" }, { - "id": "0x55cb9d0fb3d0-Variable", + "id": "0x564e9cda14f0-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0fafa0-Designator" + "Designator": "0x564e9cda10c0-Designator" }, { - "id": "0x55cb9d0fafa0-Designator", + "id": "0x564e9cda10c0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fafb0-DataRef" + "DataRef": "0x564e9cda10d0-DataRef" }, { - "id": "0x55cb9d0fafb0-DataRef", + "id": "0x564e9cda10d0-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fafb0-Name" + "Name": "0x564e9cda10d0-Name" }, { - "id": "0x55cb9d0fafb0-Name", + "id": "0x564e9cda10d0-Name", "source": "b2" }, { - "id": "0x55cb9d0fb300-Expr", + "id": "0x564e9cda1420-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0fb290-Designator" + "Designator": "0x564e9cda13b0-Designator" }, { - "id": "0x55cb9d0fb290-Designator", + "id": "0x564e9cda13b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fb2a0-DataRef" + "DataRef": "0x564e9cda13c0-DataRef" }, { - "id": "0x55cb9d0fb2a0-DataRef", + "id": "0x564e9cda13c0-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fb2a0-Name" + "Name": "0x564e9cda13c0-Name" }, { - "id": "0x55cb9d0fb2a0-Name", + "id": "0x564e9cda13c0-Name", "source": "a1" }, { - "id": "0x55cb9d0fb4d0-ExecutionPartConstruct", + "id": "0x564e9cda15f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fb4d0-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda15f0-ExecutableConstruct" }, { - "id": "0x55cb9d0fb4d0-ExecutableConstruct", + "id": "0x564e9cda15f0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55cb9d0fc370-IfConstruct" + "IfConstruct": "0x564e9cd5a490-IfConstruct" }, { - "id": "0x55cb9d0fc370-IfConstruct", - "Statement": "0x55cb9d0fc440-Statement", + "id": "0x564e9cd5a490-IfConstruct", + "Statement": "0x564e9cd5a560-Statement", "ExecutionPartConstruct": [ - "0x55cb9d0fb240-ExecutionPartConstruct", - "0x55cb9d0fc320-ExecutionPartConstruct" + "0x564e9cda1360-ExecutionPartConstruct", + "0x564e9cda2440-ExecutionPartConstruct" ], - "Statement": "0x55cb9d0fc370-Statement" + "Statement": "0x564e9cd5a490-Statement" }, { - "id": "0x55cb9d0fc440-Statement", - "statement": "0x55cb9d0fc450-IfThenStmt", - "source": "if((a2 - b2) .ne. 0) then" + "id": "0x564e9cd5a560-Statement", + "statement": "0x564e9cd5a570-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" }, { - "id": "0x55cb9d0fc450-IfThenStmt", - "Expr": "0x55cb9d0fb8e0-Expr" + "id": "0x564e9cd5a570-IfThenStmt", + "Expr": "0x564e9cda1a00-Expr" }, { - "id": "0x55cb9d0fb8e0-Expr", + "id": "0x564e9cda1a00-Expr", "variantKey": "NE", - "NE": "0x55cb9d0fb900-NE" + "NE": "0x564e9cda1a20-NE" }, { - "id": "0x55cb9d0fb900-NE", - "left": "0x55cb9d0fb7a0-Expr", - "right": "0x55cb9d0fb6c0-Expr", + "id": "0x564e9cda1a20-NE", + "left": "0x564e9cda18c0-Expr", + "right": "0x564e9cda17e0-Expr", "op": "NE" }, { - "id": "0x55cb9d0fb7a0-Expr", + "id": "0x564e9cda18c0-Expr", "variantKey": "Parentheses", - "Parentheses": "0x55cb9d0fb7c0-Parentheses" + "Parentheses": "0x564e9cda18e0-Parentheses" }, { - "id": "0x55cb9d0fb7c0-Parentheses", - "Expr": "0x55cb9d0fb5e0-Expr", + "id": "0x564e9cda18e0-Parentheses", + "Expr": "0x564e9cda1700-Expr", "op": "PARENTHESES" }, { - "id": "0x55cb9d0fb5e0-Expr", + "id": "0x564e9cda1700-Expr", "variantKey": "Subtract", - "Subtract": "0x55cb9d0fb600-Subtract" + "Subtract": "0x564e9cda1720-Subtract" }, { - "id": "0x55cb9d0fb600-Subtract", - "left": "0x55cb9d0fbaa0-Expr", - "right": "0x55cb9d0fb9c0-Expr", + "id": "0x564e9cda1720-Subtract", + "left": "0x564e9cda1bc0-Expr", + "right": "0x564e9cda1ae0-Expr", "op": "SUBTRACT" }, { - "id": "0x55cb9d0fbaa0-Expr", + "id": "0x564e9cda1bc0-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0fbcf0-Designator" + "Designator": "0x564e9cda1e10-Designator" }, { - "id": "0x55cb9d0fbcf0-Designator", + "id": "0x564e9cda1e10-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fbd00-DataRef" + "DataRef": "0x564e9cda1e20-DataRef" }, { - "id": "0x55cb9d0fbd00-DataRef", + "id": "0x564e9cda1e20-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fbd00-Name" + "Name": "0x564e9cda1e20-Name" }, { - "id": "0x55cb9d0fbd00-Name", + "id": "0x564e9cda1e20-Name", "source": "a2" }, { - "id": "0x55cb9d0fb9c0-Expr", + "id": "0x564e9cda1ae0-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0fbd50-Designator" + "Designator": "0x564e9cda1e70-Designator" }, { - "id": "0x55cb9d0fbd50-Designator", + "id": "0x564e9cda1e70-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fbd60-DataRef" + "DataRef": "0x564e9cda1e80-DataRef" }, { - "id": "0x55cb9d0fbd60-DataRef", + "id": "0x564e9cda1e80-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fbd60-Name" + "Name": "0x564e9cda1e80-Name" }, { - "id": "0x55cb9d0fbd60-Name", + "id": "0x564e9cda1e80-Name", "source": "b2" }, { - "id": "0x55cb9d0fb6c0-Expr", + "id": "0x564e9cda17e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0fb6e0-LiteralConstant" + "LiteralConstant": "0x564e9cda1800-LiteralConstant" }, { - "id": "0x55cb9d0fb6e0-LiteralConstant", + "id": "0x564e9cda1800-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55cb9d0fb6e0-IntLiteralConstant" + "IntLiteralConstant": "0x564e9cda1800-IntLiteralConstant" }, { - "id": "0x55cb9d0fb6e0-IntLiteralConstant", + "id": "0x564e9cda1800-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55cb9d0fc428-ExecutionPartConstruct" + "id": "0x564e9cd5a548-ExecutionPartConstruct" }, { - "id": "0x55cb9d0fb240-ExecutionPartConstruct", + "id": "0x564e9cda1360-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fb240-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda1360-ExecutableConstruct" }, { - "id": "0x55cb9d0fb240-ExecutableConstruct", + "id": "0x564e9cda1360-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0fb240-Statement" + "Statement": "0x564e9cda1360-Statement" }, { - "id": "0x55cb9d0fb240-Statement", - "statement": "0x55cb9d0fb250-ActionStmt", + "id": "0x564e9cda1360-Statement", + "statement": "0x564e9cda1370-ActionStmt", "source": "ok = .false." }, { - "id": "0x55cb9d0fb250-ActionStmt", + "id": "0x564e9cda1370-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55cb9d0fbbe0-AssignmentStmt" + "AssignmentStmt": "0x564e9cda1d00-AssignmentStmt" }, { - "id": "0x55cb9d0fbbe0-AssignmentStmt", - "Variable": "0x55cb9d0fbcc0-Variable", - "Expr": "0x55cb9d0fbbf0-Expr" + "id": "0x564e9cda1d00-AssignmentStmt", + "Variable": "0x564e9cda1de0-Variable", + "Expr": "0x564e9cda1d10-Expr" }, { - "id": "0x55cb9d0fbcc0-Variable", + "id": "0x564e9cda1de0-Variable", "variantKey": "Designator", - "Designator": "0x55cb9d0f7160-Designator" + "Designator": "0x564e9cd9d2f0-Designator" }, { - "id": "0x55cb9d0f7160-Designator", + "id": "0x564e9cd9d2f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f7170-DataRef" + "DataRef": "0x564e9cd9d300-DataRef" }, { - "id": "0x55cb9d0f7170-DataRef", + "id": "0x564e9cd9d300-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f7170-Name" + "Name": "0x564e9cd9d300-Name" }, { - "id": "0x55cb9d0f7170-Name", + "id": "0x564e9cd9d300-Name", "source": "ok" }, { - "id": "0x55cb9d0fbbf0-Expr", + "id": "0x564e9cda1d10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0fbc10-LiteralConstant" + "LiteralConstant": "0x564e9cda1d30-LiteralConstant" }, { - "id": "0x55cb9d0fbc10-LiteralConstant", + "id": "0x564e9cda1d30-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x55cb9d0fbc10-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x564e9cda1d30-LogicalLiteralConstant" }, { - "id": "0x55cb9d0fbc10-LogicalLiteralConstant", + "id": "0x564e9cda1d30-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x55cb9d0fc320-ExecutionPartConstruct", + "id": "0x564e9cda2440-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fc320-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda2440-ExecutableConstruct" }, { - "id": "0x55cb9d0fc320-ExecutableConstruct", + "id": "0x564e9cda2440-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0fc320-Statement" + "Statement": "0x564e9cda2440-Statement" }, { - "id": "0x55cb9d0fc320-Statement", - "statement": "0x55cb9d0fc330-ActionStmt", - "source": "print *, \"TEST2-NG =>\", a2 - b2" + "id": "0x564e9cda2440-Statement", + "statement": "0x564e9cda2450-ActionStmt", + "source": "print *,\"TEST2-NG =>\",a2-b2" }, { - "id": "0x55cb9d0fc330-ActionStmt", + "id": "0x564e9cda2450-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55cb9d0fc210-PrintStmt" + "PrintStmt": "0x564e9cda2330-PrintStmt" }, { - "id": "0x55cb9d0fc210-PrintStmt", - "Format": "0x55cb9d0fc228-Format", + "id": "0x564e9cda2330-PrintStmt", + "Format": "0x564e9cda2348-Format", "OutputItem": [ - "0x55cb9d0fc130-OutputItem", - "0x55cb9d0fc040-OutputItem" + "0x564e9cda2250-OutputItem", + "0x564e9cda2160-OutputItem" ] }, { - "id": "0x55cb9d0fc228-Format", + "id": "0x564e9cda2348-Format", "variantKey": "Star", - "Star": "0x55cb9d0fc228-Star" + "Star": "0x564e9cda2348-Star" }, { - "id": "0x55cb9d0fc228-Star" + "id": "0x564e9cda2348-Star" }, { - "id": "0x55cb9d0fc130-OutputItem", + "id": "0x564e9cda2250-OutputItem", "variantKey": "Expr", - "Expr": "0x55cb9d0fc130-Expr" + "Expr": "0x564e9cda2250-Expr" }, { - "id": "0x55cb9d0fc130-Expr", + "id": "0x564e9cda2250-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0fc150-LiteralConstant" + "LiteralConstant": "0x564e9cda2270-LiteralConstant" }, { - "id": "0x55cb9d0fc150-LiteralConstant", + "id": "0x564e9cda2270-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55cb9d0fc150-CharLiteralConstant" + "CharLiteralConstant": "0x564e9cda2270-CharLiteralConstant" }, { - "id": "0x55cb9d0fc150-CharLiteralConstant", + "id": "0x564e9cda2270-CharLiteralConstant", "string": "TEST2-NG =>" }, { - "id": "0x55cb9d0fc040-OutputItem", + "id": "0x564e9cda2160-OutputItem", "variantKey": "Expr", - "Expr": "0x55cb9d0fc040-Expr" + "Expr": "0x564e9cda2160-Expr" }, { - "id": "0x55cb9d0fc040-Expr", + "id": "0x564e9cda2160-Expr", "variantKey": "Subtract", - "Subtract": "0x55cb9d0fc060-Subtract" + "Subtract": "0x564e9cda2180-Subtract" }, { - "id": "0x55cb9d0fc060-Subtract", - "left": "0x55cb9d0fbf50-Expr", - "right": "0x55cb9d0fbe70-Expr", + "id": "0x564e9cda2180-Subtract", + "left": "0x564e9cda2070-Expr", + "right": "0x564e9cda1f90-Expr", "op": "SUBTRACT" }, { - "id": "0x55cb9d0fbf50-Expr", + "id": "0x564e9cda2070-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0fbb80-Designator" + "Designator": "0x564e9cda1ca0-Designator" }, { - "id": "0x55cb9d0fbb80-Designator", + "id": "0x564e9cda1ca0-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fbb90-DataRef" + "DataRef": "0x564e9cda1cb0-DataRef" }, { - "id": "0x55cb9d0fbb90-DataRef", + "id": "0x564e9cda1cb0-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fbb90-Name" + "Name": "0x564e9cda1cb0-Name" }, { - "id": "0x55cb9d0fbb90-Name", + "id": "0x564e9cda1cb0-Name", "source": "a2" }, { - "id": "0x55cb9d0fbe70-Expr", + "id": "0x564e9cda1f90-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0fbe10-Designator" + "Designator": "0x564e9cda1f30-Designator" }, { - "id": "0x55cb9d0fbe10-Designator", + "id": "0x564e9cda1f30-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0fbe20-DataRef" + "DataRef": "0x564e9cda1f40-DataRef" }, { - "id": "0x55cb9d0fbe20-DataRef", + "id": "0x564e9cda1f40-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0fbe20-Name" + "Name": "0x564e9cda1f40-Name" }, { - "id": "0x55cb9d0fbe20-Name", + "id": "0x564e9cda1f40-Name", "source": "b2" }, { - "id": "0x55cb9d0fc370-Statement", - "statement": "0x55cb9d0fc380-EndIfStmt", - "source": "end if" + "id": "0x564e9cd5a490-Statement", + "statement": "0x564e9cd5a4a0-EndIfStmt", + "source": "endif" }, { - "id": "0x55cb9d0fc380-EndIfStmt" + "id": "0x564e9cd5a4a0-EndIfStmt" }, { - "id": "0x55cb9d0fb010-ExecutionPartConstruct", + "id": "0x564e9cda1130-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fb010-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda1130-ExecutableConstruct" }, { - "id": "0x55cb9d0fb010-ExecutableConstruct", + "id": "0x564e9cda1130-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x55cb9d0fc870-IfConstruct" + "IfConstruct": "0x564e9cda2870-IfConstruct" }, { - "id": "0x55cb9d0fc870-IfConstruct", - "Statement": "0x55cb9d0fc940-Statement", + "id": "0x564e9cda2870-IfConstruct", + "Statement": "0x564e9cda2940-Statement", "ExecutionPartConstruct": [ - "0x55cb9d0fb530-ExecutionPartConstruct" + "0x564e9cda1650-ExecutionPartConstruct" ], - "Statement": "0x55cb9d0fc870-Statement" + "Statement": "0x564e9cda2870-Statement" }, { - "id": "0x55cb9d0fc940-Statement", - "statement": "0x55cb9d0fc950-IfThenStmt", + "id": "0x564e9cda2940-Statement", + "statement": "0x564e9cda2950-IfThenStmt", "source": "if(ok) then" }, { - "id": "0x55cb9d0fc950-IfThenStmt", - "Expr": "0x55cb9d0fc490-Expr" + "id": "0x564e9cda2950-IfThenStmt", + "Expr": "0x564e9cda2490-Expr" }, { - "id": "0x55cb9d0fc490-Expr", + "id": "0x564e9cda2490-Expr", "variantKey": "Designator", - "Designator": "0x55cb9d0f65b0-Designator" + "Designator": "0x564e9cd9d060-Designator" }, { - "id": "0x55cb9d0f65b0-Designator", + "id": "0x564e9cd9d060-Designator", "variantKey": "DataRef", - "DataRef": "0x55cb9d0f65c0-DataRef" + "DataRef": "0x564e9cd9d070-DataRef" }, { - "id": "0x55cb9d0f65c0-DataRef", + "id": "0x564e9cd9d070-DataRef", "variantKey": "Name", - "Name": "0x55cb9d0f65c0-Name" + "Name": "0x564e9cd9d070-Name" }, { - "id": "0x55cb9d0f65c0-Name", + "id": "0x564e9cd9d070-Name", "source": "ok" }, { - "id": "0x55cb9d0fc928-ExecutionPartConstruct" + "id": "0x564e9cda2928-ExecutionPartConstruct" }, { - "id": "0x55cb9d0fb530-ExecutionPartConstruct", + "id": "0x564e9cda1650-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55cb9d0fb530-ExecutableConstruct" + "ExecutableConstruct": "0x564e9cda1650-ExecutableConstruct" }, { - "id": "0x55cb9d0fb530-ExecutableConstruct", + "id": "0x564e9cda1650-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55cb9d0fb530-Statement" + "Statement": "0x564e9cda1650-Statement" }, { - "id": "0x55cb9d0fb530-Statement", - "statement": "0x55cb9d0fb540-ActionStmt", - "source": "print *, \"OK\"" + "id": "0x564e9cda1650-Statement", + "statement": "0x564e9cda1660-ActionStmt", + "source": "print *,\"OK\"" }, { - "id": "0x55cb9d0fb540-ActionStmt", + "id": "0x564e9cda1660-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55cb9d0fc770-PrintStmt" + "PrintStmt": "0x564e9cda2770-PrintStmt" }, { - "id": "0x55cb9d0fc770-PrintStmt", - "Format": "0x55cb9d0fc788-Format", + "id": "0x564e9cda2770-PrintStmt", + "Format": "0x564e9cda2788-Format", "OutputItem": [ - "0x55cb9d0fc690-OutputItem" + "0x564e9cda2690-OutputItem" ] }, { - "id": "0x55cb9d0fc788-Format", + "id": "0x564e9cda2788-Format", "variantKey": "Star", - "Star": "0x55cb9d0fc788-Star" + "Star": "0x564e9cda2788-Star" }, { - "id": "0x55cb9d0fc788-Star" + "id": "0x564e9cda2788-Star" }, { - "id": "0x55cb9d0fc690-OutputItem", + "id": "0x564e9cda2690-OutputItem", "variantKey": "Expr", - "Expr": "0x55cb9d0fc690-Expr" + "Expr": "0x564e9cda2690-Expr" }, { - "id": "0x55cb9d0fc690-Expr", + "id": "0x564e9cda2690-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55cb9d0fc6b0-LiteralConstant" + "LiteralConstant": "0x564e9cda26b0-LiteralConstant" }, { - "id": "0x55cb9d0fc6b0-LiteralConstant", + "id": "0x564e9cda26b0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x55cb9d0fc6b0-CharLiteralConstant" + "CharLiteralConstant": "0x564e9cda26b0-CharLiteralConstant" }, { - "id": "0x55cb9d0fc6b0-CharLiteralConstant", + "id": "0x564e9cda26b0-CharLiteralConstant", "string": "OK" }, { - "id": "0x55cb9d0fc870-Statement", - "statement": "0x55cb9d0fc880-EndIfStmt", - "source": "end if" + "id": "0x564e9cda2870-Statement", + "statement": "0x564e9cda2880-EndIfStmt", + "source": "endif" }, { - "id": "0x55cb9d0fc880-EndIfStmt" + "id": "0x564e9cda2880-EndIfStmt" }, { - "id": "0x55cb9d0fca20-Statement", - "statement": "0x55cb9d0fca30-EndProgramStmt", + "id": "0x564e9cd9a960-Statement", + "statement": "0x564e9cd9a970-EndProgramStmt", "source": "end" }, { - "id": "0x55cb9d0fca30-EndProgramStmt" + "id": "0x564e9cd9a970-EndProgramStmt" } ], "enums": { From 863919798df139261a7cb298061054ec5449fd52 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:21:52 +0100 Subject: [PATCH 022/132] Fix new Fujitsu test source files --- .../fortran/parser/fujitsu/0000/0000_0002.expected.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 8e200279..ec899768 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 @@ -9,7 +9,7 @@ a2 = b1 b2 = a1 -IF ((a2 - b2) .ne. 0) THEN +IF ((a2 - b2) /= 0) THEN ok = .false. PRINT *, "TEST1-NG =>", a2 - b2 END IF @@ -19,7 +19,7 @@ a2 = b1 b2 = a1 -IF ((a2 - b2) .ne. 0) THEN +IF ((a2 - b2) /= 0) THEN ok = .false. PRINT *, "TEST2-NG =>", a2 - b2 END IF From ff93b113120fbdd7102e7482b7b7d468019168cb Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:26:19 +0100 Subject: [PATCH 023/132] Add a new Fujitsu test case --- .../fujitsu/0000/0000_0003.expected.f90 | 30 + .../fortran/parser/fujitsu/0000/0000_0003.f90 | 30 + .../parser/fujitsu/0000/0000_0003.json | 1801 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1873 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.json 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 new file mode 100644 index 00000000..35cdf518 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.expected.f90 @@ -0,0 +1,30 @@ +integer*1 :: a1, a2 +real*4 :: b1, b2 +logical :: ok + +ok = .true. + +b1 = 127.1 +a1 = 127 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST1-NG =>", a2 - b2 +END IF + +b1 = -127.1 +a1 = -127 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST2-NG =>", a2 - b2 +END IF + +IF (ok) THEN + PRINT *, "OK" +END IF +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.f90 new file mode 100644 index 00000000..53fbe980 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.f90 @@ -0,0 +1,30 @@ +integer*1 a1, a2 +real*4 b1, b2 +logical ok + +ok = .true. + +b1 = 127.1 +a1 = 127 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST1-NG =>",a2-b2 +endif + +b1 = -127.1 +a1 = -127 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST2-NG =>",a2-b2 +endif + +if (ok) then + print *,"OK" +endif +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.json new file mode 100644 index 00000000..94c7057f --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0003.json @@ -0,0 +1,1801 @@ +{ + "nodes": [ + { + "id": "0x5640995dacc0-Program", + "ProgramUnit": [ + "0x564099603660-ProgramUnit" + ] + }, + { + "id": "0x564099603660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x564099604960-MainProgram" + }, + { + "id": "0x564099604960-MainProgram", + "SpecificationPart": "0x564099604a00-SpecificationPart", + "ExecutionPart": "0x5640996049e8-ExecutionPart", + "Statement": "0x564099604960-Statement" + }, + { + "id": "0x564099604a00-SpecificationPart", + "ImplicitPart": "0x564099604a18-ImplicitPart", + "DeclarationConstruct": [ + "0x5640995e15b0-DeclarationConstruct", + "0x5640995e1240-DeclarationConstruct", + "0x5640995b3140-DeclarationConstruct" + ] + }, + { + "id": "0x564099604a18-ImplicitPart" + }, + { + "id": "0x5640995e15b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5640995e15b0-SpecificationConstruct" + }, + { + "id": "0x5640995e15b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5640995e15b0-Statement" + }, + { + "id": "0x5640995e15b0-Statement", + "statement": "0x5640995e9250-TypeDeclarationStmt", + "source": "integer*1 a1, a2" + }, + { + "id": "0x5640995e9250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5640995e9280-DeclarationTypeSpec", + "EntityDecl": [ + "0x564099605e40-EntityDecl", + "0x5640995b3050-EntityDecl" + ] + }, + { + "id": "0x5640995e9280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5640995e9280-IntrinsicTypeSpec" + }, + { + "id": "0x5640995e9280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5640995e9280-IntegerTypeSpec" + }, + { + "id": "0x5640995e9280-IntegerTypeSpec", + "KindSelector": "0x5640995e9280-KindSelector" + }, + { + "id": "0x5640995e9280-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x5640995e9280-StarSize" + }, + { + "id": "0x5640995e9280-StarSize", + "uint64_t": "1" + }, + { + "id": "0x564099605e40-EntityDecl", + "Name": "0x564099605ef8-Name" + }, + { + "id": "0x564099605ef8-Name", + "source": "a1" + }, + { + "id": "0x5640995b3050-EntityDecl", + "Name": "0x5640995b3108-Name" + }, + { + "id": "0x5640995b3108-Name", + "source": "a2" + }, + { + "id": "0x5640995e1240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5640995e1240-SpecificationConstruct" + }, + { + "id": "0x5640995e1240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5640995e1240-Statement" + }, + { + "id": "0x5640995e1240-Statement", + "statement": "0x564099605c10-TypeDeclarationStmt", + "source": "real*4 b1, b2" + }, + { + "id": "0x564099605c10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564099605c40-DeclarationTypeSpec", + "EntityDecl": [ + "0x564099605200-EntityDecl", + "0x564099605110-EntityDecl" + ] + }, + { + "id": "0x564099605c40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x564099605c40-IntrinsicTypeSpec" + }, + { + "id": "0x564099605c40-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x564099605c40-Real" + }, + { + "id": "0x564099605c40-Real", + "KindSelector": "0x564099605c40-KindSelector" + }, + { + "id": "0x564099605c40-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x564099605c40-StarSize" + }, + { + "id": "0x564099605c40-StarSize", + "uint64_t": "4" + }, + { + "id": "0x564099605200-EntityDecl", + "Name": "0x5640996052b8-Name" + }, + { + "id": "0x5640996052b8-Name", + "source": "b1" + }, + { + "id": "0x564099605110-EntityDecl", + "Name": "0x5640996051c8-Name" + }, + { + "id": "0x5640996051c8-Name", + "source": "b2" + }, + { + "id": "0x5640995b3140-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5640995b3140-SpecificationConstruct" + }, + { + "id": "0x5640995b3140-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5640995b3140-Statement" + }, + { + "id": "0x5640995b3140-Statement", + "statement": "0x564099605c90-TypeDeclarationStmt", + "source": "logical ok" + }, + { + "id": "0x564099605c90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x564099605cc0-DeclarationTypeSpec", + "EntityDecl": [ + "0x564099605370-EntityDecl" + ] + }, + { + "id": "0x564099605cc0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x564099605cc0-IntrinsicTypeSpec" + }, + { + "id": "0x564099605cc0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x564099605cc0-Logical" + }, + { + "id": "0x564099605cc0-Logical" + }, + { + "id": "0x564099605370-EntityDecl", + "Name": "0x564099605428-Name" + }, + { + "id": "0x564099605428-Name", + "source": "ok" + }, + { + "id": "0x5640996049e8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x564099606a70-ExecutionPartConstruct", + "0x564099606430-ExecutionPartConstruct", + "0x564099606600-ExecutionPartConstruct", + "0x564099607010-ExecutionPartConstruct", + "0x5640996072a0-ExecutionPartConstruct", + "0x564099607360-ExecutionPartConstruct", + "0x5640996079c0-ExecutionPartConstruct", + "0x5640996075e0-ExecutionPartConstruct", + "0x56409960b300-ExecutionPartConstruct", + "0x56409960b530-ExecutionPartConstruct", + "0x56409960b5f0-ExecutionPartConstruct", + "0x56409960b130-ExecutionPartConstruct" + ] + }, + { + "id": "0x5640996049e8-ExecutionPartConstruct" + }, + { + "id": "0x564099606a70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x564099606a70-ExecutableConstruct" + }, + { + "id": "0x564099606a70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x564099606a70-Statement" + }, + { + "id": "0x564099606a70-Statement", + "statement": "0x564099606a80-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x564099606a80-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x564099606950-AssignmentStmt" + }, + { + "id": "0x564099606950-AssignmentStmt", + "Variable": "0x564099606a30-Variable", + "Expr": "0x564099606960-Expr" + }, + { + "id": "0x564099606a30-Variable", + "variantKey": "Designator", + "Designator": "0x5640995b3190-Designator" + }, + { + "id": "0x5640995b3190-Designator", + "variantKey": "DataRef", + "DataRef": "0x5640995b31a0-DataRef" + }, + { + "id": "0x5640995b31a0-DataRef", + "variantKey": "Name", + "Name": "0x5640995b31a0-Name" + }, + { + "id": "0x5640995b31a0-Name", + "source": "ok" + }, + { + "id": "0x564099606960-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x564099606980-LiteralConstant" + }, + { + "id": "0x564099606980-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x564099606980-LogicalLiteralConstant" + }, + { + "id": "0x564099606980-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x564099606430-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x564099606430-ExecutableConstruct" + }, + { + "id": "0x564099606430-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x564099606430-Statement" + }, + { + "id": "0x564099606430-Statement", + "statement": "0x564099606440-ActionStmt", + "source": "b1 = 127.1" + }, + { + "id": "0x564099606440-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x564099606310-AssignmentStmt" + }, + { + "id": "0x564099606310-AssignmentStmt", + "Variable": "0x5640996063f0-Variable", + "Expr": "0x564099606320-Expr" + }, + { + "id": "0x5640996063f0-Variable", + "variantKey": "Designator", + "Designator": "0x564099605730-Designator" + }, + { + "id": "0x564099605730-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099605740-DataRef" + }, + { + "id": "0x564099605740-DataRef", + "variantKey": "Name", + "Name": "0x564099605740-Name" + }, + { + "id": "0x564099605740-Name", + "source": "b1" + }, + { + "id": "0x564099606320-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x564099606340-LiteralConstant" + }, + { + "id": "0x564099606340-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x564099606340-RealLiteralConstant" + }, + { + "id": "0x564099606340-RealLiteralConstant", + "real": "0x564099606340-Real" + }, + { + "id": "0x564099606340-Real", + "source": "127.1" + }, + { + "id": "0x564099606600-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x564099606600-ExecutableConstruct" + }, + { + "id": "0x564099606600-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x564099606600-Statement" + }, + { + "id": "0x564099606600-Statement", + "statement": "0x564099606610-ActionStmt", + "source": "a1 = 127" + }, + { + "id": "0x564099606610-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5640996064e0-AssignmentStmt" + }, + { + "id": "0x5640996064e0-AssignmentStmt", + "Variable": "0x5640996065c0-Variable", + "Expr": "0x5640996064f0-Expr" + }, + { + "id": "0x5640996065c0-Variable", + "variantKey": "Designator", + "Designator": "0x564099606ac0-Designator" + }, + { + "id": "0x564099606ac0-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099606ad0-DataRef" + }, + { + "id": "0x564099606ad0-DataRef", + "variantKey": "Name", + "Name": "0x564099606ad0-Name" + }, + { + "id": "0x564099606ad0-Name", + "source": "a1" + }, + { + "id": "0x5640996064f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x564099606510-LiteralConstant" + }, + { + "id": "0x564099606510-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x564099606510-IntLiteralConstant" + }, + { + "id": "0x564099606510-IntLiteralConstant", + "CharBlock": "127" + }, + { + "id": "0x564099607010-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x564099607010-ExecutableConstruct" + }, + { + "id": "0x564099607010-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x564099607010-Statement" + }, + { + "id": "0x564099607010-Statement", + "statement": "0x564099607020-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x564099607020-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x564099606e80-AssignmentStmt" + }, + { + "id": "0x564099606e80-AssignmentStmt", + "Variable": "0x564099606f60-Variable", + "Expr": "0x564099606e90-Expr" + }, + { + "id": "0x564099606f60-Variable", + "variantKey": "Designator", + "Designator": "0x564099606480-Designator" + }, + { + "id": "0x564099606480-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099606490-DataRef" + }, + { + "id": "0x564099606490-DataRef", + "variantKey": "Name", + "Name": "0x564099606490-Name" + }, + { + "id": "0x564099606490-Name", + "source": "a2" + }, + { + "id": "0x564099606e90-Expr", + "variantKey": "Designator", + "Designator": "0x564099606d40-Designator" + }, + { + "id": "0x564099606d40-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099606d50-DataRef" + }, + { + "id": "0x564099606d50-DataRef", + "variantKey": "Name", + "Name": "0x564099606d50-Name" + }, + { + "id": "0x564099606d50-Name", + "source": "b1" + }, + { + "id": "0x5640996072a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5640996072a0-ExecutableConstruct" + }, + { + "id": "0x5640996072a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5640996072a0-Statement" + }, + { + "id": "0x5640996072a0-Statement", + "statement": "0x5640996072b0-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x5640996072b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x564099607180-AssignmentStmt" + }, + { + "id": "0x564099607180-AssignmentStmt", + "Variable": "0x564099607260-Variable", + "Expr": "0x564099607190-Expr" + }, + { + "id": "0x564099607260-Variable", + "variantKey": "Designator", + "Designator": "0x564099606650-Designator" + }, + { + "id": "0x564099606650-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099606660-DataRef" + }, + { + "id": "0x564099606660-DataRef", + "variantKey": "Name", + "Name": "0x564099606660-Name" + }, + { + "id": "0x564099606660-Name", + "source": "b2" + }, + { + "id": "0x564099607190-Expr", + "variantKey": "Designator", + "Designator": "0x564099607120-Designator" + }, + { + "id": "0x564099607120-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099607130-DataRef" + }, + { + "id": "0x564099607130-DataRef", + "variantKey": "Name", + "Name": "0x564099607130-Name" + }, + { + "id": "0x564099607130-Name", + "source": "a1" + }, + { + "id": "0x564099607360-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x564099607360-ExecutableConstruct" + }, + { + "id": "0x564099607360-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x564099606050-IfConstruct" + }, + { + "id": "0x564099606050-IfConstruct", + "Statement": "0x564099606120-Statement", + "ExecutionPartConstruct": [ + "0x5640996070d0-ExecutionPartConstruct", + "0x56409960ac90-ExecutionPartConstruct" + ], + "Statement": "0x564099606050-Statement" + }, + { + "id": "0x564099606120-Statement", + "statement": "0x564099606130-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x564099606130-IfThenStmt", + "Expr": "0x564099607bd0-Expr" + }, + { + "id": "0x564099607bd0-Expr", + "variantKey": "NE", + "NE": "0x564099607bf0-NE" + }, + { + "id": "0x564099607bf0-NE", + "left": "0x564099607860-Expr", + "right": "0x564099607780-Expr", + "op": "NE" + }, + { + "id": "0x564099607860-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x564099607880-Parentheses" + }, + { + "id": "0x564099607880-Parentheses", + "Expr": "0x5640996076a0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5640996076a0-Expr", + "variantKey": "Subtract", + "Subtract": "0x5640996076c0-Subtract" + }, + { + "id": "0x5640996076c0-Subtract", + "left": "0x564099607d90-Expr", + "right": "0x564099607cb0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x564099607d90-Expr", + "variantKey": "Designator", + "Designator": "0x564099608830-Designator" + }, + { + "id": "0x564099608830-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099608840-DataRef" + }, + { + "id": "0x564099608840-DataRef", + "variantKey": "Name", + "Name": "0x564099608840-Name" + }, + { + "id": "0x564099608840-Name", + "source": "a2" + }, + { + "id": "0x564099607cb0-Expr", + "variantKey": "Designator", + "Designator": "0x564099608a50-Designator" + }, + { + "id": "0x564099608a50-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099608a60-DataRef" + }, + { + "id": "0x564099608a60-DataRef", + "variantKey": "Name", + "Name": "0x564099608a60-Name" + }, + { + "id": "0x564099608a60-Name", + "source": "b2" + }, + { + "id": "0x564099607780-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5640996077a0-LiteralConstant" + }, + { + "id": "0x5640996077a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5640996077a0-IntLiteralConstant" + }, + { + "id": "0x5640996077a0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x564099606108-ExecutionPartConstruct" + }, + { + "id": "0x5640996070d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5640996070d0-ExecutableConstruct" + }, + { + "id": "0x5640996070d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5640996070d0-Statement" + }, + { + "id": "0x5640996070d0-Statement", + "statement": "0x5640996070e0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x5640996070e0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x564099607fb0-AssignmentStmt" + }, + { + "id": "0x564099607fb0-AssignmentStmt", + "Variable": "0x564099608090-Variable", + "Expr": "0x564099607fc0-Expr" + }, + { + "id": "0x564099608090-Variable", + "variantKey": "Designator", + "Designator": "0x5640996056d0-Designator" + }, + { + "id": "0x5640996056d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5640996056e0-DataRef" + }, + { + "id": "0x5640996056e0-DataRef", + "variantKey": "Name", + "Name": "0x5640996056e0-Name" + }, + { + "id": "0x5640996056e0-Name", + "source": "ok" + }, + { + "id": "0x564099607fc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x564099607fe0-LiteralConstant" + }, + { + "id": "0x564099607fe0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x564099607fe0-LogicalLiteralConstant" + }, + { + "id": "0x564099607fe0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x56409960ac90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960ac90-ExecutableConstruct" + }, + { + "id": "0x56409960ac90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56409960ac90-Statement" + }, + { + "id": "0x56409960ac90-Statement", + "statement": "0x56409960aca0-ActionStmt", + "source": "print *,\"TEST1-NG =>\",a2-b2" + }, + { + "id": "0x56409960aca0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56409960ab80-PrintStmt" + }, + { + "id": "0x56409960ab80-PrintStmt", + "Format": "0x56409960ab98-Format", + "OutputItem": [ + "0x56409960aaa0-OutputItem", + "0x56409960a9b0-OutputItem" + ] + }, + { + "id": "0x56409960ab98-Format", + "variantKey": "Star", + "Star": "0x56409960ab98-Star" + }, + { + "id": "0x56409960ab98-Star" + }, + { + "id": "0x56409960aaa0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56409960aaa0-Expr" + }, + { + "id": "0x56409960aaa0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56409960aac0-LiteralConstant" + }, + { + "id": "0x56409960aac0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56409960aac0-CharLiteralConstant" + }, + { + "id": "0x56409960aac0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x56409960a9b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56409960a9b0-Expr" + }, + { + "id": "0x56409960a9b0-Expr", + "variantKey": "Subtract", + "Subtract": "0x56409960a9d0-Subtract" + }, + { + "id": "0x56409960a9d0-Subtract", + "left": "0x56409960a8c0-Expr", + "right": "0x56409960a7e0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x56409960a8c0-Expr", + "variantKey": "Designator", + "Designator": "0x564099607e70-Designator" + }, + { + "id": "0x564099607e70-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099607e80-DataRef" + }, + { + "id": "0x564099607e80-DataRef", + "variantKey": "Name", + "Name": "0x564099607e80-Name" + }, + { + "id": "0x564099607e80-Name", + "source": "a2" + }, + { + "id": "0x56409960a7e0-Expr", + "variantKey": "Designator", + "Designator": "0x56409960a780-Designator" + }, + { + "id": "0x56409960a780-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960a790-DataRef" + }, + { + "id": "0x56409960a790-DataRef", + "variantKey": "Name", + "Name": "0x56409960a790-Name" + }, + { + "id": "0x56409960a790-Name", + "source": "b2" + }, + { + "id": "0x564099606050-Statement", + "statement": "0x564099606060-EndIfStmt", + "source": "endif" + }, + { + "id": "0x564099606060-EndIfStmt" + }, + { + "id": "0x5640996079c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5640996079c0-ExecutableConstruct" + }, + { + "id": "0x5640996079c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5640996079c0-Statement" + }, + { + "id": "0x5640996079c0-Statement", + "statement": "0x5640996079d0-ActionStmt", + "source": "b1 = -127.1" + }, + { + "id": "0x5640996079d0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56409960adc0-AssignmentStmt" + }, + { + "id": "0x56409960adc0-AssignmentStmt", + "Variable": "0x56409960aea0-Variable", + "Expr": "0x56409960add0-Expr" + }, + { + "id": "0x56409960aea0-Variable", + "variantKey": "Designator", + "Designator": "0x5640995daaf0-Designator" + }, + { + "id": "0x5640995daaf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5640995dab00-DataRef" + }, + { + "id": "0x5640995dab00-DataRef", + "variantKey": "Name", + "Name": "0x5640995dab00-Name" + }, + { + "id": "0x5640995dab00-Name", + "source": "b1" + }, + { + "id": "0x56409960add0-Expr", + "variantKey": "Negate", + "Negate": "0x56409960adf0-Negate" + }, + { + "id": "0x56409960adf0-Negate", + "Expr": "0x56409960ace0-Expr", + "op": "NEGATE" + }, + { + "id": "0x56409960ace0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56409960ad00-LiteralConstant" + }, + { + "id": "0x56409960ad00-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56409960ad00-RealLiteralConstant" + }, + { + "id": "0x56409960ad00-RealLiteralConstant", + "real": "0x56409960ad00-Real" + }, + { + "id": "0x56409960ad00-Real", + "source": "127.1" + }, + { + "id": "0x5640996075e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5640996075e0-ExecutableConstruct" + }, + { + "id": "0x5640996075e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5640996075e0-Statement" + }, + { + "id": "0x5640996075e0-Statement", + "statement": "0x5640996075f0-ActionStmt", + "source": "a1 = -127" + }, + { + "id": "0x5640996075f0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56409960afb0-AssignmentStmt" + }, + { + "id": "0x56409960afb0-AssignmentStmt", + "Variable": "0x56409960b090-Variable", + "Expr": "0x56409960afc0-Expr" + }, + { + "id": "0x56409960b090-Variable", + "variantKey": "Designator", + "Designator": "0x5640996073b0-Designator" + }, + { + "id": "0x5640996073b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5640996073c0-DataRef" + }, + { + "id": "0x5640996073c0-DataRef", + "variantKey": "Name", + "Name": "0x5640996073c0-Name" + }, + { + "id": "0x5640996073c0-Name", + "source": "a1" + }, + { + "id": "0x56409960afc0-Expr", + "variantKey": "Negate", + "Negate": "0x56409960afe0-Negate" + }, + { + "id": "0x56409960afe0-Negate", + "Expr": "0x56409960aed0-Expr", + "op": "NEGATE" + }, + { + "id": "0x56409960aed0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56409960aef0-LiteralConstant" + }, + { + "id": "0x56409960aef0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56409960aef0-IntLiteralConstant" + }, + { + "id": "0x56409960aef0-IntLiteralConstant", + "CharBlock": "127" + }, + { + "id": "0x56409960b300-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960b300-ExecutableConstruct" + }, + { + "id": "0x56409960b300-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56409960b300-Statement" + }, + { + "id": "0x56409960b300-Statement", + "statement": "0x56409960b310-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x56409960b310-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56409960b1e0-AssignmentStmt" + }, + { + "id": "0x56409960b1e0-AssignmentStmt", + "Variable": "0x56409960b2c0-Variable", + "Expr": "0x56409960b1f0-Expr" + }, + { + "id": "0x56409960b2c0-Variable", + "variantKey": "Designator", + "Designator": "0x56409960a720-Designator" + }, + { + "id": "0x56409960a720-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960a730-DataRef" + }, + { + "id": "0x56409960a730-DataRef", + "variantKey": "Name", + "Name": "0x56409960a730-Name" + }, + { + "id": "0x56409960a730-Name", + "source": "a2" + }, + { + "id": "0x56409960b1f0-Expr", + "variantKey": "Designator", + "Designator": "0x56409960b180-Designator" + }, + { + "id": "0x56409960b180-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960b190-DataRef" + }, + { + "id": "0x56409960b190-DataRef", + "variantKey": "Name", + "Name": "0x56409960b190-Name" + }, + { + "id": "0x56409960b190-Name", + "source": "b1" + }, + { + "id": "0x56409960b530-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960b530-ExecutableConstruct" + }, + { + "id": "0x56409960b530-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56409960b530-Statement" + }, + { + "id": "0x56409960b530-Statement", + "statement": "0x56409960b540-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x56409960b540-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56409960b410-AssignmentStmt" + }, + { + "id": "0x56409960b410-AssignmentStmt", + "Variable": "0x56409960b4f0-Variable", + "Expr": "0x56409960b420-Expr" + }, + { + "id": "0x56409960b4f0-Variable", + "variantKey": "Designator", + "Designator": "0x56409960b0c0-Designator" + }, + { + "id": "0x56409960b0c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960b0d0-DataRef" + }, + { + "id": "0x56409960b0d0-DataRef", + "variantKey": "Name", + "Name": "0x56409960b0d0-Name" + }, + { + "id": "0x56409960b0d0-Name", + "source": "b2" + }, + { + "id": "0x56409960b420-Expr", + "variantKey": "Designator", + "Designator": "0x56409960b3b0-Designator" + }, + { + "id": "0x56409960b3b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960b3c0-DataRef" + }, + { + "id": "0x56409960b3c0-DataRef", + "variantKey": "Name", + "Name": "0x56409960b3c0-Name" + }, + { + "id": "0x56409960b3c0-Name", + "source": "a1" + }, + { + "id": "0x56409960b5f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960b5f0-ExecutableConstruct" + }, + { + "id": "0x56409960b5f0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x5640995c4490-IfConstruct" + }, + { + "id": "0x5640995c4490-IfConstruct", + "Statement": "0x5640995c4560-Statement", + "ExecutionPartConstruct": [ + "0x56409960b360-ExecutionPartConstruct", + "0x56409960c440-ExecutionPartConstruct" + ], + "Statement": "0x5640995c4490-Statement" + }, + { + "id": "0x5640995c4560-Statement", + "statement": "0x5640995c4570-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x5640995c4570-IfThenStmt", + "Expr": "0x56409960ba00-Expr" + }, + { + "id": "0x56409960ba00-Expr", + "variantKey": "NE", + "NE": "0x56409960ba20-NE" + }, + { + "id": "0x56409960ba20-NE", + "left": "0x56409960b8c0-Expr", + "right": "0x56409960b7e0-Expr", + "op": "NE" + }, + { + "id": "0x56409960b8c0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x56409960b8e0-Parentheses" + }, + { + "id": "0x56409960b8e0-Parentheses", + "Expr": "0x56409960b700-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x56409960b700-Expr", + "variantKey": "Subtract", + "Subtract": "0x56409960b720-Subtract" + }, + { + "id": "0x56409960b720-Subtract", + "left": "0x56409960bbc0-Expr", + "right": "0x56409960bae0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x56409960bbc0-Expr", + "variantKey": "Designator", + "Designator": "0x56409960be10-Designator" + }, + { + "id": "0x56409960be10-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960be20-DataRef" + }, + { + "id": "0x56409960be20-DataRef", + "variantKey": "Name", + "Name": "0x56409960be20-Name" + }, + { + "id": "0x56409960be20-Name", + "source": "a2" + }, + { + "id": "0x56409960bae0-Expr", + "variantKey": "Designator", + "Designator": "0x56409960be70-Designator" + }, + { + "id": "0x56409960be70-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960be80-DataRef" + }, + { + "id": "0x56409960be80-DataRef", + "variantKey": "Name", + "Name": "0x56409960be80-Name" + }, + { + "id": "0x56409960be80-Name", + "source": "b2" + }, + { + "id": "0x56409960b7e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56409960b800-LiteralConstant" + }, + { + "id": "0x56409960b800-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56409960b800-IntLiteralConstant" + }, + { + "id": "0x56409960b800-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5640995c4548-ExecutionPartConstruct" + }, + { + "id": "0x56409960b360-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960b360-ExecutableConstruct" + }, + { + "id": "0x56409960b360-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56409960b360-Statement" + }, + { + "id": "0x56409960b360-Statement", + "statement": "0x56409960b370-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x56409960b370-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56409960bd00-AssignmentStmt" + }, + { + "id": "0x56409960bd00-AssignmentStmt", + "Variable": "0x56409960bde0-Variable", + "Expr": "0x56409960bd10-Expr" + }, + { + "id": "0x56409960bde0-Variable", + "variantKey": "Designator", + "Designator": "0x5640996072f0-Designator" + }, + { + "id": "0x5640996072f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099607300-DataRef" + }, + { + "id": "0x564099607300-DataRef", + "variantKey": "Name", + "Name": "0x564099607300-Name" + }, + { + "id": "0x564099607300-Name", + "source": "ok" + }, + { + "id": "0x56409960bd10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56409960bd30-LiteralConstant" + }, + { + "id": "0x56409960bd30-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x56409960bd30-LogicalLiteralConstant" + }, + { + "id": "0x56409960bd30-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x56409960c440-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960c440-ExecutableConstruct" + }, + { + "id": "0x56409960c440-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56409960c440-Statement" + }, + { + "id": "0x56409960c440-Statement", + "statement": "0x56409960c450-ActionStmt", + "source": "print *,\"TEST2-NG =>\",a2-b2" + }, + { + "id": "0x56409960c450-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56409960c330-PrintStmt" + }, + { + "id": "0x56409960c330-PrintStmt", + "Format": "0x56409960c348-Format", + "OutputItem": [ + "0x56409960c250-OutputItem", + "0x56409960c160-OutputItem" + ] + }, + { + "id": "0x56409960c348-Format", + "variantKey": "Star", + "Star": "0x56409960c348-Star" + }, + { + "id": "0x56409960c348-Star" + }, + { + "id": "0x56409960c250-OutputItem", + "variantKey": "Expr", + "Expr": "0x56409960c250-Expr" + }, + { + "id": "0x56409960c250-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56409960c270-LiteralConstant" + }, + { + "id": "0x56409960c270-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56409960c270-CharLiteralConstant" + }, + { + "id": "0x56409960c270-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x56409960c160-OutputItem", + "variantKey": "Expr", + "Expr": "0x56409960c160-Expr" + }, + { + "id": "0x56409960c160-Expr", + "variantKey": "Subtract", + "Subtract": "0x56409960c180-Subtract" + }, + { + "id": "0x56409960c180-Subtract", + "left": "0x56409960c070-Expr", + "right": "0x56409960bf90-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x56409960c070-Expr", + "variantKey": "Designator", + "Designator": "0x56409960bca0-Designator" + }, + { + "id": "0x56409960bca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960bcb0-DataRef" + }, + { + "id": "0x56409960bcb0-DataRef", + "variantKey": "Name", + "Name": "0x56409960bcb0-Name" + }, + { + "id": "0x56409960bcb0-Name", + "source": "a2" + }, + { + "id": "0x56409960bf90-Expr", + "variantKey": "Designator", + "Designator": "0x56409960bf30-Designator" + }, + { + "id": "0x56409960bf30-Designator", + "variantKey": "DataRef", + "DataRef": "0x56409960bf40-DataRef" + }, + { + "id": "0x56409960bf40-DataRef", + "variantKey": "Name", + "Name": "0x56409960bf40-Name" + }, + { + "id": "0x56409960bf40-Name", + "source": "b2" + }, + { + "id": "0x5640995c4490-Statement", + "statement": "0x5640995c44a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x5640995c44a0-EndIfStmt" + }, + { + "id": "0x56409960b130-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960b130-ExecutableConstruct" + }, + { + "id": "0x56409960b130-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x56409960c870-IfConstruct" + }, + { + "id": "0x56409960c870-IfConstruct", + "Statement": "0x56409960c940-Statement", + "ExecutionPartConstruct": [ + "0x56409960b650-ExecutionPartConstruct" + ], + "Statement": "0x56409960c870-Statement" + }, + { + "id": "0x56409960c940-Statement", + "statement": "0x56409960c950-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x56409960c950-IfThenStmt", + "Expr": "0x56409960c490-Expr" + }, + { + "id": "0x56409960c490-Expr", + "variantKey": "Designator", + "Designator": "0x564099607060-Designator" + }, + { + "id": "0x564099607060-Designator", + "variantKey": "DataRef", + "DataRef": "0x564099607070-DataRef" + }, + { + "id": "0x564099607070-DataRef", + "variantKey": "Name", + "Name": "0x564099607070-Name" + }, + { + "id": "0x564099607070-Name", + "source": "ok" + }, + { + "id": "0x56409960c928-ExecutionPartConstruct" + }, + { + "id": "0x56409960b650-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56409960b650-ExecutableConstruct" + }, + { + "id": "0x56409960b650-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56409960b650-Statement" + }, + { + "id": "0x56409960b650-Statement", + "statement": "0x56409960b660-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x56409960b660-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56409960c770-PrintStmt" + }, + { + "id": "0x56409960c770-PrintStmt", + "Format": "0x56409960c788-Format", + "OutputItem": [ + "0x56409960c690-OutputItem" + ] + }, + { + "id": "0x56409960c788-Format", + "variantKey": "Star", + "Star": "0x56409960c788-Star" + }, + { + "id": "0x56409960c788-Star" + }, + { + "id": "0x56409960c690-OutputItem", + "variantKey": "Expr", + "Expr": "0x56409960c690-Expr" + }, + { + "id": "0x56409960c690-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56409960c6b0-LiteralConstant" + }, + { + "id": "0x56409960c6b0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56409960c6b0-CharLiteralConstant" + }, + { + "id": "0x56409960c6b0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x56409960c870-Statement", + "statement": "0x56409960c880-EndIfStmt", + "source": "endif" + }, + { + "id": "0x56409960c880-EndIfStmt" + }, + { + "id": "0x564099604960-Statement", + "statement": "0x564099604970-EndProgramStmt", + "source": "end" + }, + { + "id": "0x564099604970-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 6e339cfb..b02c3202 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -430,4 +430,16 @@ void testFujitsu0000_0002Native() { testNative("fujitsu/0000/0000_0002.f90"); } } + + @Test + void testFujitsu0000_0003() { + testJson("fujitsu/0000/0000_0003.json"); + } + + @Test + void testFujitsu0000_0003Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0003.f90"); + } + } } From aaa4c5c303828f4d6580c0b7013447e64d9d0074 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 10:32:05 +0100 Subject: [PATCH 024/132] Add a new Fujitsu test case --- .../fujitsu/0000/0000_0004.expected.f90 | 30 + .../fortran/parser/fujitsu/0000/0000_0004.f90 | 30 + .../parser/fujitsu/0000/0000_0004.json | 1801 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1873 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.json 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 new file mode 100644 index 00000000..3e43f8d0 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.expected.f90 @@ -0,0 +1,30 @@ +integer*1 :: a1, a2 +real*8 :: b1, b2 +logical :: ok + +ok = .true. + +b1 = 1.1 +a1 = 1 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST1-NG =>", a2 - b2 +END IF + +b1 = -1.1 +a1 = -1 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST2-NG =>", a2 - b2 +END IF + +IF (ok) THEN + PRINT *, "OK" +END IF +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.f90 new file mode 100644 index 00000000..6d22c792 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.f90 @@ -0,0 +1,30 @@ +integer*1 a1, a2 +real*8 b1, b2 +logical ok + +ok = .true. + +b1 = 1.1 +a1 = 1 +a2 = b1 +b2 = a1 + +if ((a2 - b2) .ne. 0) then + ok = .false. + print *, "TEST1-NG =>", a2 - b2 +endif + +b1 = -1.1 +a1 = -1 +a2 = b1 +b2 = a1 + +if ((a2 - b2) .ne. 0) then + ok = .false. + print *, "TEST2-NG =>", a2 - b2 +endif + +if (ok) then + print *, "OK" +endif +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.json new file mode 100644 index 00000000..674e1b60 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0004.json @@ -0,0 +1,1801 @@ +{ + "nodes": [ + { + "id": "0x55e9a61d7cc0-Program", + "ProgramUnit": [ + "0x55e9a6200660-ProgramUnit" + ] + }, + { + "id": "0x55e9a6200660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55e9a6201790-MainProgram" + }, + { + "id": "0x55e9a6201790-MainProgram", + "SpecificationPart": "0x55e9a6201830-SpecificationPart", + "ExecutionPart": "0x55e9a6201818-ExecutionPart", + "Statement": "0x55e9a6201790-Statement" + }, + { + "id": "0x55e9a6201830-SpecificationPart", + "ImplicitPart": "0x55e9a6201848-ImplicitPart", + "DeclarationConstruct": [ + "0x55e9a61de5b0-DeclarationConstruct", + "0x55e9a61de240-DeclarationConstruct", + "0x55e9a61b0140-DeclarationConstruct" + ] + }, + { + "id": "0x55e9a6201848-ImplicitPart" + }, + { + "id": "0x55e9a61de5b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e9a61de5b0-SpecificationConstruct" + }, + { + "id": "0x55e9a61de5b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a61de5b0-Statement" + }, + { + "id": "0x55e9a61de5b0-Statement", + "statement": "0x55e9a61e6250-TypeDeclarationStmt", + "source": "integer*1 a1, a2" + }, + { + "id": "0x55e9a61e6250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e9a61e6280-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e9a6202c70-EntityDecl", + "0x55e9a61b0050-EntityDecl" + ] + }, + { + "id": "0x55e9a61e6280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e9a61e6280-IntrinsicTypeSpec" + }, + { + "id": "0x55e9a61e6280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e9a61e6280-IntegerTypeSpec" + }, + { + "id": "0x55e9a61e6280-IntegerTypeSpec", + "KindSelector": "0x55e9a61e6280-KindSelector" + }, + { + "id": "0x55e9a61e6280-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55e9a61e6280-StarSize" + }, + { + "id": "0x55e9a61e6280-StarSize", + "uint64_t": "1" + }, + { + "id": "0x55e9a6202c70-EntityDecl", + "Name": "0x55e9a6202d28-Name" + }, + { + "id": "0x55e9a6202d28-Name", + "source": "a1" + }, + { + "id": "0x55e9a61b0050-EntityDecl", + "Name": "0x55e9a61b0108-Name" + }, + { + "id": "0x55e9a61b0108-Name", + "source": "a2" + }, + { + "id": "0x55e9a61de240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e9a61de240-SpecificationConstruct" + }, + { + "id": "0x55e9a61de240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a61de240-Statement" + }, + { + "id": "0x55e9a61de240-Statement", + "statement": "0x55e9a6202a40-TypeDeclarationStmt", + "source": "real*8 b1, b2" + }, + { + "id": "0x55e9a6202a40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e9a6202a70-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e9a6202030-EntityDecl", + "0x55e9a6201f40-EntityDecl" + ] + }, + { + "id": "0x55e9a6202a70-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e9a6202a70-IntrinsicTypeSpec" + }, + { + "id": "0x55e9a6202a70-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x55e9a6202a70-Real" + }, + { + "id": "0x55e9a6202a70-Real", + "KindSelector": "0x55e9a6202a70-KindSelector" + }, + { + "id": "0x55e9a6202a70-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55e9a6202a70-StarSize" + }, + { + "id": "0x55e9a6202a70-StarSize", + "uint64_t": "8" + }, + { + "id": "0x55e9a6202030-EntityDecl", + "Name": "0x55e9a62020e8-Name" + }, + { + "id": "0x55e9a62020e8-Name", + "source": "b1" + }, + { + "id": "0x55e9a6201f40-EntityDecl", + "Name": "0x55e9a6201ff8-Name" + }, + { + "id": "0x55e9a6201ff8-Name", + "source": "b2" + }, + { + "id": "0x55e9a61b0140-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e9a61b0140-SpecificationConstruct" + }, + { + "id": "0x55e9a61b0140-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a61b0140-Statement" + }, + { + "id": "0x55e9a61b0140-Statement", + "statement": "0x55e9a6202ac0-TypeDeclarationStmt", + "source": "logical ok" + }, + { + "id": "0x55e9a6202ac0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e9a6202af0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e9a62021a0-EntityDecl" + ] + }, + { + "id": "0x55e9a6202af0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e9a6202af0-IntrinsicTypeSpec" + }, + { + "id": "0x55e9a6202af0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55e9a6202af0-Logical" + }, + { + "id": "0x55e9a6202af0-Logical" + }, + { + "id": "0x55e9a62021a0-EntityDecl", + "Name": "0x55e9a6202258-Name" + }, + { + "id": "0x55e9a6202258-Name", + "source": "ok" + }, + { + "id": "0x55e9a6201818-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55e9a62038a0-ExecutionPartConstruct", + "0x55e9a6203260-ExecutionPartConstruct", + "0x55e9a6203430-ExecutionPartConstruct", + "0x55e9a6203e40-ExecutionPartConstruct", + "0x55e9a62040d0-ExecutionPartConstruct", + "0x55e9a6204190-ExecutionPartConstruct", + "0x55e9a62047f0-ExecutionPartConstruct", + "0x55e9a6204410-ExecutionPartConstruct", + "0x55e9a6208130-ExecutionPartConstruct", + "0x55e9a6208360-ExecutionPartConstruct", + "0x55e9a6208420-ExecutionPartConstruct", + "0x55e9a6207f60-ExecutionPartConstruct" + ] + }, + { + "id": "0x55e9a6201818-ExecutionPartConstruct" + }, + { + "id": "0x55e9a62038a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a62038a0-ExecutableConstruct" + }, + { + "id": "0x55e9a62038a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a62038a0-Statement" + }, + { + "id": "0x55e9a62038a0-Statement", + "statement": "0x55e9a62038b0-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x55e9a62038b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6203780-AssignmentStmt" + }, + { + "id": "0x55e9a6203780-AssignmentStmt", + "Variable": "0x55e9a6203860-Variable", + "Expr": "0x55e9a6203790-Expr" + }, + { + "id": "0x55e9a6203860-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a61b0190-Designator" + }, + { + "id": "0x55e9a61b0190-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a61b01a0-DataRef" + }, + { + "id": "0x55e9a61b01a0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a61b01a0-Name" + }, + { + "id": "0x55e9a61b01a0-Name", + "source": "ok" + }, + { + "id": "0x55e9a6203790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a62037b0-LiteralConstant" + }, + { + "id": "0x55e9a62037b0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55e9a62037b0-LogicalLiteralConstant" + }, + { + "id": "0x55e9a62037b0-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x55e9a6203260-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6203260-ExecutableConstruct" + }, + { + "id": "0x55e9a6203260-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6203260-Statement" + }, + { + "id": "0x55e9a6203260-Statement", + "statement": "0x55e9a6203270-ActionStmt", + "source": "b1 = 1.1" + }, + { + "id": "0x55e9a6203270-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6203140-AssignmentStmt" + }, + { + "id": "0x55e9a6203140-AssignmentStmt", + "Variable": "0x55e9a6203220-Variable", + "Expr": "0x55e9a6203150-Expr" + }, + { + "id": "0x55e9a6203220-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a6202560-Designator" + }, + { + "id": "0x55e9a6202560-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6202570-DataRef" + }, + { + "id": "0x55e9a6202570-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6202570-Name" + }, + { + "id": "0x55e9a6202570-Name", + "source": "b1" + }, + { + "id": "0x55e9a6203150-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a6203170-LiteralConstant" + }, + { + "id": "0x55e9a6203170-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55e9a6203170-RealLiteralConstant" + }, + { + "id": "0x55e9a6203170-RealLiteralConstant", + "real": "0x55e9a6203170-Real" + }, + { + "id": "0x55e9a6203170-Real", + "source": "1.1" + }, + { + "id": "0x55e9a6203430-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6203430-ExecutableConstruct" + }, + { + "id": "0x55e9a6203430-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6203430-Statement" + }, + { + "id": "0x55e9a6203430-Statement", + "statement": "0x55e9a6203440-ActionStmt", + "source": "a1 = 1" + }, + { + "id": "0x55e9a6203440-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6203310-AssignmentStmt" + }, + { + "id": "0x55e9a6203310-AssignmentStmt", + "Variable": "0x55e9a62033f0-Variable", + "Expr": "0x55e9a6203320-Expr" + }, + { + "id": "0x55e9a62033f0-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a62038f0-Designator" + }, + { + "id": "0x55e9a62038f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6203900-DataRef" + }, + { + "id": "0x55e9a6203900-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6203900-Name" + }, + { + "id": "0x55e9a6203900-Name", + "source": "a1" + }, + { + "id": "0x55e9a6203320-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a6203340-LiteralConstant" + }, + { + "id": "0x55e9a6203340-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e9a6203340-IntLiteralConstant" + }, + { + "id": "0x55e9a6203340-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55e9a6203e40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6203e40-ExecutableConstruct" + }, + { + "id": "0x55e9a6203e40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6203e40-Statement" + }, + { + "id": "0x55e9a6203e40-Statement", + "statement": "0x55e9a6203e50-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55e9a6203e50-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6203cb0-AssignmentStmt" + }, + { + "id": "0x55e9a6203cb0-AssignmentStmt", + "Variable": "0x55e9a6203d90-Variable", + "Expr": "0x55e9a6203cc0-Expr" + }, + { + "id": "0x55e9a6203d90-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a62032b0-Designator" + }, + { + "id": "0x55e9a62032b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a62032c0-DataRef" + }, + { + "id": "0x55e9a62032c0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a62032c0-Name" + }, + { + "id": "0x55e9a62032c0-Name", + "source": "a2" + }, + { + "id": "0x55e9a6203cc0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6203b70-Designator" + }, + { + "id": "0x55e9a6203b70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6203b80-DataRef" + }, + { + "id": "0x55e9a6203b80-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6203b80-Name" + }, + { + "id": "0x55e9a6203b80-Name", + "source": "b1" + }, + { + "id": "0x55e9a62040d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a62040d0-ExecutableConstruct" + }, + { + "id": "0x55e9a62040d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a62040d0-Statement" + }, + { + "id": "0x55e9a62040d0-Statement", + "statement": "0x55e9a62040e0-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55e9a62040e0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6203fb0-AssignmentStmt" + }, + { + "id": "0x55e9a6203fb0-AssignmentStmt", + "Variable": "0x55e9a6204090-Variable", + "Expr": "0x55e9a6203fc0-Expr" + }, + { + "id": "0x55e9a6204090-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a6203480-Designator" + }, + { + "id": "0x55e9a6203480-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6203490-DataRef" + }, + { + "id": "0x55e9a6203490-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6203490-Name" + }, + { + "id": "0x55e9a6203490-Name", + "source": "b2" + }, + { + "id": "0x55e9a6203fc0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6203f50-Designator" + }, + { + "id": "0x55e9a6203f50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6203f60-DataRef" + }, + { + "id": "0x55e9a6203f60-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6203f60-Name" + }, + { + "id": "0x55e9a6203f60-Name", + "source": "a1" + }, + { + "id": "0x55e9a6204190-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6204190-ExecutableConstruct" + }, + { + "id": "0x55e9a6204190-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55e9a6202e80-IfConstruct" + }, + { + "id": "0x55e9a6202e80-IfConstruct", + "Statement": "0x55e9a6202f50-Statement", + "ExecutionPartConstruct": [ + "0x55e9a6203f00-ExecutionPartConstruct", + "0x55e9a6207ac0-ExecutionPartConstruct" + ], + "Statement": "0x55e9a6202e80-Statement" + }, + { + "id": "0x55e9a6202f50-Statement", + "statement": "0x55e9a6202f60-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x55e9a6202f60-IfThenStmt", + "Expr": "0x55e9a6204a00-Expr" + }, + { + "id": "0x55e9a6204a00-Expr", + "variantKey": "NE", + "NE": "0x55e9a6204a20-NE" + }, + { + "id": "0x55e9a6204a20-NE", + "left": "0x55e9a6204690-Expr", + "right": "0x55e9a62045b0-Expr", + "op": "NE" + }, + { + "id": "0x55e9a6204690-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55e9a62046b0-Parentheses" + }, + { + "id": "0x55e9a62046b0-Parentheses", + "Expr": "0x55e9a62044d0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55e9a62044d0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e9a62044f0-Subtract" + }, + { + "id": "0x55e9a62044f0-Subtract", + "left": "0x55e9a6204bc0-Expr", + "right": "0x55e9a6204ae0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e9a6204bc0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6205660-Designator" + }, + { + "id": "0x55e9a6205660-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6205670-DataRef" + }, + { + "id": "0x55e9a6205670-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6205670-Name" + }, + { + "id": "0x55e9a6205670-Name", + "source": "a2" + }, + { + "id": "0x55e9a6204ae0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6205880-Designator" + }, + { + "id": "0x55e9a6205880-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6205890-DataRef" + }, + { + "id": "0x55e9a6205890-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6205890-Name" + }, + { + "id": "0x55e9a6205890-Name", + "source": "b2" + }, + { + "id": "0x55e9a62045b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a62045d0-LiteralConstant" + }, + { + "id": "0x55e9a62045d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e9a62045d0-IntLiteralConstant" + }, + { + "id": "0x55e9a62045d0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55e9a6202f38-ExecutionPartConstruct" + }, + { + "id": "0x55e9a6203f00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6203f00-ExecutableConstruct" + }, + { + "id": "0x55e9a6203f00-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6203f00-Statement" + }, + { + "id": "0x55e9a6203f00-Statement", + "statement": "0x55e9a6203f10-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55e9a6203f10-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6204de0-AssignmentStmt" + }, + { + "id": "0x55e9a6204de0-AssignmentStmt", + "Variable": "0x55e9a6204ec0-Variable", + "Expr": "0x55e9a6204df0-Expr" + }, + { + "id": "0x55e9a6204ec0-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a6202500-Designator" + }, + { + "id": "0x55e9a6202500-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6202510-DataRef" + }, + { + "id": "0x55e9a6202510-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6202510-Name" + }, + { + "id": "0x55e9a6202510-Name", + "source": "ok" + }, + { + "id": "0x55e9a6204df0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a6204e10-LiteralConstant" + }, + { + "id": "0x55e9a6204e10-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55e9a6204e10-LogicalLiteralConstant" + }, + { + "id": "0x55e9a6204e10-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55e9a6207ac0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6207ac0-ExecutableConstruct" + }, + { + "id": "0x55e9a6207ac0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6207ac0-Statement" + }, + { + "id": "0x55e9a6207ac0-Statement", + "statement": "0x55e9a6207ad0-ActionStmt", + "source": "print *,\"TEST1-NG =>\",a2-b2" + }, + { + "id": "0x55e9a6207ad0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e9a62079b0-PrintStmt" + }, + { + "id": "0x55e9a62079b0-PrintStmt", + "Format": "0x55e9a62079c8-Format", + "OutputItem": [ + "0x55e9a62078d0-OutputItem", + "0x55e9a62077e0-OutputItem" + ] + }, + { + "id": "0x55e9a62079c8-Format", + "variantKey": "Star", + "Star": "0x55e9a62079c8-Star" + }, + { + "id": "0x55e9a62079c8-Star" + }, + { + "id": "0x55e9a62078d0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e9a62078d0-Expr" + }, + { + "id": "0x55e9a62078d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a62078f0-LiteralConstant" + }, + { + "id": "0x55e9a62078f0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e9a62078f0-CharLiteralConstant" + }, + { + "id": "0x55e9a62078f0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x55e9a62077e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e9a62077e0-Expr" + }, + { + "id": "0x55e9a62077e0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e9a6207800-Subtract" + }, + { + "id": "0x55e9a6207800-Subtract", + "left": "0x55e9a62076f0-Expr", + "right": "0x55e9a6207610-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e9a62076f0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6204ca0-Designator" + }, + { + "id": "0x55e9a6204ca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6204cb0-DataRef" + }, + { + "id": "0x55e9a6204cb0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6204cb0-Name" + }, + { + "id": "0x55e9a6204cb0-Name", + "source": "a2" + }, + { + "id": "0x55e9a6207610-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a62075b0-Designator" + }, + { + "id": "0x55e9a62075b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a62075c0-DataRef" + }, + { + "id": "0x55e9a62075c0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a62075c0-Name" + }, + { + "id": "0x55e9a62075c0-Name", + "source": "b2" + }, + { + "id": "0x55e9a6202e80-Statement", + "statement": "0x55e9a6202e90-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55e9a6202e90-EndIfStmt" + }, + { + "id": "0x55e9a62047f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a62047f0-ExecutableConstruct" + }, + { + "id": "0x55e9a62047f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a62047f0-Statement" + }, + { + "id": "0x55e9a62047f0-Statement", + "statement": "0x55e9a6204800-ActionStmt", + "source": "b1 = -1.1" + }, + { + "id": "0x55e9a6204800-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6207bf0-AssignmentStmt" + }, + { + "id": "0x55e9a6207bf0-AssignmentStmt", + "Variable": "0x55e9a6207cd0-Variable", + "Expr": "0x55e9a6207c00-Expr" + }, + { + "id": "0x55e9a6207cd0-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a61d7af0-Designator" + }, + { + "id": "0x55e9a61d7af0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a61d7b00-DataRef" + }, + { + "id": "0x55e9a61d7b00-DataRef", + "variantKey": "Name", + "Name": "0x55e9a61d7b00-Name" + }, + { + "id": "0x55e9a61d7b00-Name", + "source": "b1" + }, + { + "id": "0x55e9a6207c00-Expr", + "variantKey": "Negate", + "Negate": "0x55e9a6207c20-Negate" + }, + { + "id": "0x55e9a6207c20-Negate", + "Expr": "0x55e9a6207b10-Expr", + "op": "NEGATE" + }, + { + "id": "0x55e9a6207b10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a6207b30-LiteralConstant" + }, + { + "id": "0x55e9a6207b30-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55e9a6207b30-RealLiteralConstant" + }, + { + "id": "0x55e9a6207b30-RealLiteralConstant", + "real": "0x55e9a6207b30-Real" + }, + { + "id": "0x55e9a6207b30-Real", + "source": "1.1" + }, + { + "id": "0x55e9a6204410-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6204410-ExecutableConstruct" + }, + { + "id": "0x55e9a6204410-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6204410-Statement" + }, + { + "id": "0x55e9a6204410-Statement", + "statement": "0x55e9a6204420-ActionStmt", + "source": "a1 = -1" + }, + { + "id": "0x55e9a6204420-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6207de0-AssignmentStmt" + }, + { + "id": "0x55e9a6207de0-AssignmentStmt", + "Variable": "0x55e9a6207ec0-Variable", + "Expr": "0x55e9a6207df0-Expr" + }, + { + "id": "0x55e9a6207ec0-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a62041e0-Designator" + }, + { + "id": "0x55e9a62041e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a62041f0-DataRef" + }, + { + "id": "0x55e9a62041f0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a62041f0-Name" + }, + { + "id": "0x55e9a62041f0-Name", + "source": "a1" + }, + { + "id": "0x55e9a6207df0-Expr", + "variantKey": "Negate", + "Negate": "0x55e9a6207e10-Negate" + }, + { + "id": "0x55e9a6207e10-Negate", + "Expr": "0x55e9a6207d00-Expr", + "op": "NEGATE" + }, + { + "id": "0x55e9a6207d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a6207d20-LiteralConstant" + }, + { + "id": "0x55e9a6207d20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e9a6207d20-IntLiteralConstant" + }, + { + "id": "0x55e9a6207d20-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55e9a6208130-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6208130-ExecutableConstruct" + }, + { + "id": "0x55e9a6208130-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6208130-Statement" + }, + { + "id": "0x55e9a6208130-Statement", + "statement": "0x55e9a6208140-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55e9a6208140-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6208010-AssignmentStmt" + }, + { + "id": "0x55e9a6208010-AssignmentStmt", + "Variable": "0x55e9a62080f0-Variable", + "Expr": "0x55e9a6208020-Expr" + }, + { + "id": "0x55e9a62080f0-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a6207550-Designator" + }, + { + "id": "0x55e9a6207550-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6207560-DataRef" + }, + { + "id": "0x55e9a6207560-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6207560-Name" + }, + { + "id": "0x55e9a6207560-Name", + "source": "a2" + }, + { + "id": "0x55e9a6208020-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6207fb0-Designator" + }, + { + "id": "0x55e9a6207fb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6207fc0-DataRef" + }, + { + "id": "0x55e9a6207fc0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6207fc0-Name" + }, + { + "id": "0x55e9a6207fc0-Name", + "source": "b1" + }, + { + "id": "0x55e9a6208360-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6208360-ExecutableConstruct" + }, + { + "id": "0x55e9a6208360-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6208360-Statement" + }, + { + "id": "0x55e9a6208360-Statement", + "statement": "0x55e9a6208370-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55e9a6208370-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6208240-AssignmentStmt" + }, + { + "id": "0x55e9a6208240-AssignmentStmt", + "Variable": "0x55e9a6208320-Variable", + "Expr": "0x55e9a6208250-Expr" + }, + { + "id": "0x55e9a6208320-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a6207ef0-Designator" + }, + { + "id": "0x55e9a6207ef0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6207f00-DataRef" + }, + { + "id": "0x55e9a6207f00-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6207f00-Name" + }, + { + "id": "0x55e9a6207f00-Name", + "source": "b2" + }, + { + "id": "0x55e9a6208250-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a62081e0-Designator" + }, + { + "id": "0x55e9a62081e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a62081f0-DataRef" + }, + { + "id": "0x55e9a62081f0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a62081f0-Name" + }, + { + "id": "0x55e9a62081f0-Name", + "source": "a1" + }, + { + "id": "0x55e9a6208420-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6208420-ExecutableConstruct" + }, + { + "id": "0x55e9a6208420-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55e9a61c1490-IfConstruct" + }, + { + "id": "0x55e9a61c1490-IfConstruct", + "Statement": "0x55e9a61c1560-Statement", + "ExecutionPartConstruct": [ + "0x55e9a6208190-ExecutionPartConstruct", + "0x55e9a6209270-ExecutionPartConstruct" + ], + "Statement": "0x55e9a61c1490-Statement" + }, + { + "id": "0x55e9a61c1560-Statement", + "statement": "0x55e9a61c1570-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x55e9a61c1570-IfThenStmt", + "Expr": "0x55e9a6208830-Expr" + }, + { + "id": "0x55e9a6208830-Expr", + "variantKey": "NE", + "NE": "0x55e9a6208850-NE" + }, + { + "id": "0x55e9a6208850-NE", + "left": "0x55e9a62086f0-Expr", + "right": "0x55e9a6208610-Expr", + "op": "NE" + }, + { + "id": "0x55e9a62086f0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55e9a6208710-Parentheses" + }, + { + "id": "0x55e9a6208710-Parentheses", + "Expr": "0x55e9a6208530-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55e9a6208530-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e9a6208550-Subtract" + }, + { + "id": "0x55e9a6208550-Subtract", + "left": "0x55e9a62089f0-Expr", + "right": "0x55e9a6208910-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e9a62089f0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6208c40-Designator" + }, + { + "id": "0x55e9a6208c40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6208c50-DataRef" + }, + { + "id": "0x55e9a6208c50-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6208c50-Name" + }, + { + "id": "0x55e9a6208c50-Name", + "source": "a2" + }, + { + "id": "0x55e9a6208910-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6208ca0-Designator" + }, + { + "id": "0x55e9a6208ca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6208cb0-DataRef" + }, + { + "id": "0x55e9a6208cb0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6208cb0-Name" + }, + { + "id": "0x55e9a6208cb0-Name", + "source": "b2" + }, + { + "id": "0x55e9a6208610-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a6208630-LiteralConstant" + }, + { + "id": "0x55e9a6208630-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e9a6208630-IntLiteralConstant" + }, + { + "id": "0x55e9a6208630-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55e9a61c1548-ExecutionPartConstruct" + }, + { + "id": "0x55e9a6208190-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6208190-ExecutableConstruct" + }, + { + "id": "0x55e9a6208190-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6208190-Statement" + }, + { + "id": "0x55e9a6208190-Statement", + "statement": "0x55e9a62081a0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55e9a62081a0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e9a6208b30-AssignmentStmt" + }, + { + "id": "0x55e9a6208b30-AssignmentStmt", + "Variable": "0x55e9a6208c10-Variable", + "Expr": "0x55e9a6208b40-Expr" + }, + { + "id": "0x55e9a6208c10-Variable", + "variantKey": "Designator", + "Designator": "0x55e9a6204120-Designator" + }, + { + "id": "0x55e9a6204120-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6204130-DataRef" + }, + { + "id": "0x55e9a6204130-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6204130-Name" + }, + { + "id": "0x55e9a6204130-Name", + "source": "ok" + }, + { + "id": "0x55e9a6208b40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a6208b60-LiteralConstant" + }, + { + "id": "0x55e9a6208b60-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55e9a6208b60-LogicalLiteralConstant" + }, + { + "id": "0x55e9a6208b60-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55e9a6209270-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6209270-ExecutableConstruct" + }, + { + "id": "0x55e9a6209270-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6209270-Statement" + }, + { + "id": "0x55e9a6209270-Statement", + "statement": "0x55e9a6209280-ActionStmt", + "source": "print *,\"TEST2-NG =>\",a2-b2" + }, + { + "id": "0x55e9a6209280-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e9a6209160-PrintStmt" + }, + { + "id": "0x55e9a6209160-PrintStmt", + "Format": "0x55e9a6209178-Format", + "OutputItem": [ + "0x55e9a6209080-OutputItem", + "0x55e9a6208f90-OutputItem" + ] + }, + { + "id": "0x55e9a6209178-Format", + "variantKey": "Star", + "Star": "0x55e9a6209178-Star" + }, + { + "id": "0x55e9a6209178-Star" + }, + { + "id": "0x55e9a6209080-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e9a6209080-Expr" + }, + { + "id": "0x55e9a6209080-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a62090a0-LiteralConstant" + }, + { + "id": "0x55e9a62090a0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e9a62090a0-CharLiteralConstant" + }, + { + "id": "0x55e9a62090a0-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x55e9a6208f90-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e9a6208f90-Expr" + }, + { + "id": "0x55e9a6208f90-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e9a6208fb0-Subtract" + }, + { + "id": "0x55e9a6208fb0-Subtract", + "left": "0x55e9a6208ea0-Expr", + "right": "0x55e9a6208dc0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e9a6208ea0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6208ad0-Designator" + }, + { + "id": "0x55e9a6208ad0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6208ae0-DataRef" + }, + { + "id": "0x55e9a6208ae0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6208ae0-Name" + }, + { + "id": "0x55e9a6208ae0-Name", + "source": "a2" + }, + { + "id": "0x55e9a6208dc0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6208d60-Designator" + }, + { + "id": "0x55e9a6208d60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6208d70-DataRef" + }, + { + "id": "0x55e9a6208d70-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6208d70-Name" + }, + { + "id": "0x55e9a6208d70-Name", + "source": "b2" + }, + { + "id": "0x55e9a61c1490-Statement", + "statement": "0x55e9a61c14a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55e9a61c14a0-EndIfStmt" + }, + { + "id": "0x55e9a6207f60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6207f60-ExecutableConstruct" + }, + { + "id": "0x55e9a6207f60-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55e9a62096a0-IfConstruct" + }, + { + "id": "0x55e9a62096a0-IfConstruct", + "Statement": "0x55e9a6209770-Statement", + "ExecutionPartConstruct": [ + "0x55e9a6208480-ExecutionPartConstruct" + ], + "Statement": "0x55e9a62096a0-Statement" + }, + { + "id": "0x55e9a6209770-Statement", + "statement": "0x55e9a6209780-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x55e9a6209780-IfThenStmt", + "Expr": "0x55e9a62092c0-Expr" + }, + { + "id": "0x55e9a62092c0-Expr", + "variantKey": "Designator", + "Designator": "0x55e9a6203e90-Designator" + }, + { + "id": "0x55e9a6203e90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e9a6203ea0-DataRef" + }, + { + "id": "0x55e9a6203ea0-DataRef", + "variantKey": "Name", + "Name": "0x55e9a6203ea0-Name" + }, + { + "id": "0x55e9a6203ea0-Name", + "source": "ok" + }, + { + "id": "0x55e9a6209758-ExecutionPartConstruct" + }, + { + "id": "0x55e9a6208480-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e9a6208480-ExecutableConstruct" + }, + { + "id": "0x55e9a6208480-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e9a6208480-Statement" + }, + { + "id": "0x55e9a6208480-Statement", + "statement": "0x55e9a6208490-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x55e9a6208490-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e9a62095a0-PrintStmt" + }, + { + "id": "0x55e9a62095a0-PrintStmt", + "Format": "0x55e9a62095b8-Format", + "OutputItem": [ + "0x55e9a62094c0-OutputItem" + ] + }, + { + "id": "0x55e9a62095b8-Format", + "variantKey": "Star", + "Star": "0x55e9a62095b8-Star" + }, + { + "id": "0x55e9a62095b8-Star" + }, + { + "id": "0x55e9a62094c0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e9a62094c0-Expr" + }, + { + "id": "0x55e9a62094c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e9a62094e0-LiteralConstant" + }, + { + "id": "0x55e9a62094e0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e9a62094e0-CharLiteralConstant" + }, + { + "id": "0x55e9a62094e0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55e9a62096a0-Statement", + "statement": "0x55e9a62096b0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55e9a62096b0-EndIfStmt" + }, + { + "id": "0x55e9a6201790-Statement", + "statement": "0x55e9a62017a0-EndProgramStmt", + "source": "end" + }, + { + "id": "0x55e9a62017a0-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 b02c3202..55d04fc6 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -442,4 +442,16 @@ void testFujitsu0000_0003Native() { testNative("fujitsu/0000/0000_0003.f90"); } } + + @Test + void testFujitsu0000_0004() { + testJson("fujitsu/0000/0000_0004.json"); + } + + @Test + void testFujitsu0000_0004Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0004.f90"); + } + } } From 9c1033bf0ec57dc506bbfd1e384aa7fcdd2f26ea Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 11:56:12 +0100 Subject: [PATCH 025/132] Add a new Fujitsu test case --- .../fujitsu/0000/0000_0007.expected.f90 | 31 + .../fortran/parser/fujitsu/0000/0000_0007.f90 | 31 + .../parser/fujitsu/0000/0000_0007.json | 1813 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1887 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.json 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 new file mode 100644 index 00000000..c0ef9d9e --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.expected.f90 @@ -0,0 +1,31 @@ +integer*2 :: a1, a2 +real*4 :: b1, b2 +logical :: ok + +ok = .true. + +a1 = 3267_2 +b1 = 3267.1e0 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST1-NG =>", a2 - b2 +END IF + +a1 = -3267_2 +b1 = -3267.1e0 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST1-NG =>", a2 - b2 +END IF + +IF (ok) THEN + PRINT *, "OK" +END IF + +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.f90 new file mode 100644 index 00000000..2d3f7455 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.f90 @@ -0,0 +1,31 @@ +integer*2 a1, a2 +real*4 b1, b2 +logical ok + +ok = .true. + +a1 = 3267_2 +b1 = 3267.1E0 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST1-NG =>",a2-b2 +endif + +a1 = -3267_2 +b1 = -3267.1E0 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST1-NG =>",a2-b2 +endif + +if (ok) then + print *,"OK" +endif + +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.json new file mode 100644 index 00000000..fc18ac56 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0007.json @@ -0,0 +1,1813 @@ +{ + "nodes": [ + { + "id": "0x562bb52c4cc0-Program", + "ProgramUnit": [ + "0x562bb52ed660-ProgramUnit" + ] + }, + { + "id": "0x562bb52ed660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x562bb52ee980-MainProgram" + }, + { + "id": "0x562bb52ee980-MainProgram", + "SpecificationPart": "0x562bb52eea20-SpecificationPart", + "ExecutionPart": "0x562bb52eea08-ExecutionPart", + "Statement": "0x562bb52ee980-Statement" + }, + { + "id": "0x562bb52eea20-SpecificationPart", + "ImplicitPart": "0x562bb52eea38-ImplicitPart", + "DeclarationConstruct": [ + "0x562bb52cb5b0-DeclarationConstruct", + "0x562bb52cb240-DeclarationConstruct", + "0x562bb529d140-DeclarationConstruct" + ] + }, + { + "id": "0x562bb52eea38-ImplicitPart" + }, + { + "id": "0x562bb52cb5b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x562bb52cb5b0-SpecificationConstruct" + }, + { + "id": "0x562bb52cb5b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52cb5b0-Statement" + }, + { + "id": "0x562bb52cb5b0-Statement", + "statement": "0x562bb52d3250-TypeDeclarationStmt", + "source": "integer*2 a1, a2" + }, + { + "id": "0x562bb52d3250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562bb52d3280-DeclarationTypeSpec", + "EntityDecl": [ + "0x562bb52efe70-EntityDecl", + "0x562bb529d050-EntityDecl" + ] + }, + { + "id": "0x562bb52d3280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x562bb52d3280-IntrinsicTypeSpec" + }, + { + "id": "0x562bb52d3280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x562bb52d3280-IntegerTypeSpec" + }, + { + "id": "0x562bb52d3280-IntegerTypeSpec", + "KindSelector": "0x562bb52d3280-KindSelector" + }, + { + "id": "0x562bb52d3280-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x562bb52d3280-StarSize" + }, + { + "id": "0x562bb52d3280-StarSize", + "uint64_t": "2" + }, + { + "id": "0x562bb52efe70-EntityDecl", + "Name": "0x562bb52eff28-Name" + }, + { + "id": "0x562bb52eff28-Name", + "source": "a1" + }, + { + "id": "0x562bb529d050-EntityDecl", + "Name": "0x562bb529d108-Name" + }, + { + "id": "0x562bb529d108-Name", + "source": "a2" + }, + { + "id": "0x562bb52cb240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x562bb52cb240-SpecificationConstruct" + }, + { + "id": "0x562bb52cb240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52cb240-Statement" + }, + { + "id": "0x562bb52cb240-Statement", + "statement": "0x562bb52efc40-TypeDeclarationStmt", + "source": "real*4 b1, b2" + }, + { + "id": "0x562bb52efc40-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562bb52efc70-DeclarationTypeSpec", + "EntityDecl": [ + "0x562bb52ef230-EntityDecl", + "0x562bb52ef140-EntityDecl" + ] + }, + { + "id": "0x562bb52efc70-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x562bb52efc70-IntrinsicTypeSpec" + }, + { + "id": "0x562bb52efc70-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x562bb52efc70-Real" + }, + { + "id": "0x562bb52efc70-Real", + "KindSelector": "0x562bb52efc70-KindSelector" + }, + { + "id": "0x562bb52efc70-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x562bb52efc70-StarSize" + }, + { + "id": "0x562bb52efc70-StarSize", + "uint64_t": "4" + }, + { + "id": "0x562bb52ef230-EntityDecl", + "Name": "0x562bb52ef2e8-Name" + }, + { + "id": "0x562bb52ef2e8-Name", + "source": "b1" + }, + { + "id": "0x562bb52ef140-EntityDecl", + "Name": "0x562bb52ef1f8-Name" + }, + { + "id": "0x562bb52ef1f8-Name", + "source": "b2" + }, + { + "id": "0x562bb529d140-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x562bb529d140-SpecificationConstruct" + }, + { + "id": "0x562bb529d140-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x562bb529d140-Statement" + }, + { + "id": "0x562bb529d140-Statement", + "statement": "0x562bb52efcc0-TypeDeclarationStmt", + "source": "logical ok" + }, + { + "id": "0x562bb52efcc0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x562bb52efcf0-DeclarationTypeSpec", + "EntityDecl": [ + "0x562bb52ef3a0-EntityDecl" + ] + }, + { + "id": "0x562bb52efcf0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x562bb52efcf0-IntrinsicTypeSpec" + }, + { + "id": "0x562bb52efcf0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x562bb52efcf0-Logical" + }, + { + "id": "0x562bb52efcf0-Logical" + }, + { + "id": "0x562bb52ef3a0-EntityDecl", + "Name": "0x562bb52ef458-Name" + }, + { + "id": "0x562bb52ef458-Name", + "source": "ok" + }, + { + "id": "0x562bb52eea08-ExecutionPart", + "ExecutionPartConstruct": [ + "0x562bb52f0aa0-ExecutionPartConstruct", + "0x562bb52f0460-ExecutionPartConstruct", + "0x562bb52f0630-ExecutionPartConstruct", + "0x562bb52f1040-ExecutionPartConstruct", + "0x562bb52f12d0-ExecutionPartConstruct", + "0x562bb52f1390-ExecutionPartConstruct", + "0x562bb52f19f0-ExecutionPartConstruct", + "0x562bb52f1610-ExecutionPartConstruct", + "0x562bb52f5330-ExecutionPartConstruct", + "0x562bb52f5560-ExecutionPartConstruct", + "0x562bb52f5620-ExecutionPartConstruct", + "0x562bb52f5160-ExecutionPartConstruct" + ] + }, + { + "id": "0x562bb52eea08-ExecutionPartConstruct" + }, + { + "id": "0x562bb52f0aa0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f0aa0-ExecutableConstruct" + }, + { + "id": "0x562bb52f0aa0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f0aa0-Statement" + }, + { + "id": "0x562bb52f0aa0-Statement", + "statement": "0x562bb52f0ab0-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x562bb52f0ab0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f0980-AssignmentStmt" + }, + { + "id": "0x562bb52f0980-AssignmentStmt", + "Variable": "0x562bb52f0a60-Variable", + "Expr": "0x562bb52f0990-Expr" + }, + { + "id": "0x562bb52f0a60-Variable", + "variantKey": "Designator", + "Designator": "0x562bb529d190-Designator" + }, + { + "id": "0x562bb529d190-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb529d1a0-DataRef" + }, + { + "id": "0x562bb529d1a0-DataRef", + "variantKey": "Name", + "Name": "0x562bb529d1a0-Name" + }, + { + "id": "0x562bb529d1a0-Name", + "source": "ok" + }, + { + "id": "0x562bb52f0990-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f09b0-LiteralConstant" + }, + { + "id": "0x562bb52f09b0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x562bb52f09b0-LogicalLiteralConstant" + }, + { + "id": "0x562bb52f09b0-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x562bb52f0460-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f0460-ExecutableConstruct" + }, + { + "id": "0x562bb52f0460-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f0460-Statement" + }, + { + "id": "0x562bb52f0460-Statement", + "statement": "0x562bb52f0470-ActionStmt", + "source": "a1 = 3267_2" + }, + { + "id": "0x562bb52f0470-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f0340-AssignmentStmt" + }, + { + "id": "0x562bb52f0340-AssignmentStmt", + "Variable": "0x562bb52f0420-Variable", + "Expr": "0x562bb52f0350-Expr" + }, + { + "id": "0x562bb52f0420-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52ef760-Designator" + }, + { + "id": "0x562bb52ef760-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52ef770-DataRef" + }, + { + "id": "0x562bb52ef770-DataRef", + "variantKey": "Name", + "Name": "0x562bb52ef770-Name" + }, + { + "id": "0x562bb52ef770-Name", + "source": "a1" + }, + { + "id": "0x562bb52f0350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f0370-LiteralConstant" + }, + { + "id": "0x562bb52f0370-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x562bb52f0370-IntLiteralConstant" + }, + { + "id": "0x562bb52f0370-IntLiteralConstant", + "CharBlock": "3267", + "KindParam": "0x562bb52f0370-KindParam" + }, + { + "id": "0x562bb52f0370-KindParam", + "variantKey": "uint64_t", + "uint64_t": "2" + }, + { + "id": "0x562bb52f0630-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f0630-ExecutableConstruct" + }, + { + "id": "0x562bb52f0630-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f0630-Statement" + }, + { + "id": "0x562bb52f0630-Statement", + "statement": "0x562bb52f0640-ActionStmt", + "source": "b1 = 3267.1e0" + }, + { + "id": "0x562bb52f0640-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f0510-AssignmentStmt" + }, + { + "id": "0x562bb52f0510-AssignmentStmt", + "Variable": "0x562bb52f05f0-Variable", + "Expr": "0x562bb52f0520-Expr" + }, + { + "id": "0x562bb52f05f0-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52f0af0-Designator" + }, + { + "id": "0x562bb52f0af0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f0b00-DataRef" + }, + { + "id": "0x562bb52f0b00-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f0b00-Name" + }, + { + "id": "0x562bb52f0b00-Name", + "source": "b1" + }, + { + "id": "0x562bb52f0520-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f0540-LiteralConstant" + }, + { + "id": "0x562bb52f0540-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x562bb52f0540-RealLiteralConstant" + }, + { + "id": "0x562bb52f0540-RealLiteralConstant", + "real": "0x562bb52f0540-Real" + }, + { + "id": "0x562bb52f0540-Real", + "source": "3267.1e0" + }, + { + "id": "0x562bb52f1040-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f1040-ExecutableConstruct" + }, + { + "id": "0x562bb52f1040-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f1040-Statement" + }, + { + "id": "0x562bb52f1040-Statement", + "statement": "0x562bb52f1050-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x562bb52f1050-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f0eb0-AssignmentStmt" + }, + { + "id": "0x562bb52f0eb0-AssignmentStmt", + "Variable": "0x562bb52f0f90-Variable", + "Expr": "0x562bb52f0ec0-Expr" + }, + { + "id": "0x562bb52f0f90-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52f04b0-Designator" + }, + { + "id": "0x562bb52f04b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f04c0-DataRef" + }, + { + "id": "0x562bb52f04c0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f04c0-Name" + }, + { + "id": "0x562bb52f04c0-Name", + "source": "a2" + }, + { + "id": "0x562bb52f0ec0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f0d70-Designator" + }, + { + "id": "0x562bb52f0d70-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f0d80-DataRef" + }, + { + "id": "0x562bb52f0d80-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f0d80-Name" + }, + { + "id": "0x562bb52f0d80-Name", + "source": "b1" + }, + { + "id": "0x562bb52f12d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f12d0-ExecutableConstruct" + }, + { + "id": "0x562bb52f12d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f12d0-Statement" + }, + { + "id": "0x562bb52f12d0-Statement", + "statement": "0x562bb52f12e0-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x562bb52f12e0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f11b0-AssignmentStmt" + }, + { + "id": "0x562bb52f11b0-AssignmentStmt", + "Variable": "0x562bb52f1290-Variable", + "Expr": "0x562bb52f11c0-Expr" + }, + { + "id": "0x562bb52f1290-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52f0680-Designator" + }, + { + "id": "0x562bb52f0680-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f0690-DataRef" + }, + { + "id": "0x562bb52f0690-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f0690-Name" + }, + { + "id": "0x562bb52f0690-Name", + "source": "b2" + }, + { + "id": "0x562bb52f11c0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f1150-Designator" + }, + { + "id": "0x562bb52f1150-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f1160-DataRef" + }, + { + "id": "0x562bb52f1160-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f1160-Name" + }, + { + "id": "0x562bb52f1160-Name", + "source": "a1" + }, + { + "id": "0x562bb52f1390-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f1390-ExecutableConstruct" + }, + { + "id": "0x562bb52f1390-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x562bb52f0080-IfConstruct" + }, + { + "id": "0x562bb52f0080-IfConstruct", + "Statement": "0x562bb52f0150-Statement", + "ExecutionPartConstruct": [ + "0x562bb52f1100-ExecutionPartConstruct", + "0x562bb52f4cc0-ExecutionPartConstruct" + ], + "Statement": "0x562bb52f0080-Statement" + }, + { + "id": "0x562bb52f0150-Statement", + "statement": "0x562bb52f0160-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x562bb52f0160-IfThenStmt", + "Expr": "0x562bb52f1c00-Expr" + }, + { + "id": "0x562bb52f1c00-Expr", + "variantKey": "NE", + "NE": "0x562bb52f1c20-NE" + }, + { + "id": "0x562bb52f1c20-NE", + "left": "0x562bb52f1890-Expr", + "right": "0x562bb52f17b0-Expr", + "op": "NE" + }, + { + "id": "0x562bb52f1890-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x562bb52f18b0-Parentheses" + }, + { + "id": "0x562bb52f18b0-Parentheses", + "Expr": "0x562bb52f16d0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x562bb52f16d0-Expr", + "variantKey": "Subtract", + "Subtract": "0x562bb52f16f0-Subtract" + }, + { + "id": "0x562bb52f16f0-Subtract", + "left": "0x562bb52f1dc0-Expr", + "right": "0x562bb52f1ce0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x562bb52f1dc0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f2860-Designator" + }, + { + "id": "0x562bb52f2860-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f2870-DataRef" + }, + { + "id": "0x562bb52f2870-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f2870-Name" + }, + { + "id": "0x562bb52f2870-Name", + "source": "a2" + }, + { + "id": "0x562bb52f1ce0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f2a80-Designator" + }, + { + "id": "0x562bb52f2a80-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f2a90-DataRef" + }, + { + "id": "0x562bb52f2a90-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f2a90-Name" + }, + { + "id": "0x562bb52f2a90-Name", + "source": "b2" + }, + { + "id": "0x562bb52f17b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f17d0-LiteralConstant" + }, + { + "id": "0x562bb52f17d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x562bb52f17d0-IntLiteralConstant" + }, + { + "id": "0x562bb52f17d0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x562bb52f0138-ExecutionPartConstruct" + }, + { + "id": "0x562bb52f1100-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f1100-ExecutableConstruct" + }, + { + "id": "0x562bb52f1100-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f1100-Statement" + }, + { + "id": "0x562bb52f1100-Statement", + "statement": "0x562bb52f1110-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x562bb52f1110-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f1fe0-AssignmentStmt" + }, + { + "id": "0x562bb52f1fe0-AssignmentStmt", + "Variable": "0x562bb52f20c0-Variable", + "Expr": "0x562bb52f1ff0-Expr" + }, + { + "id": "0x562bb52f20c0-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52ef700-Designator" + }, + { + "id": "0x562bb52ef700-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52ef710-DataRef" + }, + { + "id": "0x562bb52ef710-DataRef", + "variantKey": "Name", + "Name": "0x562bb52ef710-Name" + }, + { + "id": "0x562bb52ef710-Name", + "source": "ok" + }, + { + "id": "0x562bb52f1ff0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f2010-LiteralConstant" + }, + { + "id": "0x562bb52f2010-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x562bb52f2010-LogicalLiteralConstant" + }, + { + "id": "0x562bb52f2010-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x562bb52f4cc0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f4cc0-ExecutableConstruct" + }, + { + "id": "0x562bb52f4cc0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f4cc0-Statement" + }, + { + "id": "0x562bb52f4cc0-Statement", + "statement": "0x562bb52f4cd0-ActionStmt", + "source": "print *,\"TEST1-NG =>\",a2-b2" + }, + { + "id": "0x562bb52f4cd0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x562bb52f4bb0-PrintStmt" + }, + { + "id": "0x562bb52f4bb0-PrintStmt", + "Format": "0x562bb52f4bc8-Format", + "OutputItem": [ + "0x562bb52f4ad0-OutputItem", + "0x562bb52f49e0-OutputItem" + ] + }, + { + "id": "0x562bb52f4bc8-Format", + "variantKey": "Star", + "Star": "0x562bb52f4bc8-Star" + }, + { + "id": "0x562bb52f4bc8-Star" + }, + { + "id": "0x562bb52f4ad0-OutputItem", + "variantKey": "Expr", + "Expr": "0x562bb52f4ad0-Expr" + }, + { + "id": "0x562bb52f4ad0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f4af0-LiteralConstant" + }, + { + "id": "0x562bb52f4af0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x562bb52f4af0-CharLiteralConstant" + }, + { + "id": "0x562bb52f4af0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x562bb52f49e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x562bb52f49e0-Expr" + }, + { + "id": "0x562bb52f49e0-Expr", + "variantKey": "Subtract", + "Subtract": "0x562bb52f4a00-Subtract" + }, + { + "id": "0x562bb52f4a00-Subtract", + "left": "0x562bb52f48f0-Expr", + "right": "0x562bb52f4810-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x562bb52f48f0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f1ea0-Designator" + }, + { + "id": "0x562bb52f1ea0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f1eb0-DataRef" + }, + { + "id": "0x562bb52f1eb0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f1eb0-Name" + }, + { + "id": "0x562bb52f1eb0-Name", + "source": "a2" + }, + { + "id": "0x562bb52f4810-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f47b0-Designator" + }, + { + "id": "0x562bb52f47b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f47c0-DataRef" + }, + { + "id": "0x562bb52f47c0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f47c0-Name" + }, + { + "id": "0x562bb52f47c0-Name", + "source": "b2" + }, + { + "id": "0x562bb52f0080-Statement", + "statement": "0x562bb52f0090-EndIfStmt", + "source": "endif" + }, + { + "id": "0x562bb52f0090-EndIfStmt" + }, + { + "id": "0x562bb52f19f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f19f0-ExecutableConstruct" + }, + { + "id": "0x562bb52f19f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f19f0-Statement" + }, + { + "id": "0x562bb52f19f0-Statement", + "statement": "0x562bb52f1a00-ActionStmt", + "source": "a1 = -3267_2" + }, + { + "id": "0x562bb52f1a00-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f4df0-AssignmentStmt" + }, + { + "id": "0x562bb52f4df0-AssignmentStmt", + "Variable": "0x562bb52f4ed0-Variable", + "Expr": "0x562bb52f4e00-Expr" + }, + { + "id": "0x562bb52f4ed0-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52c4af0-Designator" + }, + { + "id": "0x562bb52c4af0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52c4b00-DataRef" + }, + { + "id": "0x562bb52c4b00-DataRef", + "variantKey": "Name", + "Name": "0x562bb52c4b00-Name" + }, + { + "id": "0x562bb52c4b00-Name", + "source": "a1" + }, + { + "id": "0x562bb52f4e00-Expr", + "variantKey": "Negate", + "Negate": "0x562bb52f4e20-Negate" + }, + { + "id": "0x562bb52f4e20-Negate", + "Expr": "0x562bb52f4d10-Expr", + "op": "NEGATE" + }, + { + "id": "0x562bb52f4d10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f4d30-LiteralConstant" + }, + { + "id": "0x562bb52f4d30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x562bb52f4d30-IntLiteralConstant" + }, + { + "id": "0x562bb52f4d30-IntLiteralConstant", + "CharBlock": "3267", + "KindParam": "0x562bb52f4d30-KindParam" + }, + { + "id": "0x562bb52f4d30-KindParam", + "variantKey": "uint64_t", + "uint64_t": "2" + }, + { + "id": "0x562bb52f1610-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f1610-ExecutableConstruct" + }, + { + "id": "0x562bb52f1610-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f1610-Statement" + }, + { + "id": "0x562bb52f1610-Statement", + "statement": "0x562bb52f1620-ActionStmt", + "source": "b1 = -3267.1e0" + }, + { + "id": "0x562bb52f1620-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f4fe0-AssignmentStmt" + }, + { + "id": "0x562bb52f4fe0-AssignmentStmt", + "Variable": "0x562bb52f50c0-Variable", + "Expr": "0x562bb52f4ff0-Expr" + }, + { + "id": "0x562bb52f50c0-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52f13e0-Designator" + }, + { + "id": "0x562bb52f13e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f13f0-DataRef" + }, + { + "id": "0x562bb52f13f0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f13f0-Name" + }, + { + "id": "0x562bb52f13f0-Name", + "source": "b1" + }, + { + "id": "0x562bb52f4ff0-Expr", + "variantKey": "Negate", + "Negate": "0x562bb52f5010-Negate" + }, + { + "id": "0x562bb52f5010-Negate", + "Expr": "0x562bb52f4f00-Expr", + "op": "NEGATE" + }, + { + "id": "0x562bb52f4f00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f4f20-LiteralConstant" + }, + { + "id": "0x562bb52f4f20-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x562bb52f4f20-RealLiteralConstant" + }, + { + "id": "0x562bb52f4f20-RealLiteralConstant", + "real": "0x562bb52f4f20-Real" + }, + { + "id": "0x562bb52f4f20-Real", + "source": "3267.1e0" + }, + { + "id": "0x562bb52f5330-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f5330-ExecutableConstruct" + }, + { + "id": "0x562bb52f5330-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f5330-Statement" + }, + { + "id": "0x562bb52f5330-Statement", + "statement": "0x562bb52f5340-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x562bb52f5340-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f5210-AssignmentStmt" + }, + { + "id": "0x562bb52f5210-AssignmentStmt", + "Variable": "0x562bb52f52f0-Variable", + "Expr": "0x562bb52f5220-Expr" + }, + { + "id": "0x562bb52f52f0-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52f4750-Designator" + }, + { + "id": "0x562bb52f4750-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f4760-DataRef" + }, + { + "id": "0x562bb52f4760-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f4760-Name" + }, + { + "id": "0x562bb52f4760-Name", + "source": "a2" + }, + { + "id": "0x562bb52f5220-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f51b0-Designator" + }, + { + "id": "0x562bb52f51b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f51c0-DataRef" + }, + { + "id": "0x562bb52f51c0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f51c0-Name" + }, + { + "id": "0x562bb52f51c0-Name", + "source": "b1" + }, + { + "id": "0x562bb52f5560-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f5560-ExecutableConstruct" + }, + { + "id": "0x562bb52f5560-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f5560-Statement" + }, + { + "id": "0x562bb52f5560-Statement", + "statement": "0x562bb52f5570-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x562bb52f5570-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f5440-AssignmentStmt" + }, + { + "id": "0x562bb52f5440-AssignmentStmt", + "Variable": "0x562bb52f5520-Variable", + "Expr": "0x562bb52f5450-Expr" + }, + { + "id": "0x562bb52f5520-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52f50f0-Designator" + }, + { + "id": "0x562bb52f50f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f5100-DataRef" + }, + { + "id": "0x562bb52f5100-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f5100-Name" + }, + { + "id": "0x562bb52f5100-Name", + "source": "b2" + }, + { + "id": "0x562bb52f5450-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f53e0-Designator" + }, + { + "id": "0x562bb52f53e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f53f0-DataRef" + }, + { + "id": "0x562bb52f53f0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f53f0-Name" + }, + { + "id": "0x562bb52f53f0-Name", + "source": "a1" + }, + { + "id": "0x562bb52f5620-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f5620-ExecutableConstruct" + }, + { + "id": "0x562bb52f5620-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x562bb52ae490-IfConstruct" + }, + { + "id": "0x562bb52ae490-IfConstruct", + "Statement": "0x562bb52ae560-Statement", + "ExecutionPartConstruct": [ + "0x562bb52f5390-ExecutionPartConstruct", + "0x562bb52f6470-ExecutionPartConstruct" + ], + "Statement": "0x562bb52ae490-Statement" + }, + { + "id": "0x562bb52ae560-Statement", + "statement": "0x562bb52ae570-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x562bb52ae570-IfThenStmt", + "Expr": "0x562bb52f5a30-Expr" + }, + { + "id": "0x562bb52f5a30-Expr", + "variantKey": "NE", + "NE": "0x562bb52f5a50-NE" + }, + { + "id": "0x562bb52f5a50-NE", + "left": "0x562bb52f58f0-Expr", + "right": "0x562bb52f5810-Expr", + "op": "NE" + }, + { + "id": "0x562bb52f58f0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x562bb52f5910-Parentheses" + }, + { + "id": "0x562bb52f5910-Parentheses", + "Expr": "0x562bb52f5730-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x562bb52f5730-Expr", + "variantKey": "Subtract", + "Subtract": "0x562bb52f5750-Subtract" + }, + { + "id": "0x562bb52f5750-Subtract", + "left": "0x562bb52f5bf0-Expr", + "right": "0x562bb52f5b10-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x562bb52f5bf0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f5e40-Designator" + }, + { + "id": "0x562bb52f5e40-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f5e50-DataRef" + }, + { + "id": "0x562bb52f5e50-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f5e50-Name" + }, + { + "id": "0x562bb52f5e50-Name", + "source": "a2" + }, + { + "id": "0x562bb52f5b10-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f5ea0-Designator" + }, + { + "id": "0x562bb52f5ea0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f5eb0-DataRef" + }, + { + "id": "0x562bb52f5eb0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f5eb0-Name" + }, + { + "id": "0x562bb52f5eb0-Name", + "source": "b2" + }, + { + "id": "0x562bb52f5810-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f5830-LiteralConstant" + }, + { + "id": "0x562bb52f5830-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x562bb52f5830-IntLiteralConstant" + }, + { + "id": "0x562bb52f5830-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x562bb52ae548-ExecutionPartConstruct" + }, + { + "id": "0x562bb52f5390-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f5390-ExecutableConstruct" + }, + { + "id": "0x562bb52f5390-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f5390-Statement" + }, + { + "id": "0x562bb52f5390-Statement", + "statement": "0x562bb52f53a0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x562bb52f53a0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x562bb52f5d30-AssignmentStmt" + }, + { + "id": "0x562bb52f5d30-AssignmentStmt", + "Variable": "0x562bb52f5e10-Variable", + "Expr": "0x562bb52f5d40-Expr" + }, + { + "id": "0x562bb52f5e10-Variable", + "variantKey": "Designator", + "Designator": "0x562bb52f1320-Designator" + }, + { + "id": "0x562bb52f1320-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f1330-DataRef" + }, + { + "id": "0x562bb52f1330-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f1330-Name" + }, + { + "id": "0x562bb52f1330-Name", + "source": "ok" + }, + { + "id": "0x562bb52f5d40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f5d60-LiteralConstant" + }, + { + "id": "0x562bb52f5d60-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x562bb52f5d60-LogicalLiteralConstant" + }, + { + "id": "0x562bb52f5d60-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x562bb52f6470-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f6470-ExecutableConstruct" + }, + { + "id": "0x562bb52f6470-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f6470-Statement" + }, + { + "id": "0x562bb52f6470-Statement", + "statement": "0x562bb52f6480-ActionStmt", + "source": "print *,\"TEST1-NG =>\",a2-b2" + }, + { + "id": "0x562bb52f6480-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x562bb52f6360-PrintStmt" + }, + { + "id": "0x562bb52f6360-PrintStmt", + "Format": "0x562bb52f6378-Format", + "OutputItem": [ + "0x562bb52f6280-OutputItem", + "0x562bb52f6190-OutputItem" + ] + }, + { + "id": "0x562bb52f6378-Format", + "variantKey": "Star", + "Star": "0x562bb52f6378-Star" + }, + { + "id": "0x562bb52f6378-Star" + }, + { + "id": "0x562bb52f6280-OutputItem", + "variantKey": "Expr", + "Expr": "0x562bb52f6280-Expr" + }, + { + "id": "0x562bb52f6280-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f62a0-LiteralConstant" + }, + { + "id": "0x562bb52f62a0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x562bb52f62a0-CharLiteralConstant" + }, + { + "id": "0x562bb52f62a0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x562bb52f6190-OutputItem", + "variantKey": "Expr", + "Expr": "0x562bb52f6190-Expr" + }, + { + "id": "0x562bb52f6190-Expr", + "variantKey": "Subtract", + "Subtract": "0x562bb52f61b0-Subtract" + }, + { + "id": "0x562bb52f61b0-Subtract", + "left": "0x562bb52f60a0-Expr", + "right": "0x562bb52f5fc0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x562bb52f60a0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f5cd0-Designator" + }, + { + "id": "0x562bb52f5cd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f5ce0-DataRef" + }, + { + "id": "0x562bb52f5ce0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f5ce0-Name" + }, + { + "id": "0x562bb52f5ce0-Name", + "source": "a2" + }, + { + "id": "0x562bb52f5fc0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f5f60-Designator" + }, + { + "id": "0x562bb52f5f60-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f5f70-DataRef" + }, + { + "id": "0x562bb52f5f70-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f5f70-Name" + }, + { + "id": "0x562bb52f5f70-Name", + "source": "b2" + }, + { + "id": "0x562bb52ae490-Statement", + "statement": "0x562bb52ae4a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x562bb52ae4a0-EndIfStmt" + }, + { + "id": "0x562bb52f5160-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f5160-ExecutableConstruct" + }, + { + "id": "0x562bb52f5160-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x562bb52f68a0-IfConstruct" + }, + { + "id": "0x562bb52f68a0-IfConstruct", + "Statement": "0x562bb52f6970-Statement", + "ExecutionPartConstruct": [ + "0x562bb52f5680-ExecutionPartConstruct" + ], + "Statement": "0x562bb52f68a0-Statement" + }, + { + "id": "0x562bb52f6970-Statement", + "statement": "0x562bb52f6980-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x562bb52f6980-IfThenStmt", + "Expr": "0x562bb52f64c0-Expr" + }, + { + "id": "0x562bb52f64c0-Expr", + "variantKey": "Designator", + "Designator": "0x562bb52f1090-Designator" + }, + { + "id": "0x562bb52f1090-Designator", + "variantKey": "DataRef", + "DataRef": "0x562bb52f10a0-DataRef" + }, + { + "id": "0x562bb52f10a0-DataRef", + "variantKey": "Name", + "Name": "0x562bb52f10a0-Name" + }, + { + "id": "0x562bb52f10a0-Name", + "source": "ok" + }, + { + "id": "0x562bb52f6958-ExecutionPartConstruct" + }, + { + "id": "0x562bb52f5680-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x562bb52f5680-ExecutableConstruct" + }, + { + "id": "0x562bb52f5680-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x562bb52f5680-Statement" + }, + { + "id": "0x562bb52f5680-Statement", + "statement": "0x562bb52f5690-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x562bb52f5690-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x562bb52f67a0-PrintStmt" + }, + { + "id": "0x562bb52f67a0-PrintStmt", + "Format": "0x562bb52f67b8-Format", + "OutputItem": [ + "0x562bb52f66c0-OutputItem" + ] + }, + { + "id": "0x562bb52f67b8-Format", + "variantKey": "Star", + "Star": "0x562bb52f67b8-Star" + }, + { + "id": "0x562bb52f67b8-Star" + }, + { + "id": "0x562bb52f66c0-OutputItem", + "variantKey": "Expr", + "Expr": "0x562bb52f66c0-Expr" + }, + { + "id": "0x562bb52f66c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x562bb52f66e0-LiteralConstant" + }, + { + "id": "0x562bb52f66e0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x562bb52f66e0-CharLiteralConstant" + }, + { + "id": "0x562bb52f66e0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x562bb52f68a0-Statement", + "statement": "0x562bb52f68b0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x562bb52f68b0-EndIfStmt" + }, + { + "id": "0x562bb52ee980-Statement", + "statement": "0x562bb52ee990-EndProgramStmt", + "source": "end" + }, + { + "id": "0x562bb52ee990-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 55d04fc6..c3f77b9e 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -454,4 +454,16 @@ void testFujitsu0000_0004Native() { testNative("fujitsu/0000/0000_0004.f90"); } } + + @Test + void testFujitsu0000_0007() { + testJson("fujitsu/0000/0000_0007.json"); + } + + @Test + void testFujitsu0000_0007Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0007.f90"); + } + } } From 940a2c626c1250e857efdce47927c7d215342491 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 24 Apr 2026 12:13:35 +0100 Subject: [PATCH 026/132] Fix integer literals with kind param --- .../fe/specs/fortran/ast/nodes/expr/IntLiteral.java | 12 ++---------- .../src/pt/up/fe/specs/fortran/parser/FlangName.java | 1 + .../fortran/parser/processors/ExprProcessors.java | 4 ++++ 3 files changed, 7 insertions(+), 10 deletions(-) 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 94fb7b62..75be3a80 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 @@ -33,15 +33,7 @@ public int getValue() { @Override public String getCode() { - - var code = new StringBuilder(); - - // Get kind param prefix - var prefix = get(KIND_PARAM).map(p -> p + "_").orElse(""); - code.append(prefix); - - code.append(getLiteral()); - - return code.toString(); + var suffix = get(KIND_PARAM).map(k -> "_" + k).orElse(""); + return get(SOURCE_LITERAL) + suffix; } } 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 7d71b4a8..ef1edc18 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -80,6 +80,7 @@ public enum FlangName implements StringProvider { SIGNED_INT_LITERAL_CONSTANT, LOGICAL_LITERAL_CONSTANT, REAL_LITERAL_CONSTANT, + KIND_PARAM, STAR, PARENTHESES, UNARY_PLUS, 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 d2a1cb5f..07ad4309 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 @@ -19,6 +19,10 @@ public void stringLiteral(StringLiteral stringLiteral) { public void intLiteral(IntLiteral intLiteral) { intLiteral.set(StringLiteral.SOURCE_LITERAL, attributes().getString(intLiteral, "CharBlock")); + + if (attributes(intLiteral).has(FlangName.KIND_PARAM)) { + intLiteral.setOptional(IntLiteral.KIND_PARAM, attributes().getString(intLiteral, "uint64_t", FlangName.KIND_PARAM)); + } } public void logicalLiteral(LogicalLiteral logicalLiteral) { From 362e3d928adb833b595bb6dbe855bf51a832d881 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Wed, 29 Apr 2026 20:31:04 +0100 Subject: [PATCH 027/132] Add one more Fujitsu test --- .../fujitsu/0000/0000_0019.expected.f90 | 31 + .../fortran/parser/fujitsu/0000/0000_0019.f90 | 31 + .../parser/fujitsu/0000/0000_0019.json | 1813 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1887 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.json 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 new file mode 100644 index 00000000..71dd95fd --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.expected.f90 @@ -0,0 +1,31 @@ +integer*8 :: a1, a2 +real*8 :: b1, b2 +logical :: ok + +ok = .true. + +a1 = 2147483647_8 +b1 = 2147483647.1d0 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST1-NG =>", a2 - b2 +END IF + +a1 = -2147483647_8 +b1 = -2147483647.1d0 +a2 = b1 +b2 = a1 + +IF ((a2 - b2) /= 0) THEN + ok = .false. + PRINT *, "TEST2-NG =>", a2 - b2 +END IF + +IF (ok) THEN + PRINT *, "OK" +END IF + +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.f90 new file mode 100644 index 00000000..7ac6210d --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.f90 @@ -0,0 +1,31 @@ +integer*8 a1, a2 +real*8 b1, b2 +logical ok + +ok = .true. + +a1 = 2147483647_8 +b1 = 2147483647.1D0 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST1-NG =>",a2-b2 +endif + +a1 = -2147483647_8 +b1 = -2147483647.1D0 +a2 = b1 +b2 = a1 + +if ((a2-b2) .ne. 0) then + ok = .false. + print *,"TEST2-NG =>",a2-b2 +endif + +if (ok) then + print *,"OK" +endif + +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.json new file mode 100644 index 00000000..c06aab0d --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0019.json @@ -0,0 +1,1813 @@ +{ + "nodes": [ + { + "id": "0x5610ebac7cc0-Program", + "ProgramUnit": [ + "0x5610ebaf0660-ProgramUnit" + ] + }, + { + "id": "0x5610ebaf0660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x5610ebaf1600-MainProgram" + }, + { + "id": "0x5610ebaf1600-MainProgram", + "SpecificationPart": "0x5610ebaf16a0-SpecificationPart", + "ExecutionPart": "0x5610ebaf1688-ExecutionPart", + "Statement": "0x5610ebaf1600-Statement" + }, + { + "id": "0x5610ebaf16a0-SpecificationPart", + "ImplicitPart": "0x5610ebaf16b8-ImplicitPart", + "DeclarationConstruct": [ + "0x5610ebace5b0-DeclarationConstruct", + "0x5610ebace240-DeclarationConstruct", + "0x5610ebaa0140-DeclarationConstruct" + ] + }, + { + "id": "0x5610ebaf16b8-ImplicitPart" + }, + { + "id": "0x5610ebace5b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5610ebace5b0-SpecificationConstruct" + }, + { + "id": "0x5610ebace5b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebace5b0-Statement" + }, + { + "id": "0x5610ebace5b0-Statement", + "statement": "0x5610ebad6250-TypeDeclarationStmt", + "source": "integer*8 a1, a2" + }, + { + "id": "0x5610ebad6250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5610ebad6280-DeclarationTypeSpec", + "EntityDecl": [ + "0x5610ebaf2b00-EntityDecl", + "0x5610ebaa0050-EntityDecl" + ] + }, + { + "id": "0x5610ebad6280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5610ebad6280-IntrinsicTypeSpec" + }, + { + "id": "0x5610ebad6280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x5610ebad6280-IntegerTypeSpec" + }, + { + "id": "0x5610ebad6280-IntegerTypeSpec", + "KindSelector": "0x5610ebad6280-KindSelector" + }, + { + "id": "0x5610ebad6280-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x5610ebad6280-StarSize" + }, + { + "id": "0x5610ebad6280-StarSize", + "uint64_t": "8" + }, + { + "id": "0x5610ebaf2b00-EntityDecl", + "Name": "0x5610ebaf2bb8-Name" + }, + { + "id": "0x5610ebaf2bb8-Name", + "source": "a1" + }, + { + "id": "0x5610ebaa0050-EntityDecl", + "Name": "0x5610ebaa0108-Name" + }, + { + "id": "0x5610ebaa0108-Name", + "source": "a2" + }, + { + "id": "0x5610ebace240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5610ebace240-SpecificationConstruct" + }, + { + "id": "0x5610ebace240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebace240-Statement" + }, + { + "id": "0x5610ebace240-Statement", + "statement": "0x5610ebaf28d0-TypeDeclarationStmt", + "source": "real*8 b1, b2" + }, + { + "id": "0x5610ebaf28d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5610ebaf2900-DeclarationTypeSpec", + "EntityDecl": [ + "0x5610ebaf1ec0-EntityDecl", + "0x5610ebaf1dd0-EntityDecl" + ] + }, + { + "id": "0x5610ebaf2900-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5610ebaf2900-IntrinsicTypeSpec" + }, + { + "id": "0x5610ebaf2900-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x5610ebaf2900-Real" + }, + { + "id": "0x5610ebaf2900-Real", + "KindSelector": "0x5610ebaf2900-KindSelector" + }, + { + "id": "0x5610ebaf2900-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x5610ebaf2900-StarSize" + }, + { + "id": "0x5610ebaf2900-StarSize", + "uint64_t": "8" + }, + { + "id": "0x5610ebaf1ec0-EntityDecl", + "Name": "0x5610ebaf1f78-Name" + }, + { + "id": "0x5610ebaf1f78-Name", + "source": "b1" + }, + { + "id": "0x5610ebaf1dd0-EntityDecl", + "Name": "0x5610ebaf1e88-Name" + }, + { + "id": "0x5610ebaf1e88-Name", + "source": "b2" + }, + { + "id": "0x5610ebaa0140-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x5610ebaa0140-SpecificationConstruct" + }, + { + "id": "0x5610ebaa0140-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaa0140-Statement" + }, + { + "id": "0x5610ebaa0140-Statement", + "statement": "0x5610ebaf2950-TypeDeclarationStmt", + "source": "logical ok" + }, + { + "id": "0x5610ebaf2950-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5610ebaf2980-DeclarationTypeSpec", + "EntityDecl": [ + "0x5610ebaf2030-EntityDecl" + ] + }, + { + "id": "0x5610ebaf2980-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5610ebaf2980-IntrinsicTypeSpec" + }, + { + "id": "0x5610ebaf2980-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x5610ebaf2980-Logical" + }, + { + "id": "0x5610ebaf2980-Logical" + }, + { + "id": "0x5610ebaf2030-EntityDecl", + "Name": "0x5610ebaf20e8-Name" + }, + { + "id": "0x5610ebaf20e8-Name", + "source": "ok" + }, + { + "id": "0x5610ebaf1688-ExecutionPart", + "ExecutionPartConstruct": [ + "0x5610ebaf3730-ExecutionPartConstruct", + "0x5610ebaf30f0-ExecutionPartConstruct", + "0x5610ebaf32c0-ExecutionPartConstruct", + "0x5610ebaf3cd0-ExecutionPartConstruct", + "0x5610ebaf3f60-ExecutionPartConstruct", + "0x5610ebaf4020-ExecutionPartConstruct", + "0x5610ebaf4680-ExecutionPartConstruct", + "0x5610ebaf42a0-ExecutionPartConstruct", + "0x5610ebaf7fc0-ExecutionPartConstruct", + "0x5610ebaf81f0-ExecutionPartConstruct", + "0x5610ebaf82b0-ExecutionPartConstruct", + "0x5610ebaf7df0-ExecutionPartConstruct" + ] + }, + { + "id": "0x5610ebaf1688-ExecutionPartConstruct" + }, + { + "id": "0x5610ebaf3730-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf3730-ExecutableConstruct" + }, + { + "id": "0x5610ebaf3730-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf3730-Statement" + }, + { + "id": "0x5610ebaf3730-Statement", + "statement": "0x5610ebaf3740-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x5610ebaf3740-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf3610-AssignmentStmt" + }, + { + "id": "0x5610ebaf3610-AssignmentStmt", + "Variable": "0x5610ebaf36f0-Variable", + "Expr": "0x5610ebaf3620-Expr" + }, + { + "id": "0x5610ebaf36f0-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaa0190-Designator" + }, + { + "id": "0x5610ebaa0190-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaa01a0-DataRef" + }, + { + "id": "0x5610ebaa01a0-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaa01a0-Name" + }, + { + "id": "0x5610ebaa01a0-Name", + "source": "ok" + }, + { + "id": "0x5610ebaf3620-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf3640-LiteralConstant" + }, + { + "id": "0x5610ebaf3640-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x5610ebaf3640-LogicalLiteralConstant" + }, + { + "id": "0x5610ebaf3640-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x5610ebaf30f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf30f0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf30f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf30f0-Statement" + }, + { + "id": "0x5610ebaf30f0-Statement", + "statement": "0x5610ebaf3100-ActionStmt", + "source": "a1 = 2147483647_8" + }, + { + "id": "0x5610ebaf3100-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf2fd0-AssignmentStmt" + }, + { + "id": "0x5610ebaf2fd0-AssignmentStmt", + "Variable": "0x5610ebaf30b0-Variable", + "Expr": "0x5610ebaf2fe0-Expr" + }, + { + "id": "0x5610ebaf30b0-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf23f0-Designator" + }, + { + "id": "0x5610ebaf23f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf2400-DataRef" + }, + { + "id": "0x5610ebaf2400-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf2400-Name" + }, + { + "id": "0x5610ebaf2400-Name", + "source": "a1" + }, + { + "id": "0x5610ebaf2fe0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf3000-LiteralConstant" + }, + { + "id": "0x5610ebaf3000-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5610ebaf3000-IntLiteralConstant" + }, + { + "id": "0x5610ebaf3000-IntLiteralConstant", + "CharBlock": "2147483647", + "KindParam": "0x5610ebaf3000-KindParam" + }, + { + "id": "0x5610ebaf3000-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x5610ebaf32c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf32c0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf32c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf32c0-Statement" + }, + { + "id": "0x5610ebaf32c0-Statement", + "statement": "0x5610ebaf32d0-ActionStmt", + "source": "b1 = 2147483647.1d0" + }, + { + "id": "0x5610ebaf32d0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf31a0-AssignmentStmt" + }, + { + "id": "0x5610ebaf31a0-AssignmentStmt", + "Variable": "0x5610ebaf3280-Variable", + "Expr": "0x5610ebaf31b0-Expr" + }, + { + "id": "0x5610ebaf3280-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf3780-Designator" + }, + { + "id": "0x5610ebaf3780-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf3790-DataRef" + }, + { + "id": "0x5610ebaf3790-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf3790-Name" + }, + { + "id": "0x5610ebaf3790-Name", + "source": "b1" + }, + { + "id": "0x5610ebaf31b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf31d0-LiteralConstant" + }, + { + "id": "0x5610ebaf31d0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5610ebaf31d0-RealLiteralConstant" + }, + { + "id": "0x5610ebaf31d0-RealLiteralConstant", + "real": "0x5610ebaf31d0-Real" + }, + { + "id": "0x5610ebaf31d0-Real", + "source": "2147483647.1d0" + }, + { + "id": "0x5610ebaf3cd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf3cd0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf3cd0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf3cd0-Statement" + }, + { + "id": "0x5610ebaf3cd0-Statement", + "statement": "0x5610ebaf3ce0-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x5610ebaf3ce0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf3b40-AssignmentStmt" + }, + { + "id": "0x5610ebaf3b40-AssignmentStmt", + "Variable": "0x5610ebaf3c20-Variable", + "Expr": "0x5610ebaf3b50-Expr" + }, + { + "id": "0x5610ebaf3c20-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf3140-Designator" + }, + { + "id": "0x5610ebaf3140-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf3150-DataRef" + }, + { + "id": "0x5610ebaf3150-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf3150-Name" + }, + { + "id": "0x5610ebaf3150-Name", + "source": "a2" + }, + { + "id": "0x5610ebaf3b50-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf3a00-Designator" + }, + { + "id": "0x5610ebaf3a00-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf3a10-DataRef" + }, + { + "id": "0x5610ebaf3a10-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf3a10-Name" + }, + { + "id": "0x5610ebaf3a10-Name", + "source": "b1" + }, + { + "id": "0x5610ebaf3f60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf3f60-ExecutableConstruct" + }, + { + "id": "0x5610ebaf3f60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf3f60-Statement" + }, + { + "id": "0x5610ebaf3f60-Statement", + "statement": "0x5610ebaf3f70-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x5610ebaf3f70-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf3e40-AssignmentStmt" + }, + { + "id": "0x5610ebaf3e40-AssignmentStmt", + "Variable": "0x5610ebaf3f20-Variable", + "Expr": "0x5610ebaf3e50-Expr" + }, + { + "id": "0x5610ebaf3f20-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf3310-Designator" + }, + { + "id": "0x5610ebaf3310-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf3320-DataRef" + }, + { + "id": "0x5610ebaf3320-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf3320-Name" + }, + { + "id": "0x5610ebaf3320-Name", + "source": "b2" + }, + { + "id": "0x5610ebaf3e50-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf3de0-Designator" + }, + { + "id": "0x5610ebaf3de0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf3df0-DataRef" + }, + { + "id": "0x5610ebaf3df0-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf3df0-Name" + }, + { + "id": "0x5610ebaf3df0-Name", + "source": "a1" + }, + { + "id": "0x5610ebaf4020-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf4020-ExecutableConstruct" + }, + { + "id": "0x5610ebaf4020-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x5610ebaf2d10-IfConstruct" + }, + { + "id": "0x5610ebaf2d10-IfConstruct", + "Statement": "0x5610ebaf2de0-Statement", + "ExecutionPartConstruct": [ + "0x5610ebaf3d90-ExecutionPartConstruct", + "0x5610ebaf7950-ExecutionPartConstruct" + ], + "Statement": "0x5610ebaf2d10-Statement" + }, + { + "id": "0x5610ebaf2de0-Statement", + "statement": "0x5610ebaf2df0-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x5610ebaf2df0-IfThenStmt", + "Expr": "0x5610ebaf4890-Expr" + }, + { + "id": "0x5610ebaf4890-Expr", + "variantKey": "NE", + "NE": "0x5610ebaf48b0-NE" + }, + { + "id": "0x5610ebaf48b0-NE", + "left": "0x5610ebaf4520-Expr", + "right": "0x5610ebaf4440-Expr", + "op": "NE" + }, + { + "id": "0x5610ebaf4520-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x5610ebaf4540-Parentheses" + }, + { + "id": "0x5610ebaf4540-Parentheses", + "Expr": "0x5610ebaf4360-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5610ebaf4360-Expr", + "variantKey": "Subtract", + "Subtract": "0x5610ebaf4380-Subtract" + }, + { + "id": "0x5610ebaf4380-Subtract", + "left": "0x5610ebaf4a50-Expr", + "right": "0x5610ebaf4970-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5610ebaf4a50-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf54f0-Designator" + }, + { + "id": "0x5610ebaf54f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf5500-DataRef" + }, + { + "id": "0x5610ebaf5500-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf5500-Name" + }, + { + "id": "0x5610ebaf5500-Name", + "source": "a2" + }, + { + "id": "0x5610ebaf4970-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf5710-Designator" + }, + { + "id": "0x5610ebaf5710-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf5720-DataRef" + }, + { + "id": "0x5610ebaf5720-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf5720-Name" + }, + { + "id": "0x5610ebaf5720-Name", + "source": "b2" + }, + { + "id": "0x5610ebaf4440-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf4460-LiteralConstant" + }, + { + "id": "0x5610ebaf4460-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5610ebaf4460-IntLiteralConstant" + }, + { + "id": "0x5610ebaf4460-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5610ebaf2dc8-ExecutionPartConstruct" + }, + { + "id": "0x5610ebaf3d90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf3d90-ExecutableConstruct" + }, + { + "id": "0x5610ebaf3d90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf3d90-Statement" + }, + { + "id": "0x5610ebaf3d90-Statement", + "statement": "0x5610ebaf3da0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x5610ebaf3da0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf4c70-AssignmentStmt" + }, + { + "id": "0x5610ebaf4c70-AssignmentStmt", + "Variable": "0x5610ebaf4d50-Variable", + "Expr": "0x5610ebaf4c80-Expr" + }, + { + "id": "0x5610ebaf4d50-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf2390-Designator" + }, + { + "id": "0x5610ebaf2390-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf23a0-DataRef" + }, + { + "id": "0x5610ebaf23a0-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf23a0-Name" + }, + { + "id": "0x5610ebaf23a0-Name", + "source": "ok" + }, + { + "id": "0x5610ebaf4c80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf4ca0-LiteralConstant" + }, + { + "id": "0x5610ebaf4ca0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x5610ebaf4ca0-LogicalLiteralConstant" + }, + { + "id": "0x5610ebaf4ca0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x5610ebaf7950-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf7950-ExecutableConstruct" + }, + { + "id": "0x5610ebaf7950-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf7950-Statement" + }, + { + "id": "0x5610ebaf7950-Statement", + "statement": "0x5610ebaf7960-ActionStmt", + "source": "print *,\"TEST1-NG =>\",a2-b2" + }, + { + "id": "0x5610ebaf7960-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x5610ebaf7840-PrintStmt" + }, + { + "id": "0x5610ebaf7840-PrintStmt", + "Format": "0x5610ebaf7858-Format", + "OutputItem": [ + "0x5610ebaf7760-OutputItem", + "0x5610ebaf7670-OutputItem" + ] + }, + { + "id": "0x5610ebaf7858-Format", + "variantKey": "Star", + "Star": "0x5610ebaf7858-Star" + }, + { + "id": "0x5610ebaf7858-Star" + }, + { + "id": "0x5610ebaf7760-OutputItem", + "variantKey": "Expr", + "Expr": "0x5610ebaf7760-Expr" + }, + { + "id": "0x5610ebaf7760-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf7780-LiteralConstant" + }, + { + "id": "0x5610ebaf7780-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x5610ebaf7780-CharLiteralConstant" + }, + { + "id": "0x5610ebaf7780-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x5610ebaf7670-OutputItem", + "variantKey": "Expr", + "Expr": "0x5610ebaf7670-Expr" + }, + { + "id": "0x5610ebaf7670-Expr", + "variantKey": "Subtract", + "Subtract": "0x5610ebaf7690-Subtract" + }, + { + "id": "0x5610ebaf7690-Subtract", + "left": "0x5610ebaf7580-Expr", + "right": "0x5610ebaf74a0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5610ebaf7580-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf4b30-Designator" + }, + { + "id": "0x5610ebaf4b30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf4b40-DataRef" + }, + { + "id": "0x5610ebaf4b40-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf4b40-Name" + }, + { + "id": "0x5610ebaf4b40-Name", + "source": "a2" + }, + { + "id": "0x5610ebaf74a0-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf7440-Designator" + }, + { + "id": "0x5610ebaf7440-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf7450-DataRef" + }, + { + "id": "0x5610ebaf7450-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf7450-Name" + }, + { + "id": "0x5610ebaf7450-Name", + "source": "b2" + }, + { + "id": "0x5610ebaf2d10-Statement", + "statement": "0x5610ebaf2d20-EndIfStmt", + "source": "endif" + }, + { + "id": "0x5610ebaf2d20-EndIfStmt" + }, + { + "id": "0x5610ebaf4680-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf4680-ExecutableConstruct" + }, + { + "id": "0x5610ebaf4680-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf4680-Statement" + }, + { + "id": "0x5610ebaf4680-Statement", + "statement": "0x5610ebaf4690-ActionStmt", + "source": "a1 = -2147483647_8" + }, + { + "id": "0x5610ebaf4690-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf7a80-AssignmentStmt" + }, + { + "id": "0x5610ebaf7a80-AssignmentStmt", + "Variable": "0x5610ebaf7b60-Variable", + "Expr": "0x5610ebaf7a90-Expr" + }, + { + "id": "0x5610ebaf7b60-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebac7af0-Designator" + }, + { + "id": "0x5610ebac7af0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebac7b00-DataRef" + }, + { + "id": "0x5610ebac7b00-DataRef", + "variantKey": "Name", + "Name": "0x5610ebac7b00-Name" + }, + { + "id": "0x5610ebac7b00-Name", + "source": "a1" + }, + { + "id": "0x5610ebaf7a90-Expr", + "variantKey": "Negate", + "Negate": "0x5610ebaf7ab0-Negate" + }, + { + "id": "0x5610ebaf7ab0-Negate", + "Expr": "0x5610ebaf79a0-Expr", + "op": "NEGATE" + }, + { + "id": "0x5610ebaf79a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf79c0-LiteralConstant" + }, + { + "id": "0x5610ebaf79c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5610ebaf79c0-IntLiteralConstant" + }, + { + "id": "0x5610ebaf79c0-IntLiteralConstant", + "CharBlock": "2147483647", + "KindParam": "0x5610ebaf79c0-KindParam" + }, + { + "id": "0x5610ebaf79c0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x5610ebaf42a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf42a0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf42a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf42a0-Statement" + }, + { + "id": "0x5610ebaf42a0-Statement", + "statement": "0x5610ebaf42b0-ActionStmt", + "source": "b1 = -2147483647.1d0" + }, + { + "id": "0x5610ebaf42b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf7c70-AssignmentStmt" + }, + { + "id": "0x5610ebaf7c70-AssignmentStmt", + "Variable": "0x5610ebaf7d50-Variable", + "Expr": "0x5610ebaf7c80-Expr" + }, + { + "id": "0x5610ebaf7d50-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf4070-Designator" + }, + { + "id": "0x5610ebaf4070-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf4080-DataRef" + }, + { + "id": "0x5610ebaf4080-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf4080-Name" + }, + { + "id": "0x5610ebaf4080-Name", + "source": "b1" + }, + { + "id": "0x5610ebaf7c80-Expr", + "variantKey": "Negate", + "Negate": "0x5610ebaf7ca0-Negate" + }, + { + "id": "0x5610ebaf7ca0-Negate", + "Expr": "0x5610ebaf7b90-Expr", + "op": "NEGATE" + }, + { + "id": "0x5610ebaf7b90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf7bb0-LiteralConstant" + }, + { + "id": "0x5610ebaf7bb0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5610ebaf7bb0-RealLiteralConstant" + }, + { + "id": "0x5610ebaf7bb0-RealLiteralConstant", + "real": "0x5610ebaf7bb0-Real" + }, + { + "id": "0x5610ebaf7bb0-Real", + "source": "2147483647.1d0" + }, + { + "id": "0x5610ebaf7fc0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf7fc0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf7fc0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf7fc0-Statement" + }, + { + "id": "0x5610ebaf7fc0-Statement", + "statement": "0x5610ebaf7fd0-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x5610ebaf7fd0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf7ea0-AssignmentStmt" + }, + { + "id": "0x5610ebaf7ea0-AssignmentStmt", + "Variable": "0x5610ebaf7f80-Variable", + "Expr": "0x5610ebaf7eb0-Expr" + }, + { + "id": "0x5610ebaf7f80-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf73e0-Designator" + }, + { + "id": "0x5610ebaf73e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf73f0-DataRef" + }, + { + "id": "0x5610ebaf73f0-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf73f0-Name" + }, + { + "id": "0x5610ebaf73f0-Name", + "source": "a2" + }, + { + "id": "0x5610ebaf7eb0-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf7e40-Designator" + }, + { + "id": "0x5610ebaf7e40-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf7e50-DataRef" + }, + { + "id": "0x5610ebaf7e50-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf7e50-Name" + }, + { + "id": "0x5610ebaf7e50-Name", + "source": "b1" + }, + { + "id": "0x5610ebaf81f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf81f0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf81f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf81f0-Statement" + }, + { + "id": "0x5610ebaf81f0-Statement", + "statement": "0x5610ebaf8200-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x5610ebaf8200-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf80d0-AssignmentStmt" + }, + { + "id": "0x5610ebaf80d0-AssignmentStmt", + "Variable": "0x5610ebaf81b0-Variable", + "Expr": "0x5610ebaf80e0-Expr" + }, + { + "id": "0x5610ebaf81b0-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf7d80-Designator" + }, + { + "id": "0x5610ebaf7d80-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf7d90-DataRef" + }, + { + "id": "0x5610ebaf7d90-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf7d90-Name" + }, + { + "id": "0x5610ebaf7d90-Name", + "source": "b2" + }, + { + "id": "0x5610ebaf80e0-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf8070-Designator" + }, + { + "id": "0x5610ebaf8070-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf8080-DataRef" + }, + { + "id": "0x5610ebaf8080-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf8080-Name" + }, + { + "id": "0x5610ebaf8080-Name", + "source": "a1" + }, + { + "id": "0x5610ebaf82b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf82b0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf82b0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x5610ebab1490-IfConstruct" + }, + { + "id": "0x5610ebab1490-IfConstruct", + "Statement": "0x5610ebab1560-Statement", + "ExecutionPartConstruct": [ + "0x5610ebaf8020-ExecutionPartConstruct", + "0x5610ebaf9100-ExecutionPartConstruct" + ], + "Statement": "0x5610ebab1490-Statement" + }, + { + "id": "0x5610ebab1560-Statement", + "statement": "0x5610ebab1570-IfThenStmt", + "source": "if((a2-b2) .ne. 0) then" + }, + { + "id": "0x5610ebab1570-IfThenStmt", + "Expr": "0x5610ebaf86c0-Expr" + }, + { + "id": "0x5610ebaf86c0-Expr", + "variantKey": "NE", + "NE": "0x5610ebaf86e0-NE" + }, + { + "id": "0x5610ebaf86e0-NE", + "left": "0x5610ebaf8580-Expr", + "right": "0x5610ebaf84a0-Expr", + "op": "NE" + }, + { + "id": "0x5610ebaf8580-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x5610ebaf85a0-Parentheses" + }, + { + "id": "0x5610ebaf85a0-Parentheses", + "Expr": "0x5610ebaf83c0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x5610ebaf83c0-Expr", + "variantKey": "Subtract", + "Subtract": "0x5610ebaf83e0-Subtract" + }, + { + "id": "0x5610ebaf83e0-Subtract", + "left": "0x5610ebaf8880-Expr", + "right": "0x5610ebaf87a0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5610ebaf8880-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf8ad0-Designator" + }, + { + "id": "0x5610ebaf8ad0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf8ae0-DataRef" + }, + { + "id": "0x5610ebaf8ae0-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf8ae0-Name" + }, + { + "id": "0x5610ebaf8ae0-Name", + "source": "a2" + }, + { + "id": "0x5610ebaf87a0-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf8b30-Designator" + }, + { + "id": "0x5610ebaf8b30-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf8b40-DataRef" + }, + { + "id": "0x5610ebaf8b40-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf8b40-Name" + }, + { + "id": "0x5610ebaf8b40-Name", + "source": "b2" + }, + { + "id": "0x5610ebaf84a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf84c0-LiteralConstant" + }, + { + "id": "0x5610ebaf84c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5610ebaf84c0-IntLiteralConstant" + }, + { + "id": "0x5610ebaf84c0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x5610ebab1548-ExecutionPartConstruct" + }, + { + "id": "0x5610ebaf8020-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf8020-ExecutableConstruct" + }, + { + "id": "0x5610ebaf8020-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf8020-Statement" + }, + { + "id": "0x5610ebaf8020-Statement", + "statement": "0x5610ebaf8030-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x5610ebaf8030-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x5610ebaf89c0-AssignmentStmt" + }, + { + "id": "0x5610ebaf89c0-AssignmentStmt", + "Variable": "0x5610ebaf8aa0-Variable", + "Expr": "0x5610ebaf89d0-Expr" + }, + { + "id": "0x5610ebaf8aa0-Variable", + "variantKey": "Designator", + "Designator": "0x5610ebaf3fb0-Designator" + }, + { + "id": "0x5610ebaf3fb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf3fc0-DataRef" + }, + { + "id": "0x5610ebaf3fc0-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf3fc0-Name" + }, + { + "id": "0x5610ebaf3fc0-Name", + "source": "ok" + }, + { + "id": "0x5610ebaf89d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf89f0-LiteralConstant" + }, + { + "id": "0x5610ebaf89f0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x5610ebaf89f0-LogicalLiteralConstant" + }, + { + "id": "0x5610ebaf89f0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x5610ebaf9100-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf9100-ExecutableConstruct" + }, + { + "id": "0x5610ebaf9100-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf9100-Statement" + }, + { + "id": "0x5610ebaf9100-Statement", + "statement": "0x5610ebaf9110-ActionStmt", + "source": "print *,\"TEST2-NG =>\",a2-b2" + }, + { + "id": "0x5610ebaf9110-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x5610ebaf8ff0-PrintStmt" + }, + { + "id": "0x5610ebaf8ff0-PrintStmt", + "Format": "0x5610ebaf9008-Format", + "OutputItem": [ + "0x5610ebaf8f10-OutputItem", + "0x5610ebaf8e20-OutputItem" + ] + }, + { + "id": "0x5610ebaf9008-Format", + "variantKey": "Star", + "Star": "0x5610ebaf9008-Star" + }, + { + "id": "0x5610ebaf9008-Star" + }, + { + "id": "0x5610ebaf8f10-OutputItem", + "variantKey": "Expr", + "Expr": "0x5610ebaf8f10-Expr" + }, + { + "id": "0x5610ebaf8f10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf8f30-LiteralConstant" + }, + { + "id": "0x5610ebaf8f30-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x5610ebaf8f30-CharLiteralConstant" + }, + { + "id": "0x5610ebaf8f30-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x5610ebaf8e20-OutputItem", + "variantKey": "Expr", + "Expr": "0x5610ebaf8e20-Expr" + }, + { + "id": "0x5610ebaf8e20-Expr", + "variantKey": "Subtract", + "Subtract": "0x5610ebaf8e40-Subtract" + }, + { + "id": "0x5610ebaf8e40-Subtract", + "left": "0x5610ebaf8d30-Expr", + "right": "0x5610ebaf8c50-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x5610ebaf8d30-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf8960-Designator" + }, + { + "id": "0x5610ebaf8960-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf8970-DataRef" + }, + { + "id": "0x5610ebaf8970-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf8970-Name" + }, + { + "id": "0x5610ebaf8970-Name", + "source": "a2" + }, + { + "id": "0x5610ebaf8c50-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf8bf0-Designator" + }, + { + "id": "0x5610ebaf8bf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf8c00-DataRef" + }, + { + "id": "0x5610ebaf8c00-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf8c00-Name" + }, + { + "id": "0x5610ebaf8c00-Name", + "source": "b2" + }, + { + "id": "0x5610ebab1490-Statement", + "statement": "0x5610ebab14a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x5610ebab14a0-EndIfStmt" + }, + { + "id": "0x5610ebaf7df0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf7df0-ExecutableConstruct" + }, + { + "id": "0x5610ebaf7df0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x5610ebaf9530-IfConstruct" + }, + { + "id": "0x5610ebaf9530-IfConstruct", + "Statement": "0x5610ebaf9600-Statement", + "ExecutionPartConstruct": [ + "0x5610ebaf8310-ExecutionPartConstruct" + ], + "Statement": "0x5610ebaf9530-Statement" + }, + { + "id": "0x5610ebaf9600-Statement", + "statement": "0x5610ebaf9610-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x5610ebaf9610-IfThenStmt", + "Expr": "0x5610ebaf9150-Expr" + }, + { + "id": "0x5610ebaf9150-Expr", + "variantKey": "Designator", + "Designator": "0x5610ebaf3d20-Designator" + }, + { + "id": "0x5610ebaf3d20-Designator", + "variantKey": "DataRef", + "DataRef": "0x5610ebaf3d30-DataRef" + }, + { + "id": "0x5610ebaf3d30-DataRef", + "variantKey": "Name", + "Name": "0x5610ebaf3d30-Name" + }, + { + "id": "0x5610ebaf3d30-Name", + "source": "ok" + }, + { + "id": "0x5610ebaf95e8-ExecutionPartConstruct" + }, + { + "id": "0x5610ebaf8310-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5610ebaf8310-ExecutableConstruct" + }, + { + "id": "0x5610ebaf8310-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5610ebaf8310-Statement" + }, + { + "id": "0x5610ebaf8310-Statement", + "statement": "0x5610ebaf8320-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x5610ebaf8320-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x5610ebaf9430-PrintStmt" + }, + { + "id": "0x5610ebaf9430-PrintStmt", + "Format": "0x5610ebaf9448-Format", + "OutputItem": [ + "0x5610ebaf9350-OutputItem" + ] + }, + { + "id": "0x5610ebaf9448-Format", + "variantKey": "Star", + "Star": "0x5610ebaf9448-Star" + }, + { + "id": "0x5610ebaf9448-Star" + }, + { + "id": "0x5610ebaf9350-OutputItem", + "variantKey": "Expr", + "Expr": "0x5610ebaf9350-Expr" + }, + { + "id": "0x5610ebaf9350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5610ebaf9370-LiteralConstant" + }, + { + "id": "0x5610ebaf9370-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x5610ebaf9370-CharLiteralConstant" + }, + { + "id": "0x5610ebaf9370-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x5610ebaf9530-Statement", + "statement": "0x5610ebaf9540-EndIfStmt", + "source": "endif" + }, + { + "id": "0x5610ebaf9540-EndIfStmt" + }, + { + "id": "0x5610ebaf1600-Statement", + "statement": "0x5610ebaf1610-EndProgramStmt", + "source": "end" + }, + { + "id": "0x5610ebaf1610-EndProgramStmt" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 c3f77b9e..26a3f562 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -466,4 +466,16 @@ void testFujitsu0000_0007Native() { testNative("fujitsu/0000/0000_0007.f90"); } } + + @Test + void testFujitsu0000_0019() { + testJson("fujitsu/0000/0000_0019.json"); + } + + @Test + void testFujitsu0000_0019Native() { + if (SpecsPlatforms.isLinux()) { + testJson("fujitsu/0000/0000_0019.json"); + } + } } From d851293eefb5998b211c1de0c96513a5912b0351 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 30 Apr 2026 00:07:28 +0100 Subject: [PATCH 028/132] Change type and array type declarations to be considered as keywords --- .../fe/specs/fortran/ast/FortranKeyword.java | 8 + .../specification/ArraySpecification.java | 2 +- .../specs/fortran/ast/nodes/stmt/DoStmt.java | 2 +- .../ast/nodes/stmt/ifstmt/IfThenStmt.java | 2 +- .../nodes/stmt/selectcase/SelectCaseStmt.java | 2 +- .../fortran/ast/nodes/type/CharacterType.java | 3 +- .../ast/nodes/type/DoublePrecisionType.java | 3 +- .../fortran/ast/nodes/type/IntegerType.java | 3 +- .../fortran/ast/nodes/type/LogicalType.java | 3 +- .../fortran/ast/nodes/type/RealType.java | 3 +- .../nodes/type/attributes/DimensionSpec.java | 5 +- .../arrays/array_declaration.expected.f90 | 12 +- .../arrays/array_implied_do.expected.f90 | 12 +- .../parser/arrays/element_access.expected.f90 | 4 +- .../parser/binary_operator.expected.f90 | 26 +-- .../fortran/parser/concurrent.expected.f90 | 4 +- .../conditionalstmt/chained_if.expected.f90 | 20 +-- .../conditionalstmt/if_then.expected.f90 | 10 +- .../conditionalstmt/if_then_else.expected.f90 | 14 +- .../conditionalstmt/logical_if.expected.f90 | 4 +- .../named_chained_if.expected.f90 | 20 +-- .../named_select_case.expected.f90 | 4 +- .../conditionalstmt/select_case.expected.f90 | 2 +- .../select_case_list.expected.f90 | 2 +- .../select_case_range.expected.f90 | 2 +- .../parser/decl/kind_selector.expected.f90 | 4 +- .../decl/legacy_kind_selector.expected.f90 | 4 +- .../fortran/parser/declaration.expected.f90 | 2 +- .../fortran/parser/directive.expected.f90 | 4 +- .../fortran/parser/do.expected.f90 | 4 +- .../fortran/parser/expr/negate.expected.f90 | 2 +- .../fortran/parser/expr/not.expected.f90 | 2 +- .../parser/expr/parentheses.expected.f90 | 2 +- .../parser/expr/unary_plus.expected.f90 | 2 +- .../fujitsu/0000/0000_0000.expected.f90 | 4 +- .../fujitsu/0000/0000_0001.expected.f90 | 6 +- .../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 | 4 +- .../fortran/parser/parenexpr.expected.f90 | 4 +- .../fortran/parser/polybench/3mm.expected.f90 | 165 +++++++++--------- .../fortran/parser/subroutine.expected.f90 | 8 +- 45 files changed, 217 insertions(+), 202 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 20b7d0a9..a324864c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -17,6 +17,14 @@ public enum FortranKeyword { CASE, DEFAULT, + // Types + INTEGER, + REAL, + CHARACTER, + LOGICAL, + DOUBLE, + PRECISION, + DIMENSION, ; public String getKeyword(boolean lowercase) { 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 index 14d53ca6..8f59a7bb 100644 --- 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 @@ -23,7 +23,7 @@ public String getCode() { var code = new StringBuilder(); code.append("("); - var shapesCode = shapes.stream().map(ShapeSpecification::getCode).collect(Collectors.joining(",")); + 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/stmt/DoStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DoStmt.java index 97fd7efc..92e6ce53 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 @@ -51,7 +51,7 @@ public String getCode() { var code = new StringBuilder(); Optional name = getName(); - name.ifPresent(str -> code.append(str).append(": ")); + name.ifPresent(str -> code.append(str).append(" : ")); code.append(keyword(DO)).append(" ").append(getControlCode()).append(ln()); 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 f0a76126..1128905f 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 @@ -26,7 +26,7 @@ public String getCode() { var code = new StringBuilder(); - nameOpt.ifPresent(name -> code.append(name).append(": ")); + nameOpt.ifPresent(name -> code.append(name).append(" : ")); code.append(keyword(FortranKeyword.IF)) .append(" (") 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 021d29c2..cec28846 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 @@ -24,7 +24,7 @@ public String getCode() { var code = new StringBuilder(); - nameOpt.ifPresent(name -> code.append(name).append(": ")); + nameOpt.ifPresent(name -> code.append(name).append(" : ")); code.append(keyword(FortranKeyword.SELECT)) .append(" ") 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 7f8e4b20..34e38942 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 @@ -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 java.util.Collection; @@ -12,6 +13,6 @@ public CharacterType(DataStore data, Collection children) @Override public String getCode() { - return "character"; + return keyword(FortranKeyword.CHARACTER); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DoublePrecisionType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DoublePrecisionType.java index e151f854..a181c09c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DoublePrecisionType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/DoublePrecisionType.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 java.util.Collection; @@ -13,6 +14,6 @@ public DoublePrecisionType(DataStore data, Collection chi @Override public String getCode() { - return "double precision"; + return keyword(FortranKeyword.DOUBLE) + " " + keyword(FortranKeyword.PRECISION); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/IntegerType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/IntegerType.java index adf0a758..96635f33 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/IntegerType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/IntegerType.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; @@ -21,6 +22,6 @@ public Optional getKindSelector() { @Override public String getCode() { - return "integer" + getKindSelector().map(FortranNode::getCode).orElse(""); + return keyword(FortranKeyword.INTEGER) + getKindSelector().map(FortranNode::getCode).orElse(""); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.java index 2f63493b..0d32126a 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.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 java.util.Collection; @@ -16,6 +17,6 @@ public LogicalType(DataStore data, Collection children) { @Override public String getCode() { - return "logical"; + return keyword(FortranKeyword.LOGICAL); } } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.java index a49ccba3..6fa143f1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/RealType.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; @@ -18,6 +19,6 @@ public Optional getKindSelector() { @Override public String getCode() { - return "real" + getKindSelector().map(FortranNode::getCode).orElse(""); + return keyword(FortranKeyword.REAL) + getKindSelector().map(FortranNode::getCode).orElse(""); } } 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 fd1d4cd7..c92f4645 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 @@ -1,12 +1,13 @@ 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.ArraySpecification; import java.util.Collection; -public class DimensionSpec extends AttributeSpecifier { +public class DimensionSpec extends AttributeSpecifier { public DimensionSpec(DataStore data, Collection children) { super(data, children); } @@ -14,7 +15,7 @@ public DimensionSpec(DataStore data, Collection children) @Override public String getCode() { var arraySpec = getArraySpecification(); - return "dimension" + arraySpec.getCode(); + return keyword(FortranKeyword.DIMENSION) + arraySpec.getCode(); } private ArraySpecification getArraySpecification() { diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 b/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 index 0acdefb5..e62fa157 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 @@ -1,12 +1,12 @@ PROGRAM test_array_assign - integer, dimension(5) :: arr, arr2, arr3 - integer, ALLOCATABLE :: arr_alloc(:) - integer, dimension(2,3,4) :: matrix3d - integer, dimension(0:4) :: arr_custom_bound + INTEGER, DIMENSION(5) :: arr, arr2, arr3 + INTEGER, ALLOCATABLE :: arr_alloc(:) + INTEGER, DIMENSION(2, 3, 4) :: matrix3d + INTEGER, DIMENSION(0:4) :: arr_custom_bound arr = [10, 20, 30, 40, 50] arr2 = [10, 20, 30, 40, 50] - arr3 = [integer :: 10, 20, 30, 40, 50] - arr_alloc = [integer ::] + arr3 = [INTEGER :: 10, 20, 30, 40, 50] + arr_alloc = [INTEGER ::] arr_custom_bound = [10, 20, 30, 40, 50] END PROGRAM test_array_assign \ No newline at end of file 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 918337a7..8e87470b 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,9 +1,9 @@ PROGRAM test_implied_do - integer :: i, j - integer, dimension(5) :: arr1, arr2, arr3 - integer, dimension(10) :: arr4, arr5 - integer, dimension(9) :: arr6 - integer, dimension(15) :: arr7 + INTEGER :: i, j + INTEGER, DIMENSION(5) :: arr1, arr2, arr3 + INTEGER, DIMENSION(10) :: arr4, arr5 + INTEGER, DIMENSION(9) :: arr6 + INTEGER, DIMENSION(15) :: arr7 arr1 = [(i, i = 1, 5)] @@ -13,7 +13,7 @@ PROGRAM test_implied_do arr4 = [0, (i, i = 1, 8), 99] - arr5 = [integer :: (i * 2, i = 1, 10)] + arr5 = [INTEGER :: (i * 2, i = 1, 10)] arr6 = [((i + j, i = 1, 3), j = 1, 3)] 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 87974e7b..18048167 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 32b1d995..a21664ba 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 @@ -1,18 +1,18 @@ PROGRAM test_exprs - logical :: l - integer :: i, a = 1, b = 1 - l = 0 < a - l = 2 <= 3 - l = b > 5 - l = 6 >= 7 - l = a == b - l = 0 /= 1 + LOGICAL :: l + INTEGER :: i, a = 1, b = 1 + l = 0 < a + l = 2 <= 3 + l = b > 5 + l = 6 >= 7 + l = a == b + l = 0 /= 1 - i = a + 1 - i = a - b - i = 4 * 5 - i = 6 / b + i = a + 1 + i = a - b + i = 4 * 5 + i = 6 / b - i = 0 + 1 - b * 5 / a + 7 + 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/concurrent.expected.f90 b/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 index 79a849c1..fde7d042 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 64f24c9e..18f08b41 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 @@ -1,13 +1,13 @@ PROGRAM if - logical :: cond1, cond2 - cond1 = .false. - cond2 = .true. + LOGICAL :: cond1, cond2 + cond1 = .false. + cond2 = .true. - IF (cond1) THEN - PRINT *, "cond1 is true" - ELSE IF (cond2) THEN - PRINT *, "cond2 is true" - ELSE - PRINT *, "both conditions are false" - END IF + IF (cond1) THEN + PRINT *, "cond1 is true" + ELSE IF (cond2) THEN + PRINT *, "cond2 is true" + ELSE + PRINT *, "both conditions are false" + END IF END PROGRAM if \ No newline at end of file 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 960a14d5..23e6ae6e 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 @@ -1,8 +1,8 @@ PROGRAM if - logical :: cond - cond = .false. + LOGICAL :: cond + cond = .false. - IF (cond) THEN - PRINT *, "cond is true" - END IF + IF (cond) THEN + PRINT *, "cond is true" + END IF END PROGRAM if \ No newline at end of file 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 413a4ecd..3c7ce581 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,10 +1,10 @@ PROGRAM if - logical :: cond - cond = .false. + LOGICAL :: cond + cond = .false. - IF (cond) THEN - PRINT *, "cond is true" - ELSE - PRINT *, "cond is false" - END IF + IF (cond) THEN + PRINT *, "cond is true" + ELSE + PRINT *, "cond is false" + END IF END PROGRAM if \ No newline at end of file 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 ac795cab..451b6787 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 f3c704ea..928237b2 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,13 +1,13 @@ PROGRAM if - logical :: cond1, cond2 - cond1 = .false. - cond2 = .true. + LOGICAL :: cond1, cond2 + cond1 = .false. + cond2 = .true. - named_if: IF (cond1) THEN - PRINT *, "cond1 is true" - ELSE IF (cond2) THEN named_if - PRINT *, "cond2 is true" - ELSE named_if - PRINT *, "both conditions are false" - END IF named_if + named_if : IF (cond1) THEN + PRINT *, "cond1 is true" + ELSE IF (cond2) THEN named_if + PRINT *, "cond2 is true" + ELSE named_if + PRINT *, "both conditions are false" + END IF named_if END PROGRAM if \ No newline at end of file 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 942a6cb6..0afeea6b 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,8 +1,8 @@ PROGRAM named_select_case - integer :: val, result + INTEGER :: val, result val = 2 - named_select: SELECT CASE (val) + named_select : SELECT CASE (val) CASE (1) named_select result = 10 CASE (2) named_select 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 85469e26..e5ac2bf2 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 b624805e..14978024 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 4af50ce9..b959d9c9 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 f704325d..7e29de75 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(8) :: i8 = 1 - real(16) :: r16 = 2.0 + INTEGER(8) :: i8 = 1 + REAL(16) :: r16 = 2.0 PRINT *, i8, r16 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 5be45a8f..ea0921bd 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*8 :: i8 = 1 - real*16 :: r16 = 2.0 + INTEGER*8 :: i8 = 1 + REAL*16 :: r16 = 2.0 PRINT *, i8, r16 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 41ce46ee..e8727bf7 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/declaration.expected.f90 @@ -1,5 +1,5 @@ PROGRAM declaration - integer :: a, b = 1 + INTEGER :: a, b = 1 END PROGRAM declaration \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/directive.expected.f90 b/FortranParser/resources-test/fortran/parser/directive.expected.f90 index 8592e13b..5a7fa95d 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 58b6488b..9e164696 100644 --- a/FortranParser/resources-test/fortran/parser/do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/do.expected.f90 @@ -1,5 +1,5 @@ PROGRAM simple_loop - integer :: i, dummy, a = 2 + INTEGER :: i, dummy, a = 2 DO i = 1, 5, a dummy = 3 @@ -10,7 +10,7 @@ PROGRAM simple_loop dummy = 2 END DO - name: DO + name : DO dummy = 4 END DO name diff --git a/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/negate.expected.f90 index f3c6fc22..8a16b911 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 96389911..3bf7a29f 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 adcc943a..08e133f6 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/unary_plus.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/unary_plus.expected.f90 index 1df1d95a..23e90629 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 b2daa6a9..3e907e64 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 a6f15241..01d8bed5 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 ec899768..7a5f2939 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 35cdf518..74c533a4 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 3e43f8d0..bd1a4792 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 c0ef9d9e..4e0399a5 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 71dd95fd..ee28c46d 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/logical_expression.expected.f90 b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 index 85be0ae6..2621e095 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/parenexpr.expected.f90 b/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 index 5bfc542d..c7e82a9b 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 3b4274e1..55d02263 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -9,111 +9,112 @@ ! Include polybench common header. ! Include benchmark-specific header. ! Default data type is double, default size is 4000. - program three_mm - implicit none - double precision, dimension( 1024+0, 1024+0) :: a - double precision, dimension( 1024+0, 1024+0) :: b - double precision, dimension( 1024+0, 1024+0) :: c - double precision, dimension( 1024+0, 1024+0) :: d - double precision, dimension( 1024+0, 1024+0) :: e - double precision, dimension( 1024+0, 1024+0) :: f - double precision, dimension( 1024+0, 1024+0) :: g - integer :: i; character(LEN = 30) :: arg -! Allocation of Arrays -! Initialization - call init_array(1024, 1024, 1024, 1024, 1024, & - a, b, c, d) -! Kernel Execution - call kernel_3mm(1024, 1024, 1024, 1024, 1024, & - e, a, b, f, c, d, g) -! Prevent dead-code elimination. All live-out data must be printed -! by the function call in argument. - call getarg(1, arg); if( command_argument_count() > 42 .AND. arg .EQ. '' ) then; call print_array(1024, 1024, g); end if; -! Deallocation of Arrays - contains - subroutine init_array(ni, nj, nk, nl, nm, a, b, c , d) +program three_mm + implicit none + DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: a + DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: b + DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: c + DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: d + DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: e + DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: f + DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: g + INTEGER :: i; character(LEN = 30) :: arg + ! Allocation of Arrays + ! Initialization + call init_array(1024, 1024, 1024, 1024, 1024, & + a, b, c, d) + ! Kernel Execution + call kernel_3mm(1024, 1024, 1024, 1024, 1024, & + e, a, b, f, c, d, g) + ! Prevent dead-code elimination. All live-out data must be printed + ! by the function call in argument. + call getarg(1, arg); if(command_argument_count() > 42 .AND. arg .EQ. '') then; call print_array(1024, 1024, g); + end if; + ! Deallocation of Arrays +contains + subroutine init_array(ni, nj, nk, nl, nm, a, b, c, d) implicit none - double precision, dimension(nk, ni) :: a - 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 + DOUBLE PRECISION, DIMENSION(nk, ni) :: a + 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 do i = 1, ni - do j = 1, nk - a(j,i) = DBLE(i-1) * DBLE(j-1) / ni - end do + do j = 1, nk + a(j, i) = DBLE(i - 1) * DBLE(j - 1) / ni + end do end do do i = 1, nk - do j = 1, nj - b(j,i) = (DBLE(i-1) * DBLE(j))/ nj - end do + do j = 1, nj + b(j, i) = (DBLE(i - 1) * DBLE(j)) / nj + end do end do do i = 1, nj - do j = 1, nm - c(j,i) = (DBLE(i-1) * DBLE(j+2))/ nl - end do + do j = 1, nm + c(j, i) = (DBLE(i - 1) * DBLE(j + 2)) / nl + end do end do do i = 1, nm - do j = 1, nl - d(j,i) = (DBLE(i-1) * DBLE(j+1))/ nk - end do + do j = 1, nl + d(j, i) = (DBLE(i - 1) * DBLE(j + 1)) / nk + end do end do - end subroutine - subroutine print_array(ni, nl, g) + end subroutine + subroutine print_array(ni, nl, g) implicit none - double precision, dimension(nl, ni) :: g - integer :: ni, nl - integer :: i, j + DOUBLE PRECISION, DIMENSION(nl, ni) :: g + INTEGER :: ni, nl + INTEGER :: i, j do i = 1, ni - do j = 1, nl - write(0, "(f0.2,1x)", advance='no') g(j,i) - if (mod(((i - 1) * ni) + j - 1, 20) == 0) then - write(0, *) - end if - end do + do j = 1, nl + write(0, "(f0.2,1x)", advance = 'no') g(j, i) + if (mod(((i - 1) * ni) + j - 1, 20) == 0) then + write(0, *) + end if + end do end do write(0, *) - end subroutine - subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) + end subroutine + subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) implicit none - double precision, dimension(nk, ni) :: a - double precision, dimension(nj, nk) :: b - double precision, dimension(nm, nj) :: c - double precision, dimension(nl, nm) :: d - 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 -!$pragma scop + DOUBLE PRECISION, DIMENSION(nk, ni) :: a + DOUBLE PRECISION, DIMENSION(nj, nk) :: b + DOUBLE PRECISION, DIMENSION(nm, nj) :: c + DOUBLE PRECISION, DIMENSION(nl, nm) :: d + 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 + !$pragma scop ! E := A*B do i = 1, ni - do j = 1, nj - e(j,i) = 0.0 - do k = 1, nk - e(j,i) = e(j,i) + a(k,i) * b(j,k) + do j = 1, nj + e(j, i) = 0.0 + do k = 1, nk + e(j, i) = e(j, i) + a(k, i) * b(j, k) + end do end do - end do end do ! F := C*D do i = 1, nj - do j = 1, nl - f(j,i) = 0.0 - do k = 1, nm - f(j,i) = f(j,i) + c(k,i) * d(j,k) + do j = 1, nl + f(j, i) = 0.0 + do k = 1, nm + f(j, i) = f(j, i) + c(k, i) * d(j, k) + end do end do - end do end do ! G := E*F do i = 1, ni - do j = 1, nl - g(j,i) = 0.0 - do k = 1, nj - g(j,i) = g(j,i) + e(k,i) * f(j,k) + do j = 1, nl + g(j, i) = 0.0 + do k = 1, nj + g(j, i) = g(j, i) + e(k, i) * f(j, k) + end do end do - end do end do -!$pragma endscop - end subroutine - end program + !$pragma endscop + end subroutine +end program diff --git a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 index d1973b99..1b4aa456 100644 --- a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 @@ -1,13 +1,13 @@ 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 PROGRAM main - integer :: x, y, total, useless + INTEGER :: x, y, total, useless x = 5 y = 12 From af7b4f9c568cca817ece053d62ae5b8421df6ec3 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 30 Apr 2026 00:09:37 +0100 Subject: [PATCH 029/132] Add new Fujitsu test case --- .../fujitsu/0000/0000_0023.expected.f90 | 136 + .../fortran/parser/fujitsu/0000/0000_0023.f90 | 136 + .../parser/fujitsu/0000/0000_0023.json | 7538 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 7822 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.json 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 new file mode 100644 index 00000000..57509516 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.expected.f90 @@ -0,0 +1,136 @@ +PROGRAM main + INTEGER(4), PARAMETER :: I4_MAX = 2147483647_4 + INTEGER(4), PARAMETER :: I4_MIN = -I4_MAX-1_4 + INTEGER(4), PARAMETER :: I4_ZERO = 0_4 + INTEGER(4), PARAMETER :: I4_ONE = 1_4 + INTEGER(4), PARAMETER :: I4_MZERO = -I4_ZERO + INTEGER(4), PARAMETER :: I4_MONE = -I4_ONE + + INTEGER(8), PARAMETER :: I8_MAX = 9223372036854775807_8 + INTEGER(8), PARAMETER :: I8_MIN = -I8_MAX-1_8 + INTEGER(8), PARAMETER :: I8_ZERO = 0_8 + INTEGER(8), PARAMETER :: I8_ONE = 1_8 + INTEGER(8), PARAMETER :: I8_MZERO = -I8_ZERO + INTEGER(8), PARAMETER :: I8_MONE = -I8_ONE + + INTEGER(4) :: i4a, i4b, i4c + INTEGER(8) :: i8a, i8b, i8c + + i4a = I4_MAX + i4b = I4_ZERO + i4c = i4a + i4b + IF (i4c /= I4_MAX) THEN + PRINT *, "NG : I4_MAX + I4_ZERO" + GOTO 10 + END IF + + i4a = I4_MAX + i4b = I4_MZERO + i4c = i4a + i4b + IF (i4c /= I4_MAX) THEN + PRINT *, "NG : I4_MAX + I4_MZERO" + GOTO 10 + END IF + + i4a = I4_MAX + i4b = I4_MONE + i4c = i4a + i4b + IF (i4c /= I4_MAX-1) THEN + PRINT *, "NG : I4_MAX + I4_MONE" + GOTO 10 + END IF + + i4a = I4_MIN + i4b = I4_ZERO + i4c = i4a + i4b + IF (i4c /= I4_MIN) THEN + PRINT *, "NG : I4_MIN + I4_ZERO" + GOTO 10 + END IF + + i4a = I4_MIN + i4b = I4_MZERO + i4c = i4a + i4b + IF (i4c /= I4_MIN) THEN + PRINT *, "NG : I4_MIN + I4_MZERO" + GOTO 10 + END IF + + i4a = I4_MIN + i4b = I4_ONE + i4c = i4a + i4b + IF (i4c /= -I4_MAX) THEN + PRINT *, "NG : I4_MIN + I4_ONE" + GOTO 10 + END IF + + i4a = I4_MAX + i4b = I4_MIN + i4c = i4a + i4b + IF (i4c /= I4_MONE) THEN + PRINT *, "NG : I4_MAX + I4_MIN" + GOTO 10 + END IF + + i8a = I8_MAX + i8b = I8_ZERO + i8c = i8a + i8b + IF (i8c /= I8_MAX) THEN + PRINT *, "NG : I8_MAX + I8_ZERO" + GOTO 10 + END IF + + i8a = I8_MAX + i8b = I8_MZERO + i8c = i8a + i8b + IF (i8c /= I8_MAX) THEN + PRINT *, "NG : I8_MAX + I8_MZERO" + GOTO 10 + END IF + + i8a = I8_MAX + i8b = I8_MONE + i8c = i8a + i8b + IF (i8c /= I8_MAX-1) THEN + PRINT *, "NG : I8_MAX + I8_MONE" + GOTO 10 + END IF + + i8a = I8_MIN + i8b = I8_ZERO + i8c = i8a + i8b + IF (i8c /= I8_MIN) THEN + PRINT *, "NG : I8_MIN + I8_ZERO" + GOTO 10 + END IF + + i8a = I8_MIN + i8b = I8_MZERO + i8c = i8a + i8b + IF (i8c /= I8_MIN) THEN + PRINT *, "NG : I8_MIN + I8_MZERO" + GOTO 10 + END IF + + i8a = I8_MIN + i8b = I8_ONE + i8c = i8a + i8b + IF (i8c /= -I8_MAX) THEN + PRINT *, "NG : I8_MIN + I8_ONE" + GOTO 10 + END IF + + i8a = I8_MAX + i8b = I8_MIN + i8c = i8a + i8b + IF (i8c /= I8_MONE) THEN + PRINT *, "NG : I8_MAX + I8_MIN" + GOTO 10 + END IF + + PRINT *, "OK" + STOP + + 10 PRINT *, "NG" + +END PROGRAM main \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.f90 new file mode 100644 index 00000000..18241751 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.f90 @@ -0,0 +1,136 @@ +program main + integer(kind=4),parameter :: I4_MAX=2147483647_4 + integer(kind=4),parameter :: I4_MIN=-I4_MAX-1_4 + integer(kind=4),parameter :: I4_ZERO=0_4 + integer(kind=4),parameter :: I4_ONE=1_4 + integer(kind=4),parameter :: I4_MZERO=-I4_ZERO + integer(kind=4),parameter :: I4_MONE=-I4_ONE + + integer(kind=8),parameter :: I8_MAX=9223372036854775807_8 + integer(kind=8),parameter :: I8_MIN=-I8_MAX-1_8 + integer(kind=8),parameter :: I8_ZERO=0_8 + integer(kind=8),parameter :: I8_ONE=1_8 + integer(kind=8),parameter :: I8_MZERO=-I8_ZERO + integer(kind=8),parameter :: I8_MONE=-I8_ONE + + integer(kind=4) i4a, i4b, i4c + integer(kind=8) i8a, i8b, i8c + + i4a = I4_MAX + i4b = I4_ZERO + i4c = i4a + i4b + if (i4c .ne. I4_MAX) then + print *, "NG : I4_MAX + I4_ZERO" + goto 10 + endif + + i4a = I4_MAX + i4b = I4_MZERO + i4c = i4a + i4b + if (i4c .ne. I4_MAX) then + print *, "NG : I4_MAX + I4_MZERO" + goto 10 + endif + + i4a = I4_MAX + i4b = I4_MONE + i4c = i4a + i4b + if (i4c .ne. I4_MAX-1) then + print *, "NG : I4_MAX + I4_MONE" + goto 10 + endif + + i4a = I4_MIN + i4b = I4_ZERO + i4c = i4a + i4b + if (i4c .ne. I4_MIN) then + print *, "NG : I4_MIN + I4_ZERO" + goto 10 + endif + + i4a = I4_MIN + i4b = I4_MZERO + i4c = i4a + i4b + if (i4c .ne. I4_MIN) then + print *, "NG : I4_MIN + I4_MZERO" + goto 10 + endif + + i4a = I4_MIN + i4b = I4_ONE + i4c = i4a + i4b + if (i4c .ne. -I4_MAX) then + print *, "NG : I4_MIN + I4_ONE" + goto 10 + endif + + i4a = I4_MAX + i4b = I4_MIN + i4c = i4a + i4b + if (i4c .ne. I4_MONE) then + print *, "NG : I4_MAX + I4_MIN" + goto 10 + endif + + i8a = I8_MAX + i8b = I8_ZERO + i8c = i8a + i8b + if (i8c .ne. I8_MAX) then + print *, "NG : I8_MAX + I8_ZERO" + goto 10 + endif + + i8a = I8_MAX + i8b = I8_MZERO + i8c = i8a + i8b + if (i8c .ne. I8_MAX) then + print *, "NG : I8_MAX + I8_MZERO" + goto 10 + endif + + i8a = I8_MAX + i8b = I8_MONE + i8c = i8a + i8b + if (i8c .ne. I8_MAX-1) then + print *, "NG : I8_MAX + I8_MONE" + goto 10 + endif + + i8a = I8_MIN + i8b = I8_ZERO + i8c = i8a + i8b + if (i8c .ne. I8_MIN) then + print *, "NG : I8_MIN + I8_ZERO" + goto 10 + endif + + i8a = I8_MIN + i8b = I8_MZERO + i8c = i8a + i8b + if (i8c .ne. I8_MIN) then + print *, "NG : I8_MIN + I8_MZERO" + goto 10 + endif + + i8a = I8_MIN + i8b = I8_ONE + i8c = i8a + i8b + if (i8c .ne. -I8_MAX) then + print *, "NG : I8_MIN + I8_ONE" + goto 10 + endif + + i8a = I8_MAX + i8b = I8_MIN + i8c = i8a + i8b + if (i8c .ne. I8_MONE) then + print *, "NG : I8_MAX + I8_MIN" + goto 10 + endif + + print *, "OK" + stop + + 10 print *, "NG" + +end program main \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.json new file mode 100644 index 00000000..103243af --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0023.json @@ -0,0 +1,7538 @@ +{ + "nodes": [ + { + "id": "0x55d3a3ec8cc0-Program", + "ProgramUnit": [ + "0x55d3a3efc660-ProgramUnit" + ] + }, + { + "id": "0x55d3a3efc660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55d3a3ef3960-MainProgram" + }, + { + "id": "0x55d3a3ef3960-MainProgram", + "Statement": "0x55d3a3ef3aa8-Statement", + "SpecificationPart": "0x55d3a3ef3a00-SpecificationPart", + "ExecutionPart": "0x55d3a3ef39e8-ExecutionPart", + "Statement": "0x55d3a3ef3960-Statement" + }, + { + "id": "0x55d3a3ef3aa8-Statement", + "statement": "0x55d3a3ef3ab8-ProgramStmt", + "source": "program main" + }, + { + "id": "0x55d3a3ef3ab8-ProgramStmt", + "Name": "0x55d3a3ef3ab8-Name" + }, + { + "id": "0x55d3a3ef3ab8-Name", + "source": "main" + }, + { + "id": "0x55d3a3ef3a00-SpecificationPart", + "ImplicitPart": "0x55d3a3ef3a18-ImplicitPart", + "DeclarationConstruct": [ + "0x55d3a3ef6ac0-DeclarationConstruct", + "0x55d3a3ef7680-DeclarationConstruct", + "0x55d3a3ef6d00-DeclarationConstruct", + "0x55d3a3ef6ff0-DeclarationConstruct", + "0x55d3a3ef8210-DeclarationConstruct", + "0x55d3a3ef86e0-DeclarationConstruct", + "0x55d3a3ef7ea0-DeclarationConstruct", + "0x55d3a3ef9160-DeclarationConstruct", + "0x55d3a3ef8bd0-DeclarationConstruct", + "0x55d3a3ef8d70-DeclarationConstruct", + "0x55d3a3ef9de0-DeclarationConstruct", + "0x55d3a3efa300-DeclarationConstruct", + "0x55d3a3ecf240-DeclarationConstruct", + "0x55d3a3ef9a70-DeclarationConstruct" + ] + }, + { + "id": "0x55d3a3ef3a18-ImplicitPart" + }, + { + "id": "0x55d3a3ef6ac0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef6ac0-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef6ac0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef6ac0-Statement" + }, + { + "id": "0x55d3a3ef6ac0-Statement", + "statement": "0x55d3a3ef4c20-TypeDeclarationStmt", + "source": "integer(kind=4),parameter :: i4_max=2147483647_4" + }, + { + "id": "0x55d3a3ef4c20-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef4c50-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef17e0-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef68f0-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef4c50-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef4c50-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef4c50-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef4c50-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef4c50-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef4c50-KindSelector" + }, + { + "id": "0x55d3a3ef4c50-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef6520-Expr" + }, + { + "id": "0x55d3a3ef6520-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef6540-LiteralConstant" + }, + { + "id": "0x55d3a3ef6540-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef6540-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef6540-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55d3a3ef17e0-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef17e0-Parameter" + }, + { + "id": "0x55d3a3ef17e0-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef68f0-EntityDecl", + "Name": "0x55d3a3ef69a8-Name", + "Initialization": "0x55d3a3ef68f0-Initialization" + }, + { + "id": "0x55d3a3ef69a8-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3ef68f0-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef6800-Expr" + }, + { + "id": "0x55d3a3ef6800-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef6820-LiteralConstant" + }, + { + "id": "0x55d3a3ef6820-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef6820-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef6820-IntLiteralConstant", + "CharBlock": "2147483647", + "KindParam": "0x55d3a3ef6820-KindParam" + }, + { + "id": "0x55d3a3ef6820-KindParam", + "variantKey": "uint64_t", + "uint64_t": "4" + }, + { + "id": "0x55d3a3ef7680-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef7680-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef7680-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef7680-Statement" + }, + { + "id": "0x55d3a3ef7680-Statement", + "statement": "0x55d3a3ed7250-TypeDeclarationStmt", + "source": "integer(kind=4),parameter :: i4_min=-i4_max-1_4" + }, + { + "id": "0x55d3a3ed7250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ed7280-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef1870-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef74b0-EntityDecl" + ] + }, + { + "id": "0x55d3a3ed7280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ed7280-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ed7280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ed7280-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ed7280-IntegerTypeSpec", + "KindSelector": "0x55d3a3ed7280-KindSelector" + }, + { + "id": "0x55d3a3ed7280-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef6c10-Expr" + }, + { + "id": "0x55d3a3ef6c10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef6c30-LiteralConstant" + }, + { + "id": "0x55d3a3ef6c30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef6c30-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef6c30-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55d3a3ef1870-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef1870-Parameter" + }, + { + "id": "0x55d3a3ef1870-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef74b0-EntityDecl", + "Name": "0x55d3a3ef7568-Name", + "Initialization": "0x55d3a3ef74b0-Initialization" + }, + { + "id": "0x55d3a3ef7568-Name", + "source": "i4_min" + }, + { + "id": "0x55d3a3ef74b0-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef73c0-Expr" + }, + { + "id": "0x55d3a3ef73c0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55d3a3ef73e0-Subtract" + }, + { + "id": "0x55d3a3ef73e0-Subtract", + "left": "0x55d3a3ef72e0-Expr", + "right": "0x55d3a3ef7200-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55d3a3ef72e0-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3ef7300-Negate" + }, + { + "id": "0x55d3a3ef7300-Negate", + "Expr": "0x55d3a3ef6f00-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3ef6f00-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef6e30-Designator" + }, + { + "id": "0x55d3a3ef6e30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef6e40-DataRef" + }, + { + "id": "0x55d3a3ef6e40-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef6e40-Name" + }, + { + "id": "0x55d3a3ef6e40-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3ef7200-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef7220-LiteralConstant" + }, + { + "id": "0x55d3a3ef7220-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef7220-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef7220-IntLiteralConstant", + "CharBlock": "1", + "KindParam": "0x55d3a3ef7220-KindParam" + }, + { + "id": "0x55d3a3ef7220-KindParam", + "variantKey": "uint64_t", + "uint64_t": "4" + }, + { + "id": "0x55d3a3ef6d00-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef6d00-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef6d00-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef6d00-Statement" + }, + { + "id": "0x55d3a3ef6d00-Statement", + "statement": "0x55d3a3ef6b10-TypeDeclarationStmt", + "source": "integer(kind=4),parameter :: i4_zero=0_4" + }, + { + "id": "0x55d3a3ef6b10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef6b40-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef1a50-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef7920-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef6b40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef6b40-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef6b40-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef6b40-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef6b40-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef6b40-KindSelector" + }, + { + "id": "0x55d3a3ef6b40-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef7750-Expr" + }, + { + "id": "0x55d3a3ef7750-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef7770-LiteralConstant" + }, + { + "id": "0x55d3a3ef7770-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef7770-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef7770-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55d3a3ef1a50-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef1a50-Parameter" + }, + { + "id": "0x55d3a3ef1a50-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef7920-EntityDecl", + "Name": "0x55d3a3ef79d8-Name", + "Initialization": "0x55d3a3ef7920-Initialization" + }, + { + "id": "0x55d3a3ef79d8-Name", + "source": "i4_zero" + }, + { + "id": "0x55d3a3ef7920-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef7830-Expr" + }, + { + "id": "0x55d3a3ef7830-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef7850-LiteralConstant" + }, + { + "id": "0x55d3a3ef7850-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef7850-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef7850-IntLiteralConstant", + "CharBlock": "0", + "KindParam": "0x55d3a3ef7850-KindParam" + }, + { + "id": "0x55d3a3ef7850-KindParam", + "variantKey": "uint64_t", + "uint64_t": "4" + }, + { + "id": "0x55d3a3ef6ff0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef6ff0-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef6ff0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef6ff0-Statement" + }, + { + "id": "0x55d3a3ef6ff0-Statement", + "statement": "0x55d3a3ef6b90-TypeDeclarationStmt", + "source": "integer(kind=4),parameter :: i4_one=1_4" + }, + { + "id": "0x55d3a3ef6b90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef6bc0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef1bf0-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef7c50-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef6bc0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef6bc0-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef6bc0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef6bc0-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef6bc0-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef6bc0-KindSelector" + }, + { + "id": "0x55d3a3ef6bc0-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef7a80-Expr" + }, + { + "id": "0x55d3a3ef7a80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef7aa0-LiteralConstant" + }, + { + "id": "0x55d3a3ef7aa0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef7aa0-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef7aa0-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55d3a3ef1bf0-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef1bf0-Parameter" + }, + { + "id": "0x55d3a3ef1bf0-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef7c50-EntityDecl", + "Name": "0x55d3a3ef7d08-Name", + "Initialization": "0x55d3a3ef7c50-Initialization" + }, + { + "id": "0x55d3a3ef7d08-Name", + "source": "i4_one" + }, + { + "id": "0x55d3a3ef7c50-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef7b60-Expr" + }, + { + "id": "0x55d3a3ef7b60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef7b80-LiteralConstant" + }, + { + "id": "0x55d3a3ef7b80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef7b80-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef7b80-IntLiteralConstant", + "CharBlock": "1", + "KindParam": "0x55d3a3ef7b80-KindParam" + }, + { + "id": "0x55d3a3ef7b80-KindParam", + "variantKey": "uint64_t", + "uint64_t": "4" + }, + { + "id": "0x55d3a3ef8210-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef8210-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef8210-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef8210-Statement" + }, + { + "id": "0x55d3a3ef8210-Statement", + "statement": "0x55d3a3ef76d0-TypeDeclarationStmt", + "source": "integer(kind=4),parameter :: i4_mzero=-i4_zero" + }, + { + "id": "0x55d3a3ef76d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef7700-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef1ba0-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef8120-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef7700-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef7700-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef7700-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef7700-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef7700-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef7700-KindSelector" + }, + { + "id": "0x55d3a3ef7700-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef7db0-Expr" + }, + { + "id": "0x55d3a3ef7db0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef7dd0-LiteralConstant" + }, + { + "id": "0x55d3a3ef7dd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef7dd0-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef7dd0-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55d3a3ef1ba0-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef1ba0-Parameter" + }, + { + "id": "0x55d3a3ef1ba0-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef8120-EntityDecl", + "Name": "0x55d3a3ef81d8-Name", + "Initialization": "0x55d3a3ef8120-Initialization" + }, + { + "id": "0x55d3a3ef81d8-Name", + "source": "i4_mzero" + }, + { + "id": "0x55d3a3ef8120-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef8030-Expr" + }, + { + "id": "0x55d3a3ef8030-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3ef8050-Negate" + }, + { + "id": "0x55d3a3ef8050-Negate", + "Expr": "0x55d3a3ef7f50-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3ef7f50-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef7ef0-Designator" + }, + { + "id": "0x55d3a3ef7ef0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef7f00-DataRef" + }, + { + "id": "0x55d3a3ef7f00-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef7f00-Name" + }, + { + "id": "0x55d3a3ef7f00-Name", + "source": "i4_zero" + }, + { + "id": "0x55d3a3ef86e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef86e0-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef86e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef86e0-Statement" + }, + { + "id": "0x55d3a3ef86e0-Statement", + "statement": "0x55d3a3ef7a00-TypeDeclarationStmt", + "source": "integer(kind=4),parameter :: i4_mone=-i4_one" + }, + { + "id": "0x55d3a3ef7a00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef7a30-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef1d00-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef85f0-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef7a30-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef7a30-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef7a30-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef7a30-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef7a30-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef7a30-KindSelector" + }, + { + "id": "0x55d3a3ef7a30-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef82e0-Expr" + }, + { + "id": "0x55d3a3ef82e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef8300-LiteralConstant" + }, + { + "id": "0x55d3a3ef8300-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef8300-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef8300-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55d3a3ef1d00-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef1d00-Parameter" + }, + { + "id": "0x55d3a3ef1d00-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef85f0-EntityDecl", + "Name": "0x55d3a3ef86a8-Name", + "Initialization": "0x55d3a3ef85f0-Initialization" + }, + { + "id": "0x55d3a3ef86a8-Name", + "source": "i4_mone" + }, + { + "id": "0x55d3a3ef85f0-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef8500-Expr" + }, + { + "id": "0x55d3a3ef8500-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3ef8520-Negate" + }, + { + "id": "0x55d3a3ef8520-Negate", + "Expr": "0x55d3a3ef8420-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3ef8420-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef83c0-Designator" + }, + { + "id": "0x55d3a3ef83c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef83d0-DataRef" + }, + { + "id": "0x55d3a3ef83d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef83d0-Name" + }, + { + "id": "0x55d3a3ef83d0-Name", + "source": "i4_one" + }, + { + "id": "0x55d3a3ef7ea0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef7ea0-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef7ea0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef7ea0-Statement" + }, + { + "id": "0x55d3a3ef7ea0-Statement", + "statement": "0x55d3a3ef7d30-TypeDeclarationStmt", + "source": "integer(kind=8),parameter :: i8_max=9223372036854775807_8" + }, + { + "id": "0x55d3a3ef7d30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef7d60-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef1da0-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef8980-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef7d60-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef7d60-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef7d60-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef7d60-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef7d60-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef7d60-KindSelector" + }, + { + "id": "0x55d3a3ef7d60-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef87b0-Expr" + }, + { + "id": "0x55d3a3ef87b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef87d0-LiteralConstant" + }, + { + "id": "0x55d3a3ef87d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef87d0-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef87d0-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55d3a3ef1da0-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef1da0-Parameter" + }, + { + "id": "0x55d3a3ef1da0-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef8980-EntityDecl", + "Name": "0x55d3a3ef8a38-Name", + "Initialization": "0x55d3a3ef8980-Initialization" + }, + { + "id": "0x55d3a3ef8a38-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3ef8980-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef8890-Expr" + }, + { + "id": "0x55d3a3ef8890-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef88b0-LiteralConstant" + }, + { + "id": "0x55d3a3ef88b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef88b0-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef88b0-IntLiteralConstant", + "CharBlock": "9223372036854775807", + "KindParam": "0x55d3a3ef88b0-KindParam" + }, + { + "id": "0x55d3a3ef88b0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x55d3a3ef9160-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef9160-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef9160-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef9160-Statement" + }, + { + "id": "0x55d3a3ef9160-Statement", + "statement": "0x55d3a3ef8260-TypeDeclarationStmt", + "source": "integer(kind=8),parameter :: i8_min=-i8_max-1_8" + }, + { + "id": "0x55d3a3ef8260-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef8290-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef1790-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef9070-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef8290-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef8290-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef8290-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef8290-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef8290-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef8290-KindSelector" + }, + { + "id": "0x55d3a3ef8290-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef8ae0-Expr" + }, + { + "id": "0x55d3a3ef8ae0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef8b00-LiteralConstant" + }, + { + "id": "0x55d3a3ef8b00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef8b00-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef8b00-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55d3a3ef1790-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef1790-Parameter" + }, + { + "id": "0x55d3a3ef1790-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef9070-EntityDecl", + "Name": "0x55d3a3ef9128-Name", + "Initialization": "0x55d3a3ef9070-Initialization" + }, + { + "id": "0x55d3a3ef9128-Name", + "source": "i8_min" + }, + { + "id": "0x55d3a3ef9070-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef8f80-Expr" + }, + { + "id": "0x55d3a3ef8f80-Expr", + "variantKey": "Subtract", + "Subtract": "0x55d3a3ef8fa0-Subtract" + }, + { + "id": "0x55d3a3ef8fa0-Subtract", + "left": "0x55d3a3ef8ea0-Expr", + "right": "0x55d3a3ef8dc0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55d3a3ef8ea0-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3ef8ec0-Negate" + }, + { + "id": "0x55d3a3ef8ec0-Negate", + "Expr": "0x55d3a3ef8c80-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3ef8c80-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef8c20-Designator" + }, + { + "id": "0x55d3a3ef8c20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef8c30-DataRef" + }, + { + "id": "0x55d3a3ef8c30-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef8c30-Name" + }, + { + "id": "0x55d3a3ef8c30-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3ef8dc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef8de0-LiteralConstant" + }, + { + "id": "0x55d3a3ef8de0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef8de0-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef8de0-IntLiteralConstant", + "CharBlock": "1", + "KindParam": "0x55d3a3ef8de0-KindParam" + }, + { + "id": "0x55d3a3ef8de0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x55d3a3ef8bd0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef8bd0-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef8bd0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef8bd0-Statement" + }, + { + "id": "0x55d3a3ef8bd0-Statement", + "statement": "0x55d3a3ef8730-TypeDeclarationStmt", + "source": "integer(kind=8),parameter :: i8_zero=0_8" + }, + { + "id": "0x55d3a3ef8730-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef8760-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef9320-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef9450-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef8760-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef8760-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef8760-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef8760-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef8760-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef8760-KindSelector" + }, + { + "id": "0x55d3a3ef8760-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef9230-Expr" + }, + { + "id": "0x55d3a3ef9230-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef9250-LiteralConstant" + }, + { + "id": "0x55d3a3ef9250-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef9250-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef9250-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55d3a3ef9320-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef9320-Parameter" + }, + { + "id": "0x55d3a3ef9320-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef9450-EntityDecl", + "Name": "0x55d3a3ef9508-Name", + "Initialization": "0x55d3a3ef9450-Initialization" + }, + { + "id": "0x55d3a3ef9508-Name", + "source": "i8_zero" + }, + { + "id": "0x55d3a3ef9450-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef9360-Expr" + }, + { + "id": "0x55d3a3ef9360-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef9380-LiteralConstant" + }, + { + "id": "0x55d3a3ef9380-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef9380-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef9380-IntLiteralConstant", + "CharBlock": "0", + "KindParam": "0x55d3a3ef9380-KindParam" + }, + { + "id": "0x55d3a3ef9380-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x55d3a3ef8d70-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef8d70-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef8d70-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef8d70-Statement" + }, + { + "id": "0x55d3a3ef8d70-Statement", + "statement": "0x55d3a3ef8a60-TypeDeclarationStmt", + "source": "integer(kind=8),parameter :: i8_one=1_8" + }, + { + "id": "0x55d3a3ef8a60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef8a90-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef96a0-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef97d0-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef8a90-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef8a90-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef8a90-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef8a90-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef8a90-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef8a90-KindSelector" + }, + { + "id": "0x55d3a3ef8a90-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef95b0-Expr" + }, + { + "id": "0x55d3a3ef95b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef95d0-LiteralConstant" + }, + { + "id": "0x55d3a3ef95d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef95d0-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef95d0-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55d3a3ef96a0-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef96a0-Parameter" + }, + { + "id": "0x55d3a3ef96a0-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef97d0-EntityDecl", + "Name": "0x55d3a3ef9888-Name", + "Initialization": "0x55d3a3ef97d0-Initialization" + }, + { + "id": "0x55d3a3ef9888-Name", + "source": "i8_one" + }, + { + "id": "0x55d3a3ef97d0-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef96e0-Expr" + }, + { + "id": "0x55d3a3ef96e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef9700-LiteralConstant" + }, + { + "id": "0x55d3a3ef9700-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef9700-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef9700-IntLiteralConstant", + "CharBlock": "1", + "KindParam": "0x55d3a3ef9700-KindParam" + }, + { + "id": "0x55d3a3ef9700-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x55d3a3ef9de0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef9de0-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef9de0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef9de0-Statement" + }, + { + "id": "0x55d3a3ef9de0-Statement", + "statement": "0x55d3a3ef91b0-TypeDeclarationStmt", + "source": "integer(kind=8),parameter :: i8_mzero=-i8_zero" + }, + { + "id": "0x55d3a3ef91b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef91e0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef9a20-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3ef9cf0-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef91e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef91e0-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef91e0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef91e0-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef91e0-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef91e0-KindSelector" + }, + { + "id": "0x55d3a3ef91e0-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef9930-Expr" + }, + { + "id": "0x55d3a3ef9930-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef9950-LiteralConstant" + }, + { + "id": "0x55d3a3ef9950-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef9950-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef9950-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55d3a3ef9a20-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef9a20-Parameter" + }, + { + "id": "0x55d3a3ef9a20-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3ef9cf0-EntityDecl", + "Name": "0x55d3a3ef9da8-Name", + "Initialization": "0x55d3a3ef9cf0-Initialization" + }, + { + "id": "0x55d3a3ef9da8-Name", + "source": "i8_mzero" + }, + { + "id": "0x55d3a3ef9cf0-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3ef9c00-Expr" + }, + { + "id": "0x55d3a3ef9c00-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3ef9c20-Negate" + }, + { + "id": "0x55d3a3ef9c20-Negate", + "Expr": "0x55d3a3ef9b20-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3ef9b20-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef9ac0-Designator" + }, + { + "id": "0x55d3a3ef9ac0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef9ad0-DataRef" + }, + { + "id": "0x55d3a3ef9ad0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef9ad0-Name" + }, + { + "id": "0x55d3a3ef9ad0-Name", + "source": "i8_zero" + }, + { + "id": "0x55d3a3efa300-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3efa300-SpecificationConstruct" + }, + { + "id": "0x55d3a3efa300-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efa300-Statement" + }, + { + "id": "0x55d3a3efa300-Statement", + "statement": "0x55d3a3ef9530-TypeDeclarationStmt", + "source": "integer(kind=8),parameter :: i8_mone=-i8_one" + }, + { + "id": "0x55d3a3ef9530-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef9560-DeclarationTypeSpec", + "AttrSpec": [ + "0x55d3a3ef9fa0-AttrSpec" + ], + "EntityDecl": [ + "0x55d3a3efa210-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef9560-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef9560-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef9560-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef9560-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef9560-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef9560-KindSelector" + }, + { + "id": "0x55d3a3ef9560-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3ef9eb0-Expr" + }, + { + "id": "0x55d3a3ef9eb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3ef9ed0-LiteralConstant" + }, + { + "id": "0x55d3a3ef9ed0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3ef9ed0-IntLiteralConstant" + }, + { + "id": "0x55d3a3ef9ed0-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55d3a3ef9fa0-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x55d3a3ef9fa0-Parameter" + }, + { + "id": "0x55d3a3ef9fa0-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x55d3a3efa210-EntityDecl", + "Name": "0x55d3a3efa2c8-Name", + "Initialization": "0x55d3a3efa210-Initialization" + }, + { + "id": "0x55d3a3efa2c8-Name", + "source": "i8_mone" + }, + { + "id": "0x55d3a3efa210-Initialization", + "variantKey": "Expr", + "Expr": "0x55d3a3efa120-Expr" + }, + { + "id": "0x55d3a3efa120-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3efa140-Negate" + }, + { + "id": "0x55d3a3efa140-Negate", + "Expr": "0x55d3a3efa040-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3efa040-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef9fe0-Designator" + }, + { + "id": "0x55d3a3ef9fe0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef9ff0-DataRef" + }, + { + "id": "0x55d3a3ef9ff0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef9ff0-Name" + }, + { + "id": "0x55d3a3ef9ff0-Name", + "source": "i8_one" + }, + { + "id": "0x55d3a3ecf240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ecf240-SpecificationConstruct" + }, + { + "id": "0x55d3a3ecf240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ecf240-Statement" + }, + { + "id": "0x55d3a3ecf240-Statement", + "statement": "0x55d3a3ef98b0-TypeDeclarationStmt", + "source": "integer(kind=4) i4a, i4b, i4c" + }, + { + "id": "0x55d3a3ef98b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef98e0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d3a3efa6a0-EntityDecl", + "0x55d3a3efa4c0-EntityDecl", + "0x55d3a3efa5b0-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef98e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef98e0-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef98e0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef98e0-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef98e0-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef98e0-KindSelector" + }, + { + "id": "0x55d3a3ef98e0-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3efa3d0-Expr" + }, + { + "id": "0x55d3a3efa3d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3efa3f0-LiteralConstant" + }, + { + "id": "0x55d3a3efa3f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3efa3f0-IntLiteralConstant" + }, + { + "id": "0x55d3a3efa3f0-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55d3a3efa6a0-EntityDecl", + "Name": "0x55d3a3efa758-Name" + }, + { + "id": "0x55d3a3efa758-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3efa4c0-EntityDecl", + "Name": "0x55d3a3efa578-Name" + }, + { + "id": "0x55d3a3efa578-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3efa5b0-EntityDecl", + "Name": "0x55d3a3efa668-Name" + }, + { + "id": "0x55d3a3efa668-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3ef9a70-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55d3a3ef9a70-SpecificationConstruct" + }, + { + "id": "0x55d3a3ef9a70-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef9a70-Statement" + }, + { + "id": "0x55d3a3ef9a70-Statement", + "statement": "0x55d3a3ef9e30-TypeDeclarationStmt", + "source": "integer(kind=8) i8a, i8b, i8c" + }, + { + "id": "0x55d3a3ef9e30-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55d3a3ef9e60-DeclarationTypeSpec", + "EntityDecl": [ + "0x55d3a3efaad0-EntityDecl", + "0x55d3a3efa8f0-EntityDecl", + "0x55d3a3efa9e0-EntityDecl" + ] + }, + { + "id": "0x55d3a3ef9e60-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55d3a3ef9e60-IntrinsicTypeSpec" + }, + { + "id": "0x55d3a3ef9e60-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55d3a3ef9e60-IntegerTypeSpec" + }, + { + "id": "0x55d3a3ef9e60-IntegerTypeSpec", + "KindSelector": "0x55d3a3ef9e60-KindSelector" + }, + { + "id": "0x55d3a3ef9e60-KindSelector", + "variantKey": "Expr", + "Expr": "0x55d3a3efa800-Expr" + }, + { + "id": "0x55d3a3efa800-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3efa820-LiteralConstant" + }, + { + "id": "0x55d3a3efa820-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3efa820-IntLiteralConstant" + }, + { + "id": "0x55d3a3efa820-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55d3a3efaad0-EntityDecl", + "Name": "0x55d3a3efab88-Name" + }, + { + "id": "0x55d3a3efab88-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3efa8f0-EntityDecl", + "Name": "0x55d3a3efa9a8-Name" + }, + { + "id": "0x55d3a3efa9a8-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3efa9e0-EntityDecl", + "Name": "0x55d3a3efaa98-Name" + }, + { + "id": "0x55d3a3efaa98-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3ef39e8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55d3a3efb550-ExecutionPartConstruct", + "0x55d3a3ef49f0-ExecutionPartConstruct", + "0x55d3a3efba80-ExecutionPartConstruct", + "0x55d3a3efad40-ExecutionPartConstruct", + "0x55d3a3efe5d0-ExecutionPartConstruct", + "0x55d3a3efe800-ExecutionPartConstruct", + "0x55d3a3efed10-ExecutionPartConstruct", + "0x55d3a3efe980-ExecutionPartConstruct", + "0x55d3a3eff610-ExecutionPartConstruct", + "0x55d3a3eff840-ExecutionPartConstruct", + "0x55d3a3effd50-ExecutionPartConstruct", + "0x55d3a3effe10-ExecutionPartConstruct", + "0x55d3a3f009d0-ExecutionPartConstruct", + "0x55d3a3f00c00-ExecutionPartConstruct", + "0x55d3a3f01110-ExecutionPartConstruct", + "0x55d3a3f00d80-ExecutionPartConstruct", + "0x55d3a3f01a10-ExecutionPartConstruct", + "0x55d3a3f01c40-ExecutionPartConstruct", + "0x55d3a3f02150-ExecutionPartConstruct", + "0x55d3a3f01dc0-ExecutionPartConstruct", + "0x55d3a3f02a50-ExecutionPartConstruct", + "0x55d3a3f02c80-ExecutionPartConstruct", + "0x55d3a3f03190-ExecutionPartConstruct", + "0x55d3a3f02e00-ExecutionPartConstruct", + "0x55d3a3f03b70-ExecutionPartConstruct", + "0x55d3a3f03da0-ExecutionPartConstruct", + "0x55d3a3f042b0-ExecutionPartConstruct", + "0x55d3a3f03f20-ExecutionPartConstruct", + "0x55d3a3f04bd0-ExecutionPartConstruct", + "0x55d3a3f04e20-ExecutionPartConstruct", + "0x55d3a3f05330-ExecutionPartConstruct", + "0x55d3a3f04fa0-ExecutionPartConstruct", + "0x55d3a3f05c60-ExecutionPartConstruct", + "0x55d3a3f05ed0-ExecutionPartConstruct", + "0x55d3a3f063e0-ExecutionPartConstruct", + "0x55d3a3f06050-ExecutionPartConstruct", + "0x55d3a3f06d10-ExecutionPartConstruct", + "0x55d3a3f06f40-ExecutionPartConstruct", + "0x55d3a3f07450-ExecutionPartConstruct", + "0x55d3a3f07510-ExecutionPartConstruct", + "0x55d3a3f07f40-ExecutionPartConstruct", + "0x55d3a3f08190-ExecutionPartConstruct", + "0x55d3a3f086a0-ExecutionPartConstruct", + "0x55d3a3f08310-ExecutionPartConstruct", + "0x55d3a3f08fd0-ExecutionPartConstruct", + "0x55d3a3f09240-ExecutionPartConstruct", + "0x55d3a3f09750-ExecutionPartConstruct", + "0x55d3a3f093c0-ExecutionPartConstruct", + "0x55d3a3efabc0-ExecutionPartConstruct", + "0x55d3a3efc600-ExecutionPartConstruct", + "0x55d3a3efc030-ExecutionPartConstruct", + "0x55d3a3f00570-ExecutionPartConstruct", + "0x55d3a3f0b070-ExecutionPartConstruct", + "0x55d3a3f0b2a0-ExecutionPartConstruct", + "0x55d3a3f0b7b0-ExecutionPartConstruct", + "0x55d3a3f0b420-ExecutionPartConstruct", + "0x55d3a3efc090-ExecutionPartConstruct", + "0x55d3a3efae00-ExecutionPartConstruct", + "0x55d3a3f0c660-ExecutionPartConstruct" + ] + }, + { + "id": "0x55d3a3ef39e8-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3efb550-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efb550-ExecutableConstruct" + }, + { + "id": "0x55d3a3efb550-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efb550-Statement" + }, + { + "id": "0x55d3a3efb550-Statement", + "statement": "0x55d3a3efb560-ActionStmt", + "source": "i4a = i4_max" + }, + { + "id": "0x55d3a3efb560-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3ef1e50-AssignmentStmt" + }, + { + "id": "0x55d3a3ef1e50-AssignmentStmt", + "Variable": "0x55d3a3ef1f30-Variable", + "Expr": "0x55d3a3ef1e60-Expr" + }, + { + "id": "0x55d3a3ef1f30-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3ecf5a0-Designator" + }, + { + "id": "0x55d3a3ecf5a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ecf5b0-DataRef" + }, + { + "id": "0x55d3a3ecf5b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ecf5b0-Name" + }, + { + "id": "0x55d3a3ecf5b0-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3ef1e60-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efb3c0-Designator" + }, + { + "id": "0x55d3a3efb3c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efb3d0-DataRef" + }, + { + "id": "0x55d3a3efb3d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efb3d0-Name" + }, + { + "id": "0x55d3a3efb3d0-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3ef49f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3ef49f0-ExecutableConstruct" + }, + { + "id": "0x55d3a3ef49f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3ef49f0-Statement" + }, + { + "id": "0x55d3a3ef49f0-Statement", + "statement": "0x55d3a3ef4a00-ActionStmt", + "source": "i4b = i4_zero" + }, + { + "id": "0x55d3a3ef4a00-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efb740-AssignmentStmt" + }, + { + "id": "0x55d3a3efb740-AssignmentStmt", + "Variable": "0x55d3a3efb820-Variable", + "Expr": "0x55d3a3efb750-Expr" + }, + { + "id": "0x55d3a3efb820-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3efb420-Designator" + }, + { + "id": "0x55d3a3efb420-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efb430-DataRef" + }, + { + "id": "0x55d3a3efb430-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efb430-Name" + }, + { + "id": "0x55d3a3efb430-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3efb750-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efb600-Designator" + }, + { + "id": "0x55d3a3efb600-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efb610-DataRef" + }, + { + "id": "0x55d3a3efb610-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efb610-Name" + }, + { + "id": "0x55d3a3efb610-Name", + "source": "i4_zero" + }, + { + "id": "0x55d3a3efba80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efba80-ExecutableConstruct" + }, + { + "id": "0x55d3a3efba80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efba80-Statement" + }, + { + "id": "0x55d3a3efba80-Statement", + "statement": "0x55d3a3efba90-ActionStmt", + "source": "i4c = i4a + i4b" + }, + { + "id": "0x55d3a3efba90-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efb8f0-AssignmentStmt" + }, + { + "id": "0x55d3a3efb8f0-AssignmentStmt", + "Variable": "0x55d3a3efb9d0-Variable", + "Expr": "0x55d3a3efb900-Expr" + }, + { + "id": "0x55d3a3efb9d0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3efb480-Designator" + }, + { + "id": "0x55d3a3efb480-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efb490-DataRef" + }, + { + "id": "0x55d3a3efb490-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efb490-Name" + }, + { + "id": "0x55d3a3efb490-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3efb900-Expr", + "variantKey": "Add", + "Add": "0x55d3a3efb920-Add" + }, + { + "id": "0x55d3a3efb920-Add", + "left": "0x55d3a3efb020-Expr", + "right": "0x55d3a3efaf40-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3efb020-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef4aa0-Designator" + }, + { + "id": "0x55d3a3ef4aa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef4ab0-DataRef" + }, + { + "id": "0x55d3a3ef4ab0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef4ab0-Name" + }, + { + "id": "0x55d3a3ef4ab0-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3efaf40-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efae70-Designator" + }, + { + "id": "0x55d3a3efae70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efae80-DataRef" + }, + { + "id": "0x55d3a3efae80-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efae80-Name" + }, + { + "id": "0x55d3a3efae80-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3efad40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efad40-ExecutableConstruct" + }, + { + "id": "0x55d3a3efad40-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3eb2490-IfConstruct" + }, + { + "id": "0x55d3a3eb2490-IfConstruct", + "Statement": "0x55d3a3eb2560-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3efc6b0-ExecutionPartConstruct", + "0x55d3a3efc490-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3eb2490-Statement" + }, + { + "id": "0x55d3a3eb2560-Statement", + "statement": "0x55d3a3eb2570-IfThenStmt", + "source": "if(i4c .ne. i4_max) then" + }, + { + "id": "0x55d3a3eb2570-IfThenStmt", + "Expr": "0x55d3a3efbb30-Expr" + }, + { + "id": "0x55d3a3efbb30-Expr", + "variantKey": "NE", + "NE": "0x55d3a3efbb50-NE" + }, + { + "id": "0x55d3a3efbb50-NE", + "left": "0x55d3a3efbcf0-Expr", + "right": "0x55d3a3efbc10-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3efbcf0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efbdd0-Designator" + }, + { + "id": "0x55d3a3efbdd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efbde0-DataRef" + }, + { + "id": "0x55d3a3efbde0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efbde0-Name" + }, + { + "id": "0x55d3a3efbde0-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3efbc10-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef4a40-Designator" + }, + { + "id": "0x55d3a3ef4a40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef4a50-DataRef" + }, + { + "id": "0x55d3a3ef4a50-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef4a50-Name" + }, + { + "id": "0x55d3a3ef4a50-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3eb2548-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3efc6b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efc6b0-ExecutableConstruct" + }, + { + "id": "0x55d3a3efc6b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efc6b0-Statement" + }, + { + "id": "0x55d3a3efc6b0-Statement", + "statement": "0x55d3a3efc6c0-ActionStmt", + "source": "print *, \"NG : I4_MAX + I4_ZERO\"" + }, + { + "id": "0x55d3a3efc6c0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3efe460-PrintStmt" + }, + { + "id": "0x55d3a3efe460-PrintStmt", + "Format": "0x55d3a3efe478-Format", + "OutputItem": [ + "0x55d3a3efe380-OutputItem" + ] + }, + { + "id": "0x55d3a3efe478-Format", + "variantKey": "Star", + "Star": "0x55d3a3efe478-Star" + }, + { + "id": "0x55d3a3efe478-Star" + }, + { + "id": "0x55d3a3efe380-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3efe380-Expr" + }, + { + "id": "0x55d3a3efe380-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3efe3a0-LiteralConstant" + }, + { + "id": "0x55d3a3efe3a0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3efe3a0-CharLiteralConstant" + }, + { + "id": "0x55d3a3efe3a0-CharLiteralConstant", + "string": "NG : I4_MAX + I4_ZERO" + }, + { + "id": "0x55d3a3efc490-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efc490-ExecutableConstruct" + }, + { + "id": "0x55d3a3efc490-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efc490-Statement" + }, + { + "id": "0x55d3a3efc490-Statement", + "statement": "0x55d3a3efc4a0-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3efc4a0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3ef37a0-GotoStmt" + }, + { + "id": "0x55d3a3ef37a0-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3eb2490-Statement", + "statement": "0x55d3a3eb24a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3eb24a0-EndIfStmt" + }, + { + "id": "0x55d3a3efe5d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efe5d0-ExecutableConstruct" + }, + { + "id": "0x55d3a3efe5d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efe5d0-Statement" + }, + { + "id": "0x55d3a3efe5d0-Statement", + "statement": "0x55d3a3efe5e0-ActionStmt", + "source": "i4a = i4_max" + }, + { + "id": "0x55d3a3efe5e0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efbe30-AssignmentStmt" + }, + { + "id": "0x55d3a3efbe30-AssignmentStmt", + "Variable": "0x55d3a3efbf10-Variable", + "Expr": "0x55d3a3efbe40-Expr" + }, + { + "id": "0x55d3a3efbf10-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3efb4e0-Designator" + }, + { + "id": "0x55d3a3efb4e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efb4f0-DataRef" + }, + { + "id": "0x55d3a3efb4f0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efb4f0-Name" + }, + { + "id": "0x55d3a3efb4f0-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3efbe40-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efe560-Designator" + }, + { + "id": "0x55d3a3efe560-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efe570-DataRef" + }, + { + "id": "0x55d3a3efe570-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efe570-Name" + }, + { + "id": "0x55d3a3efe570-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3efe800-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efe800-ExecutableConstruct" + }, + { + "id": "0x55d3a3efe800-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efe800-Statement" + }, + { + "id": "0x55d3a3efe800-Statement", + "statement": "0x55d3a3efe810-ActionStmt", + "source": "i4b = i4_mzero" + }, + { + "id": "0x55d3a3efe810-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efe6e0-AssignmentStmt" + }, + { + "id": "0x55d3a3efe6e0-AssignmentStmt", + "Variable": "0x55d3a3efe7c0-Variable", + "Expr": "0x55d3a3efe6f0-Expr" + }, + { + "id": "0x55d3a3efe7c0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3efb5a0-Designator" + }, + { + "id": "0x55d3a3efb5a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efb5b0-DataRef" + }, + { + "id": "0x55d3a3efb5b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efb5b0-Name" + }, + { + "id": "0x55d3a3efb5b0-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3efe6f0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efe680-Designator" + }, + { + "id": "0x55d3a3efe680-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efe690-DataRef" + }, + { + "id": "0x55d3a3efe690-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efe690-Name" + }, + { + "id": "0x55d3a3efe690-Name", + "source": "i4_mzero" + }, + { + "id": "0x55d3a3efed10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efed10-ExecutableConstruct" + }, + { + "id": "0x55d3a3efed10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efed10-Statement" + }, + { + "id": "0x55d3a3efed10-Statement", + "statement": "0x55d3a3efed20-ActionStmt", + "source": "i4c = i4a + i4b" + }, + { + "id": "0x55d3a3efed20-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efebf0-AssignmentStmt" + }, + { + "id": "0x55d3a3efebf0-AssignmentStmt", + "Variable": "0x55d3a3efecd0-Variable", + "Expr": "0x55d3a3efec00-Expr" + }, + { + "id": "0x55d3a3efecd0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3ec8af0-Designator" + }, + { + "id": "0x55d3a3ec8af0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ec8b00-DataRef" + }, + { + "id": "0x55d3a3ec8b00-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ec8b00-Name" + }, + { + "id": "0x55d3a3ec8b00-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3efec00-Expr", + "variantKey": "Add", + "Add": "0x55d3a3efec20-Add" + }, + { + "id": "0x55d3a3efec20-Add", + "left": "0x55d3a3efeb10-Expr", + "right": "0x55d3a3efea30-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3efeb10-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efe8b0-Designator" + }, + { + "id": "0x55d3a3efe8b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efe8c0-DataRef" + }, + { + "id": "0x55d3a3efe8c0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efe8c0-Name" + }, + { + "id": "0x55d3a3efe8c0-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3efea30-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efe9d0-Designator" + }, + { + "id": "0x55d3a3efe9d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efe9e0-DataRef" + }, + { + "id": "0x55d3a3efe9e0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efe9e0-Name" + }, + { + "id": "0x55d3a3efe9e0-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3efe980-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efe980-ExecutableConstruct" + }, + { + "id": "0x55d3a3efe980-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3eff480-IfConstruct" + }, + { + "id": "0x55d3a3eff480-IfConstruct", + "Statement": "0x55d3a3eff550-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3eff240-ExecutionPartConstruct", + "0x55d3a3eff1e0-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3eff480-Statement" + }, + { + "id": "0x55d3a3eff550-Statement", + "statement": "0x55d3a3eff560-IfThenStmt", + "source": "if(i4c .ne. i4_max) then" + }, + { + "id": "0x55d3a3eff560-IfThenStmt", + "Expr": "0x55d3a3efedc0-Expr" + }, + { + "id": "0x55d3a3efedc0-Expr", + "variantKey": "NE", + "NE": "0x55d3a3efede0-NE" + }, + { + "id": "0x55d3a3efede0-NE", + "left": "0x55d3a3efef80-Expr", + "right": "0x55d3a3efeea0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3efef80-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3eff060-Designator" + }, + { + "id": "0x55d3a3eff060-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff070-DataRef" + }, + { + "id": "0x55d3a3eff070-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff070-Name" + }, + { + "id": "0x55d3a3eff070-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3efeea0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efe850-Designator" + }, + { + "id": "0x55d3a3efe850-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efe860-DataRef" + }, + { + "id": "0x55d3a3efe860-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efe860-Name" + }, + { + "id": "0x55d3a3efe860-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3eff538-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3eff240-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3eff240-ExecutableConstruct" + }, + { + "id": "0x55d3a3eff240-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3eff240-Statement" + }, + { + "id": "0x55d3a3eff240-Statement", + "statement": "0x55d3a3eff250-ActionStmt", + "source": "print *, \"NG : I4_MAX + I4_MZERO\"" + }, + { + "id": "0x55d3a3eff250-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3eff380-PrintStmt" + }, + { + "id": "0x55d3a3eff380-PrintStmt", + "Format": "0x55d3a3eff398-Format", + "OutputItem": [ + "0x55d3a3eff2a0-OutputItem" + ] + }, + { + "id": "0x55d3a3eff398-Format", + "variantKey": "Star", + "Star": "0x55d3a3eff398-Star" + }, + { + "id": "0x55d3a3eff398-Star" + }, + { + "id": "0x55d3a3eff2a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3eff2a0-Expr" + }, + { + "id": "0x55d3a3eff2a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3eff2c0-LiteralConstant" + }, + { + "id": "0x55d3a3eff2c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3eff2c0-CharLiteralConstant" + }, + { + "id": "0x55d3a3eff2c0-CharLiteralConstant", + "string": "NG : I4_MAX + I4_MZERO" + }, + { + "id": "0x55d3a3eff1e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3eff1e0-ExecutableConstruct" + }, + { + "id": "0x55d3a3eff1e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3eff1e0-Statement" + }, + { + "id": "0x55d3a3eff1e0-Statement", + "statement": "0x55d3a3eff1f0-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3eff1f0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3ef3780-GotoStmt" + }, + { + "id": "0x55d3a3ef3780-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3eff480-Statement", + "statement": "0x55d3a3eff490-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3eff490-EndIfStmt" + }, + { + "id": "0x55d3a3eff610-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3eff610-ExecutableConstruct" + }, + { + "id": "0x55d3a3eff610-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3eff610-Statement" + }, + { + "id": "0x55d3a3eff610-Statement", + "statement": "0x55d3a3eff620-ActionStmt", + "source": "i4a = i4_max" + }, + { + "id": "0x55d3a3eff620-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3eff0c0-AssignmentStmt" + }, + { + "id": "0x55d3a3eff0c0-AssignmentStmt", + "Variable": "0x55d3a3eff1a0-Variable", + "Expr": "0x55d3a3eff0d0-Expr" + }, + { + "id": "0x55d3a3eff1a0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3ef4b00-Designator" + }, + { + "id": "0x55d3a3ef4b00-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef4b10-DataRef" + }, + { + "id": "0x55d3a3ef4b10-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef4b10-Name" + }, + { + "id": "0x55d3a3ef4b10-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3eff0d0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3eff5a0-Designator" + }, + { + "id": "0x55d3a3eff5a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff5b0-DataRef" + }, + { + "id": "0x55d3a3eff5b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff5b0-Name" + }, + { + "id": "0x55d3a3eff5b0-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3eff840-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3eff840-ExecutableConstruct" + }, + { + "id": "0x55d3a3eff840-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3eff840-Statement" + }, + { + "id": "0x55d3a3eff840-Statement", + "statement": "0x55d3a3eff850-ActionStmt", + "source": "i4b = i4_mone" + }, + { + "id": "0x55d3a3eff850-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3eff720-AssignmentStmt" + }, + { + "id": "0x55d3a3eff720-AssignmentStmt", + "Variable": "0x55d3a3eff800-Variable", + "Expr": "0x55d3a3eff730-Expr" + }, + { + "id": "0x55d3a3eff800-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3efe620-Designator" + }, + { + "id": "0x55d3a3efe620-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efe630-DataRef" + }, + { + "id": "0x55d3a3efe630-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efe630-Name" + }, + { + "id": "0x55d3a3efe630-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3eff730-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3eff6c0-Designator" + }, + { + "id": "0x55d3a3eff6c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff6d0-DataRef" + }, + { + "id": "0x55d3a3eff6d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff6d0-Name" + }, + { + "id": "0x55d3a3eff6d0-Name", + "source": "i4_mone" + }, + { + "id": "0x55d3a3effd50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3effd50-ExecutableConstruct" + }, + { + "id": "0x55d3a3effd50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3effd50-Statement" + }, + { + "id": "0x55d3a3effd50-Statement", + "statement": "0x55d3a3effd60-ActionStmt", + "source": "i4c = i4a + i4b" + }, + { + "id": "0x55d3a3effd60-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3effc30-AssignmentStmt" + }, + { + "id": "0x55d3a3effc30-AssignmentStmt", + "Variable": "0x55d3a3effd10-Variable", + "Expr": "0x55d3a3effc40-Expr" + }, + { + "id": "0x55d3a3effd10-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3efbad0-Designator" + }, + { + "id": "0x55d3a3efbad0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efbae0-DataRef" + }, + { + "id": "0x55d3a3efbae0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efbae0-Name" + }, + { + "id": "0x55d3a3efbae0-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3effc40-Expr", + "variantKey": "Add", + "Add": "0x55d3a3effc60-Add" + }, + { + "id": "0x55d3a3effc60-Add", + "left": "0x55d3a3effb50-Expr", + "right": "0x55d3a3effa70-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3effb50-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3eff8f0-Designator" + }, + { + "id": "0x55d3a3eff8f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff900-DataRef" + }, + { + "id": "0x55d3a3eff900-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff900-Name" + }, + { + "id": "0x55d3a3eff900-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3effa70-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3effa10-Designator" + }, + { + "id": "0x55d3a3effa10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3effa20-DataRef" + }, + { + "id": "0x55d3a3effa20-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3effa20-Name" + }, + { + "id": "0x55d3a3effa20-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3effe10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3effe10-ExecutableConstruct" + }, + { + "id": "0x55d3a3effe10-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f008a0-IfConstruct" + }, + { + "id": "0x55d3a3f008a0-IfConstruct", + "Statement": "0x55d3a3f00970-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f004a0-ExecutionPartConstruct", + "0x55d3a3f00440-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f008a0-Statement" + }, + { + "id": "0x55d3a3f00970-Statement", + "statement": "0x55d3a3f00980-IfThenStmt", + "source": "if(i4c .ne. i4_max-1) then" + }, + { + "id": "0x55d3a3f00980-IfThenStmt", + "Expr": "0x55d3a3f00020-Expr" + }, + { + "id": "0x55d3a3f00020-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f00040-NE" + }, + { + "id": "0x55d3a3f00040-NE", + "left": "0x55d3a3effe60-Expr", + "right": "0x55d3a3f001e0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3effe60-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f002c0-Designator" + }, + { + "id": "0x55d3a3f002c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f002d0-DataRef" + }, + { + "id": "0x55d3a3f002d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f002d0-Name" + }, + { + "id": "0x55d3a3f002d0-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f001e0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55d3a3f00200-Subtract" + }, + { + "id": "0x55d3a3f00200-Subtract", + "left": "0x55d3a3efff40-Expr", + "right": "0x55d3a3f00100-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55d3a3efff40-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3eff890-Designator" + }, + { + "id": "0x55d3a3eff890-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff8a0-DataRef" + }, + { + "id": "0x55d3a3eff8a0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff8a0-Name" + }, + { + "id": "0x55d3a3eff8a0-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3f00100-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f00120-LiteralConstant" + }, + { + "id": "0x55d3a3f00120-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3f00120-IntLiteralConstant" + }, + { + "id": "0x55d3a3f00120-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55d3a3f00958-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f004a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f004a0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f004a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f004a0-Statement" + }, + { + "id": "0x55d3a3f004a0-Statement", + "statement": "0x55d3a3f004b0-ActionStmt", + "source": "print *, \"NG : I4_MAX + I4_MONE\"" + }, + { + "id": "0x55d3a3f004b0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f007a0-PrintStmt" + }, + { + "id": "0x55d3a3f007a0-PrintStmt", + "Format": "0x55d3a3f007b8-Format", + "OutputItem": [ + "0x55d3a3f006c0-OutputItem" + ] + }, + { + "id": "0x55d3a3f007b8-Format", + "variantKey": "Star", + "Star": "0x55d3a3f007b8-Star" + }, + { + "id": "0x55d3a3f007b8-Star" + }, + { + "id": "0x55d3a3f006c0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f006c0-Expr" + }, + { + "id": "0x55d3a3f006c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f006e0-LiteralConstant" + }, + { + "id": "0x55d3a3f006e0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f006e0-CharLiteralConstant" + }, + { + "id": "0x55d3a3f006e0-CharLiteralConstant", + "string": "NG : I4_MAX + I4_MONE" + }, + { + "id": "0x55d3a3f00440-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f00440-ExecutableConstruct" + }, + { + "id": "0x55d3a3f00440-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f00440-Statement" + }, + { + "id": "0x55d3a3f00440-Statement", + "statement": "0x55d3a3f00450-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f00450-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3ef4c00-GotoStmt" + }, + { + "id": "0x55d3a3ef4c00-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f008a0-Statement", + "statement": "0x55d3a3f008b0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f008b0-EndIfStmt" + }, + { + "id": "0x55d3a3f009d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f009d0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f009d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f009d0-Statement" + }, + { + "id": "0x55d3a3f009d0-Statement", + "statement": "0x55d3a3f009e0-ActionStmt", + "source": "i4a = i4_min" + }, + { + "id": "0x55d3a3f009e0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f00320-AssignmentStmt" + }, + { + "id": "0x55d3a3f00320-AssignmentStmt", + "Variable": "0x55d3a3f00400-Variable", + "Expr": "0x55d3a3f00330-Expr" + }, + { + "id": "0x55d3a3f00400-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3efe910-Designator" + }, + { + "id": "0x55d3a3efe910-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efe920-DataRef" + }, + { + "id": "0x55d3a3efe920-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efe920-Name" + }, + { + "id": "0x55d3a3efe920-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f00330-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efed60-Designator" + }, + { + "id": "0x55d3a3efed60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efed70-DataRef" + }, + { + "id": "0x55d3a3efed70-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efed70-Name" + }, + { + "id": "0x55d3a3efed70-Name", + "source": "i4_min" + }, + { + "id": "0x55d3a3f00c00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f00c00-ExecutableConstruct" + }, + { + "id": "0x55d3a3f00c00-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f00c00-Statement" + }, + { + "id": "0x55d3a3f00c00-Statement", + "statement": "0x55d3a3f00c10-ActionStmt", + "source": "i4b = i4_zero" + }, + { + "id": "0x55d3a3f00c10-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f00ae0-AssignmentStmt" + }, + { + "id": "0x55d3a3f00ae0-AssignmentStmt", + "Variable": "0x55d3a3f00bc0-Variable", + "Expr": "0x55d3a3f00af0-Expr" + }, + { + "id": "0x55d3a3f00bc0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3eff950-Designator" + }, + { + "id": "0x55d3a3eff950-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff960-DataRef" + }, + { + "id": "0x55d3a3eff960-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff960-Name" + }, + { + "id": "0x55d3a3eff960-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f00af0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f00a80-Designator" + }, + { + "id": "0x55d3a3f00a80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f00a90-DataRef" + }, + { + "id": "0x55d3a3f00a90-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f00a90-Name" + }, + { + "id": "0x55d3a3f00a90-Name", + "source": "i4_zero" + }, + { + "id": "0x55d3a3f01110-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f01110-ExecutableConstruct" + }, + { + "id": "0x55d3a3f01110-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f01110-Statement" + }, + { + "id": "0x55d3a3f01110-Statement", + "statement": "0x55d3a3f01120-ActionStmt", + "source": "i4c = i4a + i4b" + }, + { + "id": "0x55d3a3f01120-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f00ff0-AssignmentStmt" + }, + { + "id": "0x55d3a3f00ff0-AssignmentStmt", + "Variable": "0x55d3a3f010d0-Variable", + "Expr": "0x55d3a3f01000-Expr" + }, + { + "id": "0x55d3a3f010d0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3eff660-Designator" + }, + { + "id": "0x55d3a3eff660-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff670-DataRef" + }, + { + "id": "0x55d3a3eff670-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff670-Name" + }, + { + "id": "0x55d3a3eff670-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f01000-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f01020-Add" + }, + { + "id": "0x55d3a3f01020-Add", + "left": "0x55d3a3f00f10-Expr", + "right": "0x55d3a3f00e30-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f00f10-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f00cb0-Designator" + }, + { + "id": "0x55d3a3f00cb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f00cc0-DataRef" + }, + { + "id": "0x55d3a3f00cc0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f00cc0-Name" + }, + { + "id": "0x55d3a3f00cc0-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f00e30-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f00dd0-Designator" + }, + { + "id": "0x55d3a3f00dd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f00de0-DataRef" + }, + { + "id": "0x55d3a3f00de0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f00de0-Name" + }, + { + "id": "0x55d3a3f00de0-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f00d80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f00d80-ExecutableConstruct" + }, + { + "id": "0x55d3a3f00d80-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f01880-IfConstruct" + }, + { + "id": "0x55d3a3f01880-IfConstruct", + "Statement": "0x55d3a3f01950-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f01640-ExecutionPartConstruct", + "0x55d3a3f015e0-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f01880-Statement" + }, + { + "id": "0x55d3a3f01950-Statement", + "statement": "0x55d3a3f01960-IfThenStmt", + "source": "if(i4c .ne. i4_min) then" + }, + { + "id": "0x55d3a3f01960-IfThenStmt", + "Expr": "0x55d3a3f011c0-Expr" + }, + { + "id": "0x55d3a3f011c0-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f011e0-NE" + }, + { + "id": "0x55d3a3f011e0-NE", + "left": "0x55d3a3f01380-Expr", + "right": "0x55d3a3f012a0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f01380-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f01460-Designator" + }, + { + "id": "0x55d3a3f01460-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01470-DataRef" + }, + { + "id": "0x55d3a3f01470-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01470-Name" + }, + { + "id": "0x55d3a3f01470-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f012a0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f00c50-Designator" + }, + { + "id": "0x55d3a3f00c50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f00c60-DataRef" + }, + { + "id": "0x55d3a3f00c60-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f00c60-Name" + }, + { + "id": "0x55d3a3f00c60-Name", + "source": "i4_min" + }, + { + "id": "0x55d3a3f01938-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f01640-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f01640-ExecutableConstruct" + }, + { + "id": "0x55d3a3f01640-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f01640-Statement" + }, + { + "id": "0x55d3a3f01640-Statement", + "statement": "0x55d3a3f01650-ActionStmt", + "source": "print *, \"NG : I4_MIN + I4_ZERO\"" + }, + { + "id": "0x55d3a3f01650-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f01780-PrintStmt" + }, + { + "id": "0x55d3a3f01780-PrintStmt", + "Format": "0x55d3a3f01798-Format", + "OutputItem": [ + "0x55d3a3f016a0-OutputItem" + ] + }, + { + "id": "0x55d3a3f01798-Format", + "variantKey": "Star", + "Star": "0x55d3a3f01798-Star" + }, + { + "id": "0x55d3a3f01798-Star" + }, + { + "id": "0x55d3a3f016a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f016a0-Expr" + }, + { + "id": "0x55d3a3f016a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f016c0-LiteralConstant" + }, + { + "id": "0x55d3a3f016c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f016c0-CharLiteralConstant" + }, + { + "id": "0x55d3a3f016c0-CharLiteralConstant", + "string": "NG : I4_MIN + I4_ZERO" + }, + { + "id": "0x55d3a3f015e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f015e0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f015e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f015e0-Statement" + }, + { + "id": "0x55d3a3f015e0-Statement", + "statement": "0x55d3a3f015f0-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f015f0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3ea1140-GotoStmt" + }, + { + "id": "0x55d3a3ea1140-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f01880-Statement", + "statement": "0x55d3a3f01890-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f01890-EndIfStmt" + }, + { + "id": "0x55d3a3f01a10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f01a10-ExecutableConstruct" + }, + { + "id": "0x55d3a3f01a10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f01a10-Statement" + }, + { + "id": "0x55d3a3f01a10-Statement", + "statement": "0x55d3a3f01a20-ActionStmt", + "source": "i4a = i4_min" + }, + { + "id": "0x55d3a3f01a20-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f014c0-AssignmentStmt" + }, + { + "id": "0x55d3a3f014c0-AssignmentStmt", + "Variable": "0x55d3a3f015a0-Variable", + "Expr": "0x55d3a3f014d0-Expr" + }, + { + "id": "0x55d3a3f015a0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3eff9b0-Designator" + }, + { + "id": "0x55d3a3eff9b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3eff9c0-DataRef" + }, + { + "id": "0x55d3a3eff9c0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3eff9c0-Name" + }, + { + "id": "0x55d3a3eff9c0-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f014d0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f019a0-Designator" + }, + { + "id": "0x55d3a3f019a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f019b0-DataRef" + }, + { + "id": "0x55d3a3f019b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f019b0-Name" + }, + { + "id": "0x55d3a3f019b0-Name", + "source": "i4_min" + }, + { + "id": "0x55d3a3f01c40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f01c40-ExecutableConstruct" + }, + { + "id": "0x55d3a3f01c40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f01c40-Statement" + }, + { + "id": "0x55d3a3f01c40-Statement", + "statement": "0x55d3a3f01c50-ActionStmt", + "source": "i4b = i4_mzero" + }, + { + "id": "0x55d3a3f01c50-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f01b20-AssignmentStmt" + }, + { + "id": "0x55d3a3f01b20-AssignmentStmt", + "Variable": "0x55d3a3f01c00-Variable", + "Expr": "0x55d3a3f01b30-Expr" + }, + { + "id": "0x55d3a3f01c00-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f00a20-Designator" + }, + { + "id": "0x55d3a3f00a20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f00a30-DataRef" + }, + { + "id": "0x55d3a3f00a30-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f00a30-Name" + }, + { + "id": "0x55d3a3f00a30-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f01b30-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f01ac0-Designator" + }, + { + "id": "0x55d3a3f01ac0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01ad0-DataRef" + }, + { + "id": "0x55d3a3f01ad0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01ad0-Name" + }, + { + "id": "0x55d3a3f01ad0-Name", + "source": "i4_mzero" + }, + { + "id": "0x55d3a3f02150-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f02150-ExecutableConstruct" + }, + { + "id": "0x55d3a3f02150-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f02150-Statement" + }, + { + "id": "0x55d3a3f02150-Statement", + "statement": "0x55d3a3f02160-ActionStmt", + "source": "i4c = i4a + i4b" + }, + { + "id": "0x55d3a3f02160-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f02030-AssignmentStmt" + }, + { + "id": "0x55d3a3f02030-AssignmentStmt", + "Variable": "0x55d3a3f02110-Variable", + "Expr": "0x55d3a3f02040-Expr" + }, + { + "id": "0x55d3a3f02110-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3effda0-Designator" + }, + { + "id": "0x55d3a3effda0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3effdb0-DataRef" + }, + { + "id": "0x55d3a3effdb0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3effdb0-Name" + }, + { + "id": "0x55d3a3effdb0-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f02040-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f02060-Add" + }, + { + "id": "0x55d3a3f02060-Add", + "left": "0x55d3a3f01f50-Expr", + "right": "0x55d3a3f01e70-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f01f50-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f01cf0-Designator" + }, + { + "id": "0x55d3a3f01cf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01d00-DataRef" + }, + { + "id": "0x55d3a3f01d00-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01d00-Name" + }, + { + "id": "0x55d3a3f01d00-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f01e70-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f01e10-Designator" + }, + { + "id": "0x55d3a3f01e10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01e20-DataRef" + }, + { + "id": "0x55d3a3f01e20-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01e20-Name" + }, + { + "id": "0x55d3a3f01e20-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f01dc0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f01dc0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f01dc0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f028c0-IfConstruct" + }, + { + "id": "0x55d3a3f028c0-IfConstruct", + "Statement": "0x55d3a3f02990-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f02680-ExecutionPartConstruct", + "0x55d3a3f02620-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f028c0-Statement" + }, + { + "id": "0x55d3a3f02990-Statement", + "statement": "0x55d3a3f029a0-IfThenStmt", + "source": "if(i4c .ne. i4_min) then" + }, + { + "id": "0x55d3a3f029a0-IfThenStmt", + "Expr": "0x55d3a3f02200-Expr" + }, + { + "id": "0x55d3a3f02200-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f02220-NE" + }, + { + "id": "0x55d3a3f02220-NE", + "left": "0x55d3a3f023c0-Expr", + "right": "0x55d3a3f022e0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f023c0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f024a0-Designator" + }, + { + "id": "0x55d3a3f024a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f024b0-DataRef" + }, + { + "id": "0x55d3a3f024b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f024b0-Name" + }, + { + "id": "0x55d3a3f024b0-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f022e0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f01c90-Designator" + }, + { + "id": "0x55d3a3f01c90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01ca0-DataRef" + }, + { + "id": "0x55d3a3f01ca0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01ca0-Name" + }, + { + "id": "0x55d3a3f01ca0-Name", + "source": "i4_min" + }, + { + "id": "0x55d3a3f02978-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f02680-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f02680-ExecutableConstruct" + }, + { + "id": "0x55d3a3f02680-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f02680-Statement" + }, + { + "id": "0x55d3a3f02680-Statement", + "statement": "0x55d3a3f02690-ActionStmt", + "source": "print *, \"NG : I4_MIN + I4_MZERO\"" + }, + { + "id": "0x55d3a3f02690-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f027c0-PrintStmt" + }, + { + "id": "0x55d3a3f027c0-PrintStmt", + "Format": "0x55d3a3f027d8-Format", + "OutputItem": [ + "0x55d3a3f026e0-OutputItem" + ] + }, + { + "id": "0x55d3a3f027d8-Format", + "variantKey": "Star", + "Star": "0x55d3a3f027d8-Star" + }, + { + "id": "0x55d3a3f027d8-Star" + }, + { + "id": "0x55d3a3f026e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f026e0-Expr" + }, + { + "id": "0x55d3a3f026e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f02700-LiteralConstant" + }, + { + "id": "0x55d3a3f02700-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f02700-CharLiteralConstant" + }, + { + "id": "0x55d3a3f02700-CharLiteralConstant", + "string": "NG : I4_MIN + I4_MZERO" + }, + { + "id": "0x55d3a3f02620-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f02620-ExecutableConstruct" + }, + { + "id": "0x55d3a3f02620-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f02620-Statement" + }, + { + "id": "0x55d3a3f02620-Statement", + "statement": "0x55d3a3f02630-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f02630-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3efb170-GotoStmt" + }, + { + "id": "0x55d3a3efb170-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f028c0-Statement", + "statement": "0x55d3a3f028d0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f028d0-EndIfStmt" + }, + { + "id": "0x55d3a3f02a50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f02a50-ExecutableConstruct" + }, + { + "id": "0x55d3a3f02a50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f02a50-Statement" + }, + { + "id": "0x55d3a3f02a50-Statement", + "statement": "0x55d3a3f02a60-ActionStmt", + "source": "i4a = i4_min" + }, + { + "id": "0x55d3a3f02a60-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f02500-AssignmentStmt" + }, + { + "id": "0x55d3a3f02500-AssignmentStmt", + "Variable": "0x55d3a3f025e0-Variable", + "Expr": "0x55d3a3f02510-Expr" + }, + { + "id": "0x55d3a3f025e0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f00d10-Designator" + }, + { + "id": "0x55d3a3f00d10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f00d20-DataRef" + }, + { + "id": "0x55d3a3f00d20-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f00d20-Name" + }, + { + "id": "0x55d3a3f00d20-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f02510-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f029e0-Designator" + }, + { + "id": "0x55d3a3f029e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f029f0-DataRef" + }, + { + "id": "0x55d3a3f029f0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f029f0-Name" + }, + { + "id": "0x55d3a3f029f0-Name", + "source": "i4_min" + }, + { + "id": "0x55d3a3f02c80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f02c80-ExecutableConstruct" + }, + { + "id": "0x55d3a3f02c80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f02c80-Statement" + }, + { + "id": "0x55d3a3f02c80-Statement", + "statement": "0x55d3a3f02c90-ActionStmt", + "source": "i4b = i4_one" + }, + { + "id": "0x55d3a3f02c90-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f02b60-AssignmentStmt" + }, + { + "id": "0x55d3a3f02b60-AssignmentStmt", + "Variable": "0x55d3a3f02c40-Variable", + "Expr": "0x55d3a3f02b70-Expr" + }, + { + "id": "0x55d3a3f02c40-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f01a60-Designator" + }, + { + "id": "0x55d3a3f01a60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01a70-DataRef" + }, + { + "id": "0x55d3a3f01a70-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01a70-Name" + }, + { + "id": "0x55d3a3f01a70-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f02b70-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f02b00-Designator" + }, + { + "id": "0x55d3a3f02b00-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f02b10-DataRef" + }, + { + "id": "0x55d3a3f02b10-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f02b10-Name" + }, + { + "id": "0x55d3a3f02b10-Name", + "source": "i4_one" + }, + { + "id": "0x55d3a3f03190-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f03190-ExecutableConstruct" + }, + { + "id": "0x55d3a3f03190-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f03190-Statement" + }, + { + "id": "0x55d3a3f03190-Statement", + "statement": "0x55d3a3f031a0-ActionStmt", + "source": "i4c = i4a + i4b" + }, + { + "id": "0x55d3a3f031a0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f03070-AssignmentStmt" + }, + { + "id": "0x55d3a3f03070-AssignmentStmt", + "Variable": "0x55d3a3f03150-Variable", + "Expr": "0x55d3a3f03080-Expr" + }, + { + "id": "0x55d3a3f03150-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f01160-Designator" + }, + { + "id": "0x55d3a3f01160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01170-DataRef" + }, + { + "id": "0x55d3a3f01170-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01170-Name" + }, + { + "id": "0x55d3a3f01170-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f03080-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f030a0-Add" + }, + { + "id": "0x55d3a3f030a0-Add", + "left": "0x55d3a3f02f90-Expr", + "right": "0x55d3a3f02eb0-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f02f90-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f02d30-Designator" + }, + { + "id": "0x55d3a3f02d30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f02d40-DataRef" + }, + { + "id": "0x55d3a3f02d40-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f02d40-Name" + }, + { + "id": "0x55d3a3f02d40-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f02eb0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f02e50-Designator" + }, + { + "id": "0x55d3a3f02e50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f02e60-DataRef" + }, + { + "id": "0x55d3a3f02e60-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f02e60-Name" + }, + { + "id": "0x55d3a3f02e60-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f02e00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f02e00-ExecutableConstruct" + }, + { + "id": "0x55d3a3f02e00-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f039e0-IfConstruct" + }, + { + "id": "0x55d3a3f039e0-IfConstruct", + "Statement": "0x55d3a3f03ab0-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f037a0-ExecutionPartConstruct", + "0x55d3a3f03740-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f039e0-Statement" + }, + { + "id": "0x55d3a3f03ab0-Statement", + "statement": "0x55d3a3f03ac0-IfThenStmt", + "source": "if(i4c .ne. -i4_max) then" + }, + { + "id": "0x55d3a3f03ac0-IfThenStmt", + "Expr": "0x55d3a3f03240-Expr" + }, + { + "id": "0x55d3a3f03240-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f03260-NE" + }, + { + "id": "0x55d3a3f03260-NE", + "left": "0x55d3a3f034e0-Expr", + "right": "0x55d3a3f03400-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f034e0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f035c0-Designator" + }, + { + "id": "0x55d3a3f035c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f035d0-DataRef" + }, + { + "id": "0x55d3a3f035d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f035d0-Name" + }, + { + "id": "0x55d3a3f035d0-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f03400-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3f03420-Negate" + }, + { + "id": "0x55d3a3f03420-Negate", + "Expr": "0x55d3a3f03320-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3f03320-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f02cd0-Designator" + }, + { + "id": "0x55d3a3f02cd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f02ce0-DataRef" + }, + { + "id": "0x55d3a3f02ce0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f02ce0-Name" + }, + { + "id": "0x55d3a3f02ce0-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3f03a98-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f037a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f037a0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f037a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f037a0-Statement" + }, + { + "id": "0x55d3a3f037a0-Statement", + "statement": "0x55d3a3f037b0-ActionStmt", + "source": "print *, \"NG : I4_MIN + I4_ONE\"" + }, + { + "id": "0x55d3a3f037b0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f038e0-PrintStmt" + }, + { + "id": "0x55d3a3f038e0-PrintStmt", + "Format": "0x55d3a3f038f8-Format", + "OutputItem": [ + "0x55d3a3f03800-OutputItem" + ] + }, + { + "id": "0x55d3a3f038f8-Format", + "variantKey": "Star", + "Star": "0x55d3a3f038f8-Star" + }, + { + "id": "0x55d3a3f038f8-Star" + }, + { + "id": "0x55d3a3f03800-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f03800-Expr" + }, + { + "id": "0x55d3a3f03800-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f03820-LiteralConstant" + }, + { + "id": "0x55d3a3f03820-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f03820-CharLiteralConstant" + }, + { + "id": "0x55d3a3f03820-CharLiteralConstant", + "string": "NG : I4_MIN + I4_ONE" + }, + { + "id": "0x55d3a3f03740-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f03740-ExecutableConstruct" + }, + { + "id": "0x55d3a3f03740-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f03740-Statement" + }, + { + "id": "0x55d3a3f03740-Statement", + "statement": "0x55d3a3f03750-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f03750-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3ef6600-GotoStmt" + }, + { + "id": "0x55d3a3ef6600-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f039e0-Statement", + "statement": "0x55d3a3f039f0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f039f0-EndIfStmt" + }, + { + "id": "0x55d3a3f03b70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f03b70-ExecutableConstruct" + }, + { + "id": "0x55d3a3f03b70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f03b70-Statement" + }, + { + "id": "0x55d3a3f03b70-Statement", + "statement": "0x55d3a3f03b80-ActionStmt", + "source": "i4a = i4_max" + }, + { + "id": "0x55d3a3f03b80-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f03620-AssignmentStmt" + }, + { + "id": "0x55d3a3f03620-AssignmentStmt", + "Variable": "0x55d3a3f03700-Variable", + "Expr": "0x55d3a3f03630-Expr" + }, + { + "id": "0x55d3a3f03700-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f01d50-Designator" + }, + { + "id": "0x55d3a3f01d50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f01d60-DataRef" + }, + { + "id": "0x55d3a3f01d60-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f01d60-Name" + }, + { + "id": "0x55d3a3f01d60-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f03630-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f03b00-Designator" + }, + { + "id": "0x55d3a3f03b00-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f03b10-DataRef" + }, + { + "id": "0x55d3a3f03b10-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f03b10-Name" + }, + { + "id": "0x55d3a3f03b10-Name", + "source": "i4_max" + }, + { + "id": "0x55d3a3f03da0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f03da0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f03da0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f03da0-Statement" + }, + { + "id": "0x55d3a3f03da0-Statement", + "statement": "0x55d3a3f03db0-ActionStmt", + "source": "i4b = i4_min" + }, + { + "id": "0x55d3a3f03db0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f03c80-AssignmentStmt" + }, + { + "id": "0x55d3a3f03c80-AssignmentStmt", + "Variable": "0x55d3a3f03d60-Variable", + "Expr": "0x55d3a3f03c90-Expr" + }, + { + "id": "0x55d3a3f03d60-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f02aa0-Designator" + }, + { + "id": "0x55d3a3f02aa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f02ab0-DataRef" + }, + { + "id": "0x55d3a3f02ab0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f02ab0-Name" + }, + { + "id": "0x55d3a3f02ab0-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f03c90-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f03c20-Designator" + }, + { + "id": "0x55d3a3f03c20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f03c30-DataRef" + }, + { + "id": "0x55d3a3f03c30-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f03c30-Name" + }, + { + "id": "0x55d3a3f03c30-Name", + "source": "i4_min" + }, + { + "id": "0x55d3a3f042b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f042b0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f042b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f042b0-Statement" + }, + { + "id": "0x55d3a3f042b0-Statement", + "statement": "0x55d3a3f042c0-ActionStmt", + "source": "i4c = i4a + i4b" + }, + { + "id": "0x55d3a3f042c0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f04190-AssignmentStmt" + }, + { + "id": "0x55d3a3f04190-AssignmentStmt", + "Variable": "0x55d3a3f04270-Variable", + "Expr": "0x55d3a3f041a0-Expr" + }, + { + "id": "0x55d3a3f04270-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f021a0-Designator" + }, + { + "id": "0x55d3a3f021a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f021b0-DataRef" + }, + { + "id": "0x55d3a3f021b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f021b0-Name" + }, + { + "id": "0x55d3a3f021b0-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f041a0-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f041c0-Add" + }, + { + "id": "0x55d3a3f041c0-Add", + "left": "0x55d3a3f040b0-Expr", + "right": "0x55d3a3f03fd0-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f040b0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f03e50-Designator" + }, + { + "id": "0x55d3a3f03e50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f03e60-DataRef" + }, + { + "id": "0x55d3a3f03e60-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f03e60-Name" + }, + { + "id": "0x55d3a3f03e60-Name", + "source": "i4a" + }, + { + "id": "0x55d3a3f03fd0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f03f70-Designator" + }, + { + "id": "0x55d3a3f03f70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f03f80-DataRef" + }, + { + "id": "0x55d3a3f03f80-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f03f80-Name" + }, + { + "id": "0x55d3a3f03f80-Name", + "source": "i4b" + }, + { + "id": "0x55d3a3f03f20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f03f20-ExecutableConstruct" + }, + { + "id": "0x55d3a3f03f20-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f04a40-IfConstruct" + }, + { + "id": "0x55d3a3f04a40-IfConstruct", + "Statement": "0x55d3a3f04b10-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f04800-ExecutionPartConstruct", + "0x55d3a3f047a0-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f04a40-Statement" + }, + { + "id": "0x55d3a3f04b10-Statement", + "statement": "0x55d3a3f04b20-IfThenStmt", + "source": "if(i4c .ne. i4_mone) then" + }, + { + "id": "0x55d3a3f04b20-IfThenStmt", + "Expr": "0x55d3a3f04380-Expr" + }, + { + "id": "0x55d3a3f04380-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f043a0-NE" + }, + { + "id": "0x55d3a3f043a0-NE", + "left": "0x55d3a3f04540-Expr", + "right": "0x55d3a3f04460-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f04540-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f04620-Designator" + }, + { + "id": "0x55d3a3f04620-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04630-DataRef" + }, + { + "id": "0x55d3a3f04630-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04630-Name" + }, + { + "id": "0x55d3a3f04630-Name", + "source": "i4c" + }, + { + "id": "0x55d3a3f04460-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f03df0-Designator" + }, + { + "id": "0x55d3a3f03df0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f03e00-DataRef" + }, + { + "id": "0x55d3a3f03e00-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f03e00-Name" + }, + { + "id": "0x55d3a3f03e00-Name", + "source": "i4_mone" + }, + { + "id": "0x55d3a3f04af8-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f04800-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f04800-ExecutableConstruct" + }, + { + "id": "0x55d3a3f04800-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f04800-Statement" + }, + { + "id": "0x55d3a3f04800-Statement", + "statement": "0x55d3a3f04810-ActionStmt", + "source": "print *, \"NG : I4_MAX + I4_MIN\"" + }, + { + "id": "0x55d3a3f04810-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f04940-PrintStmt" + }, + { + "id": "0x55d3a3f04940-PrintStmt", + "Format": "0x55d3a3f04958-Format", + "OutputItem": [ + "0x55d3a3f04860-OutputItem" + ] + }, + { + "id": "0x55d3a3f04958-Format", + "variantKey": "Star", + "Star": "0x55d3a3f04958-Star" + }, + { + "id": "0x55d3a3f04958-Star" + }, + { + "id": "0x55d3a3f04860-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f04860-Expr" + }, + { + "id": "0x55d3a3f04860-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f04880-LiteralConstant" + }, + { + "id": "0x55d3a3f04880-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f04880-CharLiteralConstant" + }, + { + "id": "0x55d3a3f04880-CharLiteralConstant", + "string": "NG : I4_MAX + I4_MIN" + }, + { + "id": "0x55d3a3f047a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f047a0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f047a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f047a0-Statement" + }, + { + "id": "0x55d3a3f047a0-Statement", + "statement": "0x55d3a3f047b0-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f047b0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3efb190-GotoStmt" + }, + { + "id": "0x55d3a3efb190-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f04a40-Statement", + "statement": "0x55d3a3f04a50-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f04a50-EndIfStmt" + }, + { + "id": "0x55d3a3f04bd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f04bd0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f04bd0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f04bd0-Statement" + }, + { + "id": "0x55d3a3f04bd0-Statement", + "statement": "0x55d3a3f04be0-ActionStmt", + "source": "i8a = i8_max" + }, + { + "id": "0x55d3a3f04be0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f04680-AssignmentStmt" + }, + { + "id": "0x55d3a3f04680-AssignmentStmt", + "Variable": "0x55d3a3f04760-Variable", + "Expr": "0x55d3a3f04690-Expr" + }, + { + "id": "0x55d3a3f04760-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f02d90-Designator" + }, + { + "id": "0x55d3a3f02d90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f02da0-DataRef" + }, + { + "id": "0x55d3a3f02da0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f02da0-Name" + }, + { + "id": "0x55d3a3f02da0-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f04690-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f04b60-Designator" + }, + { + "id": "0x55d3a3f04b60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04b70-DataRef" + }, + { + "id": "0x55d3a3f04b70-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04b70-Name" + }, + { + "id": "0x55d3a3f04b70-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f04e20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f04e20-ExecutableConstruct" + }, + { + "id": "0x55d3a3f04e20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f04e20-Statement" + }, + { + "id": "0x55d3a3f04e20-Statement", + "statement": "0x55d3a3f04e30-ActionStmt", + "source": "i8b = i8_zero" + }, + { + "id": "0x55d3a3f04e30-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f04d00-AssignmentStmt" + }, + { + "id": "0x55d3a3f04d00-AssignmentStmt", + "Variable": "0x55d3a3f04de0-Variable", + "Expr": "0x55d3a3f04d10-Expr" + }, + { + "id": "0x55d3a3f04de0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f03bc0-Designator" + }, + { + "id": "0x55d3a3f03bc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f03bd0-DataRef" + }, + { + "id": "0x55d3a3f03bd0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f03bd0-Name" + }, + { + "id": "0x55d3a3f03bd0-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f04d10-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f04ca0-Designator" + }, + { + "id": "0x55d3a3f04ca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04cb0-DataRef" + }, + { + "id": "0x55d3a3f04cb0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04cb0-Name" + }, + { + "id": "0x55d3a3f04cb0-Name", + "source": "i8_zero" + }, + { + "id": "0x55d3a3f05330-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f05330-ExecutableConstruct" + }, + { + "id": "0x55d3a3f05330-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f05330-Statement" + }, + { + "id": "0x55d3a3f05330-Statement", + "statement": "0x55d3a3f05340-ActionStmt", + "source": "i8c = i8a + i8b" + }, + { + "id": "0x55d3a3f05340-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f05210-AssignmentStmt" + }, + { + "id": "0x55d3a3f05210-AssignmentStmt", + "Variable": "0x55d3a3f052f0-Variable", + "Expr": "0x55d3a3f05220-Expr" + }, + { + "id": "0x55d3a3f052f0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f031e0-Designator" + }, + { + "id": "0x55d3a3f031e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f031f0-DataRef" + }, + { + "id": "0x55d3a3f031f0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f031f0-Name" + }, + { + "id": "0x55d3a3f031f0-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f05220-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f05240-Add" + }, + { + "id": "0x55d3a3f05240-Add", + "left": "0x55d3a3f05130-Expr", + "right": "0x55d3a3f05050-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f05130-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f04ed0-Designator" + }, + { + "id": "0x55d3a3f04ed0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04ee0-DataRef" + }, + { + "id": "0x55d3a3f04ee0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04ee0-Name" + }, + { + "id": "0x55d3a3f04ee0-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f05050-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f04ff0-Designator" + }, + { + "id": "0x55d3a3f04ff0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05000-DataRef" + }, + { + "id": "0x55d3a3f05000-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05000-Name" + }, + { + "id": "0x55d3a3f05000-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f04fa0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f04fa0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f04fa0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f05ad0-IfConstruct" + }, + { + "id": "0x55d3a3f05ad0-IfConstruct", + "Statement": "0x55d3a3f05ba0-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f05860-ExecutionPartConstruct", + "0x55d3a3f05800-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f05ad0-Statement" + }, + { + "id": "0x55d3a3f05ba0-Statement", + "statement": "0x55d3a3f05bb0-IfThenStmt", + "source": "if(i8c .ne. i8_max) then" + }, + { + "id": "0x55d3a3f05bb0-IfThenStmt", + "Expr": "0x55d3a3f053e0-Expr" + }, + { + "id": "0x55d3a3f053e0-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f05400-NE" + }, + { + "id": "0x55d3a3f05400-NE", + "left": "0x55d3a3f055a0-Expr", + "right": "0x55d3a3f054c0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f055a0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f05680-Designator" + }, + { + "id": "0x55d3a3f05680-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05690-DataRef" + }, + { + "id": "0x55d3a3f05690-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05690-Name" + }, + { + "id": "0x55d3a3f05690-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f054c0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f04e70-Designator" + }, + { + "id": "0x55d3a3f04e70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04e80-DataRef" + }, + { + "id": "0x55d3a3f04e80-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04e80-Name" + }, + { + "id": "0x55d3a3f04e80-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f05b88-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f05860-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f05860-ExecutableConstruct" + }, + { + "id": "0x55d3a3f05860-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f05860-Statement" + }, + { + "id": "0x55d3a3f05860-Statement", + "statement": "0x55d3a3f05870-ActionStmt", + "source": "print *, \"NG : I8_MAX + I8_ZERO\"" + }, + { + "id": "0x55d3a3f05870-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f059d0-PrintStmt" + }, + { + "id": "0x55d3a3f059d0-PrintStmt", + "Format": "0x55d3a3f059e8-Format", + "OutputItem": [ + "0x55d3a3f058f0-OutputItem" + ] + }, + { + "id": "0x55d3a3f059e8-Format", + "variantKey": "Star", + "Star": "0x55d3a3f059e8-Star" + }, + { + "id": "0x55d3a3f059e8-Star" + }, + { + "id": "0x55d3a3f058f0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f058f0-Expr" + }, + { + "id": "0x55d3a3f058f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f05910-LiteralConstant" + }, + { + "id": "0x55d3a3f05910-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f05910-CharLiteralConstant" + }, + { + "id": "0x55d3a3f05910-CharLiteralConstant", + "string": "NG : I8_MAX + I8_ZERO" + }, + { + "id": "0x55d3a3f05800-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f05800-ExecutableConstruct" + }, + { + "id": "0x55d3a3f05800-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f05800-Statement" + }, + { + "id": "0x55d3a3f05800-Statement", + "statement": "0x55d3a3f05810-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f05810-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3ef1de0-GotoStmt" + }, + { + "id": "0x55d3a3ef1de0-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f05ad0-Statement", + "statement": "0x55d3a3f05ae0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f05ae0-EndIfStmt" + }, + { + "id": "0x55d3a3f05c60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f05c60-ExecutableConstruct" + }, + { + "id": "0x55d3a3f05c60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f05c60-Statement" + }, + { + "id": "0x55d3a3f05c60-Statement", + "statement": "0x55d3a3f05c70-ActionStmt", + "source": "i8a = i8_max" + }, + { + "id": "0x55d3a3f05c70-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f056e0-AssignmentStmt" + }, + { + "id": "0x55d3a3f056e0-AssignmentStmt", + "Variable": "0x55d3a3f057c0-Variable", + "Expr": "0x55d3a3f056f0-Expr" + }, + { + "id": "0x55d3a3f057c0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f03eb0-Designator" + }, + { + "id": "0x55d3a3f03eb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f03ec0-DataRef" + }, + { + "id": "0x55d3a3f03ec0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f03ec0-Name" + }, + { + "id": "0x55d3a3f03ec0-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f056f0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f05bf0-Designator" + }, + { + "id": "0x55d3a3f05bf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05c00-DataRef" + }, + { + "id": "0x55d3a3f05c00-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05c00-Name" + }, + { + "id": "0x55d3a3f05c00-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f05ed0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f05ed0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f05ed0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f05ed0-Statement" + }, + { + "id": "0x55d3a3f05ed0-Statement", + "statement": "0x55d3a3f05ee0-ActionStmt", + "source": "i8b = i8_mzero" + }, + { + "id": "0x55d3a3f05ee0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f05db0-AssignmentStmt" + }, + { + "id": "0x55d3a3f05db0-AssignmentStmt", + "Variable": "0x55d3a3f05e90-Variable", + "Expr": "0x55d3a3f05dc0-Expr" + }, + { + "id": "0x55d3a3f05e90-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f04c40-Designator" + }, + { + "id": "0x55d3a3f04c40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04c50-DataRef" + }, + { + "id": "0x55d3a3f04c50-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04c50-Name" + }, + { + "id": "0x55d3a3f04c50-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f05dc0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f05d50-Designator" + }, + { + "id": "0x55d3a3f05d50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05d60-DataRef" + }, + { + "id": "0x55d3a3f05d60-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05d60-Name" + }, + { + "id": "0x55d3a3f05d60-Name", + "source": "i8_mzero" + }, + { + "id": "0x55d3a3f063e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f063e0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f063e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f063e0-Statement" + }, + { + "id": "0x55d3a3f063e0-Statement", + "statement": "0x55d3a3f063f0-ActionStmt", + "source": "i8c = i8a + i8b" + }, + { + "id": "0x55d3a3f063f0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f062c0-AssignmentStmt" + }, + { + "id": "0x55d3a3f062c0-AssignmentStmt", + "Variable": "0x55d3a3f063a0-Variable", + "Expr": "0x55d3a3f062d0-Expr" + }, + { + "id": "0x55d3a3f063a0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f04320-Designator" + }, + { + "id": "0x55d3a3f04320-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04330-DataRef" + }, + { + "id": "0x55d3a3f04330-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04330-Name" + }, + { + "id": "0x55d3a3f04330-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f062d0-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f062f0-Add" + }, + { + "id": "0x55d3a3f062f0-Add", + "left": "0x55d3a3f061e0-Expr", + "right": "0x55d3a3f06100-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f061e0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f05f80-Designator" + }, + { + "id": "0x55d3a3f05f80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05f90-DataRef" + }, + { + "id": "0x55d3a3f05f90-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05f90-Name" + }, + { + "id": "0x55d3a3f05f90-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f06100-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f060a0-Designator" + }, + { + "id": "0x55d3a3f060a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f060b0-DataRef" + }, + { + "id": "0x55d3a3f060b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f060b0-Name" + }, + { + "id": "0x55d3a3f060b0-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f06050-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f06050-ExecutableConstruct" + }, + { + "id": "0x55d3a3f06050-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f06b80-IfConstruct" + }, + { + "id": "0x55d3a3f06b80-IfConstruct", + "Statement": "0x55d3a3f06c50-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f06910-ExecutionPartConstruct", + "0x55d3a3f068b0-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f06b80-Statement" + }, + { + "id": "0x55d3a3f06c50-Statement", + "statement": "0x55d3a3f06c60-IfThenStmt", + "source": "if(i8c .ne. i8_max) then" + }, + { + "id": "0x55d3a3f06c60-IfThenStmt", + "Expr": "0x55d3a3f06490-Expr" + }, + { + "id": "0x55d3a3f06490-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f064b0-NE" + }, + { + "id": "0x55d3a3f064b0-NE", + "left": "0x55d3a3f06650-Expr", + "right": "0x55d3a3f06570-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f06650-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f06730-Designator" + }, + { + "id": "0x55d3a3f06730-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f06740-DataRef" + }, + { + "id": "0x55d3a3f06740-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f06740-Name" + }, + { + "id": "0x55d3a3f06740-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f06570-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f05f20-Designator" + }, + { + "id": "0x55d3a3f05f20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05f30-DataRef" + }, + { + "id": "0x55d3a3f05f30-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05f30-Name" + }, + { + "id": "0x55d3a3f05f30-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f06c38-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f06910-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f06910-ExecutableConstruct" + }, + { + "id": "0x55d3a3f06910-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f06910-Statement" + }, + { + "id": "0x55d3a3f06910-Statement", + "statement": "0x55d3a3f06920-ActionStmt", + "source": "print *, \"NG : I8_MAX + I8_MZERO\"" + }, + { + "id": "0x55d3a3f06920-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f06a80-PrintStmt" + }, + { + "id": "0x55d3a3f06a80-PrintStmt", + "Format": "0x55d3a3f06a98-Format", + "OutputItem": [ + "0x55d3a3f069a0-OutputItem" + ] + }, + { + "id": "0x55d3a3f06a98-Format", + "variantKey": "Star", + "Star": "0x55d3a3f06a98-Star" + }, + { + "id": "0x55d3a3f06a98-Star" + }, + { + "id": "0x55d3a3f069a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f069a0-Expr" + }, + { + "id": "0x55d3a3f069a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f069c0-LiteralConstant" + }, + { + "id": "0x55d3a3f069c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f069c0-CharLiteralConstant" + }, + { + "id": "0x55d3a3f069c0-CharLiteralConstant", + "string": "NG : I8_MAX + I8_MZERO" + }, + { + "id": "0x55d3a3f068b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f068b0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f068b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f068b0-Statement" + }, + { + "id": "0x55d3a3f068b0-Statement", + "statement": "0x55d3a3f068c0-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f068c0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3f05cb0-GotoStmt" + }, + { + "id": "0x55d3a3f05cb0-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f06b80-Statement", + "statement": "0x55d3a3f06b90-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f06b90-EndIfStmt" + }, + { + "id": "0x55d3a3f06d10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f06d10-ExecutableConstruct" + }, + { + "id": "0x55d3a3f06d10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f06d10-Statement" + }, + { + "id": "0x55d3a3f06d10-Statement", + "statement": "0x55d3a3f06d20-ActionStmt", + "source": "i8a = i8_max" + }, + { + "id": "0x55d3a3f06d20-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f06790-AssignmentStmt" + }, + { + "id": "0x55d3a3f06790-AssignmentStmt", + "Variable": "0x55d3a3f06870-Variable", + "Expr": "0x55d3a3f067a0-Expr" + }, + { + "id": "0x55d3a3f06870-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f04f30-Designator" + }, + { + "id": "0x55d3a3f04f30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f04f40-DataRef" + }, + { + "id": "0x55d3a3f04f40-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f04f40-Name" + }, + { + "id": "0x55d3a3f04f40-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f067a0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f06ca0-Designator" + }, + { + "id": "0x55d3a3f06ca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f06cb0-DataRef" + }, + { + "id": "0x55d3a3f06cb0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f06cb0-Name" + }, + { + "id": "0x55d3a3f06cb0-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f06f40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f06f40-ExecutableConstruct" + }, + { + "id": "0x55d3a3f06f40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f06f40-Statement" + }, + { + "id": "0x55d3a3f06f40-Statement", + "statement": "0x55d3a3f06f50-ActionStmt", + "source": "i8b = i8_mone" + }, + { + "id": "0x55d3a3f06f50-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f06e20-AssignmentStmt" + }, + { + "id": "0x55d3a3f06e20-AssignmentStmt", + "Variable": "0x55d3a3f06f00-Variable", + "Expr": "0x55d3a3f06e30-Expr" + }, + { + "id": "0x55d3a3f06f00-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f05cf0-Designator" + }, + { + "id": "0x55d3a3f05cf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05d00-DataRef" + }, + { + "id": "0x55d3a3f05d00-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05d00-Name" + }, + { + "id": "0x55d3a3f05d00-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f06e30-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f06dc0-Designator" + }, + { + "id": "0x55d3a3f06dc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f06dd0-DataRef" + }, + { + "id": "0x55d3a3f06dd0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f06dd0-Name" + }, + { + "id": "0x55d3a3f06dd0-Name", + "source": "i8_mone" + }, + { + "id": "0x55d3a3f07450-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f07450-ExecutableConstruct" + }, + { + "id": "0x55d3a3f07450-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f07450-Statement" + }, + { + "id": "0x55d3a3f07450-Statement", + "statement": "0x55d3a3f07460-ActionStmt", + "source": "i8c = i8a + i8b" + }, + { + "id": "0x55d3a3f07460-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f07330-AssignmentStmt" + }, + { + "id": "0x55d3a3f07330-AssignmentStmt", + "Variable": "0x55d3a3f07410-Variable", + "Expr": "0x55d3a3f07340-Expr" + }, + { + "id": "0x55d3a3f07410-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f05380-Designator" + }, + { + "id": "0x55d3a3f05380-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05390-DataRef" + }, + { + "id": "0x55d3a3f05390-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05390-Name" + }, + { + "id": "0x55d3a3f05390-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f07340-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f07360-Add" + }, + { + "id": "0x55d3a3f07360-Add", + "left": "0x55d3a3f07250-Expr", + "right": "0x55d3a3f07170-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f07250-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f06ff0-Designator" + }, + { + "id": "0x55d3a3f06ff0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f07000-DataRef" + }, + { + "id": "0x55d3a3f07000-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f07000-Name" + }, + { + "id": "0x55d3a3f07000-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f07170-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f07110-Designator" + }, + { + "id": "0x55d3a3f07110-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f07120-DataRef" + }, + { + "id": "0x55d3a3f07120-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f07120-Name" + }, + { + "id": "0x55d3a3f07120-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f07510-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f07510-ExecutableConstruct" + }, + { + "id": "0x55d3a3f07510-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f07e10-IfConstruct" + }, + { + "id": "0x55d3a3f07e10-IfConstruct", + "Statement": "0x55d3a3f07ee0-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f07ba0-ExecutionPartConstruct", + "0x55d3a3f07b40-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f07e10-Statement" + }, + { + "id": "0x55d3a3f07ee0-Statement", + "statement": "0x55d3a3f07ef0-IfThenStmt", + "source": "if(i8c .ne. i8_max-1) then" + }, + { + "id": "0x55d3a3f07ef0-IfThenStmt", + "Expr": "0x55d3a3f07720-Expr" + }, + { + "id": "0x55d3a3f07720-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f07740-NE" + }, + { + "id": "0x55d3a3f07740-NE", + "left": "0x55d3a3f07560-Expr", + "right": "0x55d3a3f078e0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f07560-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f079c0-Designator" + }, + { + "id": "0x55d3a3f079c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f079d0-DataRef" + }, + { + "id": "0x55d3a3f079d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f079d0-Name" + }, + { + "id": "0x55d3a3f079d0-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f078e0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55d3a3f07900-Subtract" + }, + { + "id": "0x55d3a3f07900-Subtract", + "left": "0x55d3a3f07640-Expr", + "right": "0x55d3a3f07800-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55d3a3f07640-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f06f90-Designator" + }, + { + "id": "0x55d3a3f06f90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f06fa0-DataRef" + }, + { + "id": "0x55d3a3f06fa0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f06fa0-Name" + }, + { + "id": "0x55d3a3f06fa0-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f07800-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f07820-LiteralConstant" + }, + { + "id": "0x55d3a3f07820-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55d3a3f07820-IntLiteralConstant" + }, + { + "id": "0x55d3a3f07820-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55d3a3f07ec8-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f07ba0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f07ba0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f07ba0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f07ba0-Statement" + }, + { + "id": "0x55d3a3f07ba0-Statement", + "statement": "0x55d3a3f07bb0-ActionStmt", + "source": "print *, \"NG : I8_MAX + I8_MONE\"" + }, + { + "id": "0x55d3a3f07bb0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f07d10-PrintStmt" + }, + { + "id": "0x55d3a3f07d10-PrintStmt", + "Format": "0x55d3a3f07d28-Format", + "OutputItem": [ + "0x55d3a3f07c30-OutputItem" + ] + }, + { + "id": "0x55d3a3f07d28-Format", + "variantKey": "Star", + "Star": "0x55d3a3f07d28-Star" + }, + { + "id": "0x55d3a3f07d28-Star" + }, + { + "id": "0x55d3a3f07c30-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f07c30-Expr" + }, + { + "id": "0x55d3a3f07c30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f07c50-LiteralConstant" + }, + { + "id": "0x55d3a3f07c50-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f07c50-CharLiteralConstant" + }, + { + "id": "0x55d3a3f07c50-CharLiteralConstant", + "string": "NG : I8_MAX + I8_MONE" + }, + { + "id": "0x55d3a3f07b40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f07b40-ExecutableConstruct" + }, + { + "id": "0x55d3a3f07b40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f07b40-Statement" + }, + { + "id": "0x55d3a3f07b40-Statement", + "statement": "0x55d3a3f07b50-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f07b50-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3ea11d0-GotoStmt" + }, + { + "id": "0x55d3a3ea11d0-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f07e10-Statement", + "statement": "0x55d3a3f07e20-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f07e20-EndIfStmt" + }, + { + "id": "0x55d3a3f07f40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f07f40-ExecutableConstruct" + }, + { + "id": "0x55d3a3f07f40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f07f40-Statement" + }, + { + "id": "0x55d3a3f07f40-Statement", + "statement": "0x55d3a3f07f50-ActionStmt", + "source": "i8a = i8_min" + }, + { + "id": "0x55d3a3f07f50-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f07a20-AssignmentStmt" + }, + { + "id": "0x55d3a3f07a20-AssignmentStmt", + "Variable": "0x55d3a3f07b00-Variable", + "Expr": "0x55d3a3f07a30-Expr" + }, + { + "id": "0x55d3a3f07b00-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f05fe0-Designator" + }, + { + "id": "0x55d3a3f05fe0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f05ff0-DataRef" + }, + { + "id": "0x55d3a3f05ff0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f05ff0-Name" + }, + { + "id": "0x55d3a3f05ff0-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f07a30-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f06430-Designator" + }, + { + "id": "0x55d3a3f06430-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f06440-DataRef" + }, + { + "id": "0x55d3a3f06440-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f06440-Name" + }, + { + "id": "0x55d3a3f06440-Name", + "source": "i8_min" + }, + { + "id": "0x55d3a3f08190-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f08190-ExecutableConstruct" + }, + { + "id": "0x55d3a3f08190-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f08190-Statement" + }, + { + "id": "0x55d3a3f08190-Statement", + "statement": "0x55d3a3f081a0-ActionStmt", + "source": "i8b = i8_zero" + }, + { + "id": "0x55d3a3f081a0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f08070-AssignmentStmt" + }, + { + "id": "0x55d3a3f08070-AssignmentStmt", + "Variable": "0x55d3a3f08150-Variable", + "Expr": "0x55d3a3f08080-Expr" + }, + { + "id": "0x55d3a3f08150-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f07050-Designator" + }, + { + "id": "0x55d3a3f07050-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f07060-DataRef" + }, + { + "id": "0x55d3a3f07060-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f07060-Name" + }, + { + "id": "0x55d3a3f07060-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f08080-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f08010-Designator" + }, + { + "id": "0x55d3a3f08010-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f08020-DataRef" + }, + { + "id": "0x55d3a3f08020-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f08020-Name" + }, + { + "id": "0x55d3a3f08020-Name", + "source": "i8_zero" + }, + { + "id": "0x55d3a3f086a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f086a0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f086a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f086a0-Statement" + }, + { + "id": "0x55d3a3f086a0-Statement", + "statement": "0x55d3a3f086b0-ActionStmt", + "source": "i8c = i8a + i8b" + }, + { + "id": "0x55d3a3f086b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f08580-AssignmentStmt" + }, + { + "id": "0x55d3a3f08580-AssignmentStmt", + "Variable": "0x55d3a3f08660-Variable", + "Expr": "0x55d3a3f08590-Expr" + }, + { + "id": "0x55d3a3f08660-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f06d60-Designator" + }, + { + "id": "0x55d3a3f06d60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f06d70-DataRef" + }, + { + "id": "0x55d3a3f06d70-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f06d70-Name" + }, + { + "id": "0x55d3a3f06d70-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f08590-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f085b0-Add" + }, + { + "id": "0x55d3a3f085b0-Add", + "left": "0x55d3a3f084a0-Expr", + "right": "0x55d3a3f083c0-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f084a0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f08240-Designator" + }, + { + "id": "0x55d3a3f08240-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f08250-DataRef" + }, + { + "id": "0x55d3a3f08250-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f08250-Name" + }, + { + "id": "0x55d3a3f08250-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f083c0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f08360-Designator" + }, + { + "id": "0x55d3a3f08360-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f08370-DataRef" + }, + { + "id": "0x55d3a3f08370-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f08370-Name" + }, + { + "id": "0x55d3a3f08370-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f08310-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f08310-ExecutableConstruct" + }, + { + "id": "0x55d3a3f08310-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f08e40-IfConstruct" + }, + { + "id": "0x55d3a3f08e40-IfConstruct", + "Statement": "0x55d3a3f08f10-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f08bd0-ExecutionPartConstruct", + "0x55d3a3f08b70-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f08e40-Statement" + }, + { + "id": "0x55d3a3f08f10-Statement", + "statement": "0x55d3a3f08f20-IfThenStmt", + "source": "if(i8c .ne. i8_min) then" + }, + { + "id": "0x55d3a3f08f20-IfThenStmt", + "Expr": "0x55d3a3f08750-Expr" + }, + { + "id": "0x55d3a3f08750-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f08770-NE" + }, + { + "id": "0x55d3a3f08770-NE", + "left": "0x55d3a3f08910-Expr", + "right": "0x55d3a3f08830-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f08910-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f089f0-Designator" + }, + { + "id": "0x55d3a3f089f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f08a00-DataRef" + }, + { + "id": "0x55d3a3f08a00-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f08a00-Name" + }, + { + "id": "0x55d3a3f08a00-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f08830-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f081e0-Designator" + }, + { + "id": "0x55d3a3f081e0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f081f0-DataRef" + }, + { + "id": "0x55d3a3f081f0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f081f0-Name" + }, + { + "id": "0x55d3a3f081f0-Name", + "source": "i8_min" + }, + { + "id": "0x55d3a3f08ef8-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f08bd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f08bd0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f08bd0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f08bd0-Statement" + }, + { + "id": "0x55d3a3f08bd0-Statement", + "statement": "0x55d3a3f08be0-ActionStmt", + "source": "print *, \"NG : I8_MIN + I8_ZERO\"" + }, + { + "id": "0x55d3a3f08be0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f08d40-PrintStmt" + }, + { + "id": "0x55d3a3f08d40-PrintStmt", + "Format": "0x55d3a3f08d58-Format", + "OutputItem": [ + "0x55d3a3f08c60-OutputItem" + ] + }, + { + "id": "0x55d3a3f08d58-Format", + "variantKey": "Star", + "Star": "0x55d3a3f08d58-Star" + }, + { + "id": "0x55d3a3f08d58-Star" + }, + { + "id": "0x55d3a3f08c60-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f08c60-Expr" + }, + { + "id": "0x55d3a3f08c60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f08c80-LiteralConstant" + }, + { + "id": "0x55d3a3f08c80-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f08c80-CharLiteralConstant" + }, + { + "id": "0x55d3a3f08c80-CharLiteralConstant", + "string": "NG : I8_MIN + I8_ZERO" + }, + { + "id": "0x55d3a3f08b70-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f08b70-ExecutableConstruct" + }, + { + "id": "0x55d3a3f08b70-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f08b70-Statement" + }, + { + "id": "0x55d3a3f08b70-Statement", + "statement": "0x55d3a3f08b80-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f08b80-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3f05cd0-GotoStmt" + }, + { + "id": "0x55d3a3f05cd0-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f08e40-Statement", + "statement": "0x55d3a3f08e50-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f08e50-EndIfStmt" + }, + { + "id": "0x55d3a3f08fd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f08fd0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f08fd0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f08fd0-Statement" + }, + { + "id": "0x55d3a3f08fd0-Statement", + "statement": "0x55d3a3f08fe0-ActionStmt", + "source": "i8a = i8_min" + }, + { + "id": "0x55d3a3f08fe0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f08a50-AssignmentStmt" + }, + { + "id": "0x55d3a3f08a50-AssignmentStmt", + "Variable": "0x55d3a3f08b30-Variable", + "Expr": "0x55d3a3f08a60-Expr" + }, + { + "id": "0x55d3a3f08b30-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f070b0-Designator" + }, + { + "id": "0x55d3a3f070b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f070c0-DataRef" + }, + { + "id": "0x55d3a3f070c0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f070c0-Name" + }, + { + "id": "0x55d3a3f070c0-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f08a60-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f08f60-Designator" + }, + { + "id": "0x55d3a3f08f60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f08f70-DataRef" + }, + { + "id": "0x55d3a3f08f70-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f08f70-Name" + }, + { + "id": "0x55d3a3f08f70-Name", + "source": "i8_min" + }, + { + "id": "0x55d3a3f09240-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f09240-ExecutableConstruct" + }, + { + "id": "0x55d3a3f09240-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f09240-Statement" + }, + { + "id": "0x55d3a3f09240-Statement", + "statement": "0x55d3a3f09250-ActionStmt", + "source": "i8b = i8_mzero" + }, + { + "id": "0x55d3a3f09250-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f09120-AssignmentStmt" + }, + { + "id": "0x55d3a3f09120-AssignmentStmt", + "Variable": "0x55d3a3f09200-Variable", + "Expr": "0x55d3a3f09130-Expr" + }, + { + "id": "0x55d3a3f09200-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f07fb0-Designator" + }, + { + "id": "0x55d3a3f07fb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f07fc0-DataRef" + }, + { + "id": "0x55d3a3f07fc0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f07fc0-Name" + }, + { + "id": "0x55d3a3f07fc0-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f09130-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f090c0-Designator" + }, + { + "id": "0x55d3a3f090c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f090d0-DataRef" + }, + { + "id": "0x55d3a3f090d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f090d0-Name" + }, + { + "id": "0x55d3a3f090d0-Name", + "source": "i8_mzero" + }, + { + "id": "0x55d3a3f09750-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f09750-ExecutableConstruct" + }, + { + "id": "0x55d3a3f09750-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f09750-Statement" + }, + { + "id": "0x55d3a3f09750-Statement", + "statement": "0x55d3a3f09760-ActionStmt", + "source": "i8c = i8a + i8b" + }, + { + "id": "0x55d3a3f09760-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f09630-AssignmentStmt" + }, + { + "id": "0x55d3a3f09630-AssignmentStmt", + "Variable": "0x55d3a3f09710-Variable", + "Expr": "0x55d3a3f09640-Expr" + }, + { + "id": "0x55d3a3f09710-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f074a0-Designator" + }, + { + "id": "0x55d3a3f074a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f074b0-DataRef" + }, + { + "id": "0x55d3a3f074b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f074b0-Name" + }, + { + "id": "0x55d3a3f074b0-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f09640-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f09660-Add" + }, + { + "id": "0x55d3a3f09660-Add", + "left": "0x55d3a3f09550-Expr", + "right": "0x55d3a3f09470-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f09550-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f092f0-Designator" + }, + { + "id": "0x55d3a3f092f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f09300-DataRef" + }, + { + "id": "0x55d3a3f09300-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f09300-Name" + }, + { + "id": "0x55d3a3f09300-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f09470-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f09410-Designator" + }, + { + "id": "0x55d3a3f09410-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f09420-DataRef" + }, + { + "id": "0x55d3a3f09420-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f09420-Name" + }, + { + "id": "0x55d3a3f09420-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f093c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f093c0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f093c0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3ef6640-IfConstruct" + }, + { + "id": "0x55d3a3ef6640-IfConstruct", + "Statement": "0x55d3a3ef6710-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f09c80-ExecutionPartConstruct", + "0x55d3a3f09c20-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3ef6640-Statement" + }, + { + "id": "0x55d3a3ef6710-Statement", + "statement": "0x55d3a3ef6720-IfThenStmt", + "source": "if(i8c .ne. i8_min) then" + }, + { + "id": "0x55d3a3ef6720-IfThenStmt", + "Expr": "0x55d3a3f09800-Expr" + }, + { + "id": "0x55d3a3f09800-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f09820-NE" + }, + { + "id": "0x55d3a3f09820-NE", + "left": "0x55d3a3f099c0-Expr", + "right": "0x55d3a3f098e0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f099c0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f09aa0-Designator" + }, + { + "id": "0x55d3a3f09aa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f09ab0-DataRef" + }, + { + "id": "0x55d3a3f09ab0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f09ab0-Name" + }, + { + "id": "0x55d3a3f09ab0-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f098e0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f09290-Designator" + }, + { + "id": "0x55d3a3f09290-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f092a0-DataRef" + }, + { + "id": "0x55d3a3f092a0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f092a0-Name" + }, + { + "id": "0x55d3a3f092a0-Name", + "source": "i8_min" + }, + { + "id": "0x55d3a3ef66f8-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f09c80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f09c80-ExecutableConstruct" + }, + { + "id": "0x55d3a3f09c80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f09c80-Statement" + }, + { + "id": "0x55d3a3f09c80-Statement", + "statement": "0x55d3a3f09c90-ActionStmt", + "source": "print *, \"NG : I8_MIN + I8_MZERO\"" + }, + { + "id": "0x55d3a3f09c90-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f09df0-PrintStmt" + }, + { + "id": "0x55d3a3f09df0-PrintStmt", + "Format": "0x55d3a3f09e08-Format", + "OutputItem": [ + "0x55d3a3f09d10-OutputItem" + ] + }, + { + "id": "0x55d3a3f09e08-Format", + "variantKey": "Star", + "Star": "0x55d3a3f09e08-Star" + }, + { + "id": "0x55d3a3f09e08-Star" + }, + { + "id": "0x55d3a3f09d10-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f09d10-Expr" + }, + { + "id": "0x55d3a3f09d10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f09d30-LiteralConstant" + }, + { + "id": "0x55d3a3f09d30-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f09d30-CharLiteralConstant" + }, + { + "id": "0x55d3a3f09d30-CharLiteralConstant", + "string": "NG : I8_MIN + I8_MZERO" + }, + { + "id": "0x55d3a3f09c20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f09c20-ExecutableConstruct" + }, + { + "id": "0x55d3a3f09c20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f09c20-Statement" + }, + { + "id": "0x55d3a3f09c20-Statement", + "statement": "0x55d3a3f09c30-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f09c30-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3f09020-GotoStmt" + }, + { + "id": "0x55d3a3f09020-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3ef6640-Statement", + "statement": "0x55d3a3ef6650-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3ef6650-EndIfStmt" + }, + { + "id": "0x55d3a3efabc0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efabc0-ExecutableConstruct" + }, + { + "id": "0x55d3a3efabc0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efabc0-Statement" + }, + { + "id": "0x55d3a3efabc0-Statement", + "statement": "0x55d3a3efabd0-ActionStmt", + "source": "i8a = i8_min" + }, + { + "id": "0x55d3a3efabd0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f09b00-AssignmentStmt" + }, + { + "id": "0x55d3a3f09b00-AssignmentStmt", + "Variable": "0x55d3a3f09be0-Variable", + "Expr": "0x55d3a3f09b10-Expr" + }, + { + "id": "0x55d3a3f09be0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f082a0-Designator" + }, + { + "id": "0x55d3a3f082a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f082b0-DataRef" + }, + { + "id": "0x55d3a3f082b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f082b0-Name" + }, + { + "id": "0x55d3a3f082b0-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f09b10-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef6760-Designator" + }, + { + "id": "0x55d3a3ef6760-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef6770-DataRef" + }, + { + "id": "0x55d3a3ef6770-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef6770-Name" + }, + { + "id": "0x55d3a3ef6770-Name", + "source": "i8_min" + }, + { + "id": "0x55d3a3efc600-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efc600-ExecutableConstruct" + }, + { + "id": "0x55d3a3efc600-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efc600-Statement" + }, + { + "id": "0x55d3a3efc600-Statement", + "statement": "0x55d3a3efc610-ActionStmt", + "source": "i8b = i8_one" + }, + { + "id": "0x55d3a3efc610-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efc4e0-AssignmentStmt" + }, + { + "id": "0x55d3a3efc4e0-AssignmentStmt", + "Variable": "0x55d3a3efc5c0-Variable", + "Expr": "0x55d3a3efc4f0-Expr" + }, + { + "id": "0x55d3a3efc5c0-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f09060-Designator" + }, + { + "id": "0x55d3a3f09060-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f09070-DataRef" + }, + { + "id": "0x55d3a3f09070-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f09070-Name" + }, + { + "id": "0x55d3a3f09070-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3efc4f0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef6d50-Designator" + }, + { + "id": "0x55d3a3ef6d50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef6d60-DataRef" + }, + { + "id": "0x55d3a3ef6d60-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef6d60-Name" + }, + { + "id": "0x55d3a3ef6d60-Name", + "source": "i8_one" + }, + { + "id": "0x55d3a3efc030-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efc030-ExecutableConstruct" + }, + { + "id": "0x55d3a3efc030-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efc030-Statement" + }, + { + "id": "0x55d3a3efc030-Statement", + "statement": "0x55d3a3efc040-ActionStmt", + "source": "i8c = i8a + i8b" + }, + { + "id": "0x55d3a3efc040-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efe140-AssignmentStmt" + }, + { + "id": "0x55d3a3efe140-AssignmentStmt", + "Variable": "0x55d3a3efe220-Variable", + "Expr": "0x55d3a3efe150-Expr" + }, + { + "id": "0x55d3a3efe220-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f086f0-Designator" + }, + { + "id": "0x55d3a3f086f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f08700-DataRef" + }, + { + "id": "0x55d3a3f08700-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f08700-Name" + }, + { + "id": "0x55d3a3f08700-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3efe150-Expr", + "variantKey": "Add", + "Add": "0x55d3a3efe170-Add" + }, + { + "id": "0x55d3a3efe170-Add", + "left": "0x55d3a3efdff0-Expr", + "right": "0x55d3a3efdf10-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3efdff0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efad90-Designator" + }, + { + "id": "0x55d3a3efad90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efada0-DataRef" + }, + { + "id": "0x55d3a3efada0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efada0-Name" + }, + { + "id": "0x55d3a3efada0-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3efdf10-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef7120-Designator" + }, + { + "id": "0x55d3a3ef7120-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef7130-DataRef" + }, + { + "id": "0x55d3a3ef7130-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef7130-Name" + }, + { + "id": "0x55d3a3ef7130-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f00570-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f00570-ExecutableConstruct" + }, + { + "id": "0x55d3a3f00570-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f0aee0-IfConstruct" + }, + { + "id": "0x55d3a3f0aee0-IfConstruct", + "Statement": "0x55d3a3f0afb0-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3efd0c0-ExecutionPartConstruct", + "0x55d3a3efcea0-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f0aee0-Statement" + }, + { + "id": "0x55d3a3f0afb0-Statement", + "statement": "0x55d3a3f0afc0-IfThenStmt", + "source": "if(i8c .ne. -i8_max) then" + }, + { + "id": "0x55d3a3f0afc0-IfThenStmt", + "Expr": "0x55d3a3efc0e0-Expr" + }, + { + "id": "0x55d3a3efc0e0-Expr", + "variantKey": "NE", + "NE": "0x55d3a3efc100-NE" + }, + { + "id": "0x55d3a3efc100-NE", + "left": "0x55d3a3efc380-Expr", + "right": "0x55d3a3efc2a0-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3efc380-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3efc700-Designator" + }, + { + "id": "0x55d3a3efc700-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3efc710-DataRef" + }, + { + "id": "0x55d3a3efc710-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3efc710-Name" + }, + { + "id": "0x55d3a3efc710-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3efc2a0-Expr", + "variantKey": "Negate", + "Negate": "0x55d3a3efc2c0-Negate" + }, + { + "id": "0x55d3a3efc2c0-Negate", + "Expr": "0x55d3a3efc1c0-Expr", + "op": "NEGATE" + }, + { + "id": "0x55d3a3efc1c0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3ef6db0-Designator" + }, + { + "id": "0x55d3a3ef6db0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef6dc0-DataRef" + }, + { + "id": "0x55d3a3ef6dc0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef6dc0-Name" + }, + { + "id": "0x55d3a3ef6dc0-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f0af98-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3efd0c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efd0c0-ExecutableConstruct" + }, + { + "id": "0x55d3a3efd0c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efd0c0-Statement" + }, + { + "id": "0x55d3a3efd0c0-Statement", + "statement": "0x55d3a3efd0d0-ActionStmt", + "source": "print *, \"NG : I8_MIN + I8_ONE\"" + }, + { + "id": "0x55d3a3efd0d0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f0ade0-PrintStmt" + }, + { + "id": "0x55d3a3f0ade0-PrintStmt", + "Format": "0x55d3a3f0adf8-Format", + "OutputItem": [ + "0x55d3a3f0ad00-OutputItem" + ] + }, + { + "id": "0x55d3a3f0adf8-Format", + "variantKey": "Star", + "Star": "0x55d3a3f0adf8-Star" + }, + { + "id": "0x55d3a3f0adf8-Star" + }, + { + "id": "0x55d3a3f0ad00-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f0ad00-Expr" + }, + { + "id": "0x55d3a3f0ad00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f0ad20-LiteralConstant" + }, + { + "id": "0x55d3a3f0ad20-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f0ad20-CharLiteralConstant" + }, + { + "id": "0x55d3a3f0ad20-CharLiteralConstant", + "string": "NG : I8_MIN + I8_ONE" + }, + { + "id": "0x55d3a3efcea0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efcea0-ExecutableConstruct" + }, + { + "id": "0x55d3a3efcea0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efcea0-Statement" + }, + { + "id": "0x55d3a3efcea0-Statement", + "statement": "0x55d3a3efceb0-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3efceb0-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3f04300-GotoStmt" + }, + { + "id": "0x55d3a3f04300-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f0aee0-Statement", + "statement": "0x55d3a3f0aef0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f0aef0-EndIfStmt" + }, + { + "id": "0x55d3a3f0b070-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f0b070-ExecutableConstruct" + }, + { + "id": "0x55d3a3f0b070-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f0b070-Statement" + }, + { + "id": "0x55d3a3f0b070-Statement", + "statement": "0x55d3a3f0b080-ActionStmt", + "source": "i8a = i8_max" + }, + { + "id": "0x55d3a3f0b080-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3efc760-AssignmentStmt" + }, + { + "id": "0x55d3a3efc760-AssignmentStmt", + "Variable": "0x55d3a3efc840-Variable", + "Expr": "0x55d3a3efc770-Expr" + }, + { + "id": "0x55d3a3efc840-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f09350-Designator" + }, + { + "id": "0x55d3a3f09350-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f09360-DataRef" + }, + { + "id": "0x55d3a3f09360-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f09360-Name" + }, + { + "id": "0x55d3a3f09360-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3efc770-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f0b000-Designator" + }, + { + "id": "0x55d3a3f0b000-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f0b010-DataRef" + }, + { + "id": "0x55d3a3f0b010-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f0b010-Name" + }, + { + "id": "0x55d3a3f0b010-Name", + "source": "i8_max" + }, + { + "id": "0x55d3a3f0b2a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f0b2a0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f0b2a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f0b2a0-Statement" + }, + { + "id": "0x55d3a3f0b2a0-Statement", + "statement": "0x55d3a3f0b2b0-ActionStmt", + "source": "i8b = i8_min" + }, + { + "id": "0x55d3a3f0b2b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f0b180-AssignmentStmt" + }, + { + "id": "0x55d3a3f0b180-AssignmentStmt", + "Variable": "0x55d3a3f0b260-Variable", + "Expr": "0x55d3a3f0b190-Expr" + }, + { + "id": "0x55d3a3f0b260-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3ef46c0-Designator" + }, + { + "id": "0x55d3a3ef46c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3ef46d0-DataRef" + }, + { + "id": "0x55d3a3ef46d0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3ef46d0-Name" + }, + { + "id": "0x55d3a3ef46d0-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f0b190-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f0b120-Designator" + }, + { + "id": "0x55d3a3f0b120-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f0b130-DataRef" + }, + { + "id": "0x55d3a3f0b130-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f0b130-Name" + }, + { + "id": "0x55d3a3f0b130-Name", + "source": "i8_min" + }, + { + "id": "0x55d3a3f0b7b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f0b7b0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f0b7b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f0b7b0-Statement" + }, + { + "id": "0x55d3a3f0b7b0-Statement", + "statement": "0x55d3a3f0b7c0-ActionStmt", + "source": "i8c = i8a + i8b" + }, + { + "id": "0x55d3a3f0b7c0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55d3a3f0b690-AssignmentStmt" + }, + { + "id": "0x55d3a3f0b690-AssignmentStmt", + "Variable": "0x55d3a3f0b770-Variable", + "Expr": "0x55d3a3f0b6a0-Expr" + }, + { + "id": "0x55d3a3f0b770-Variable", + "variantKey": "Designator", + "Designator": "0x55d3a3f097a0-Designator" + }, + { + "id": "0x55d3a3f097a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f097b0-DataRef" + }, + { + "id": "0x55d3a3f097b0-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f097b0-Name" + }, + { + "id": "0x55d3a3f097b0-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f0b6a0-Expr", + "variantKey": "Add", + "Add": "0x55d3a3f0b6c0-Add" + }, + { + "id": "0x55d3a3f0b6c0-Add", + "left": "0x55d3a3f0b5b0-Expr", + "right": "0x55d3a3f0b4d0-Expr", + "op": "ADD" + }, + { + "id": "0x55d3a3f0b5b0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f0b350-Designator" + }, + { + "id": "0x55d3a3f0b350-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f0b360-DataRef" + }, + { + "id": "0x55d3a3f0b360-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f0b360-Name" + }, + { + "id": "0x55d3a3f0b360-Name", + "source": "i8a" + }, + { + "id": "0x55d3a3f0b4d0-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f0b470-Designator" + }, + { + "id": "0x55d3a3f0b470-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f0b480-DataRef" + }, + { + "id": "0x55d3a3f0b480-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f0b480-Name" + }, + { + "id": "0x55d3a3f0b480-Name", + "source": "i8b" + }, + { + "id": "0x55d3a3f0b420-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f0b420-ExecutableConstruct" + }, + { + "id": "0x55d3a3f0b420-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55d3a3f0bf90-IfConstruct" + }, + { + "id": "0x55d3a3f0bf90-IfConstruct", + "Statement": "0x55d3a3f0c060-Statement", + "ExecutionPartConstruct": [ + "0x55d3a3f0bce0-ExecutionPartConstruct", + "0x55d3a3f0bc80-ExecutionPartConstruct" + ], + "Statement": "0x55d3a3f0bf90-Statement" + }, + { + "id": "0x55d3a3f0c060-Statement", + "statement": "0x55d3a3f0c070-IfThenStmt", + "source": "if(i8c .ne. i8_mone) then" + }, + { + "id": "0x55d3a3f0c070-IfThenStmt", + "Expr": "0x55d3a3f0b860-Expr" + }, + { + "id": "0x55d3a3f0b860-Expr", + "variantKey": "NE", + "NE": "0x55d3a3f0b880-NE" + }, + { + "id": "0x55d3a3f0b880-NE", + "left": "0x55d3a3f0ba20-Expr", + "right": "0x55d3a3f0b940-Expr", + "op": "NE" + }, + { + "id": "0x55d3a3f0ba20-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f0bb00-Designator" + }, + { + "id": "0x55d3a3f0bb00-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f0bb10-DataRef" + }, + { + "id": "0x55d3a3f0bb10-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f0bb10-Name" + }, + { + "id": "0x55d3a3f0bb10-Name", + "source": "i8c" + }, + { + "id": "0x55d3a3f0b940-Expr", + "variantKey": "Designator", + "Designator": "0x55d3a3f0b2f0-Designator" + }, + { + "id": "0x55d3a3f0b2f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55d3a3f0b300-DataRef" + }, + { + "id": "0x55d3a3f0b300-DataRef", + "variantKey": "Name", + "Name": "0x55d3a3f0b300-Name" + }, + { + "id": "0x55d3a3f0b300-Name", + "source": "i8_mone" + }, + { + "id": "0x55d3a3f0c048-ExecutionPartConstruct" + }, + { + "id": "0x55d3a3f0bce0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f0bce0-ExecutableConstruct" + }, + { + "id": "0x55d3a3f0bce0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f0bce0-Statement" + }, + { + "id": "0x55d3a3f0bce0-Statement", + "statement": "0x55d3a3f0bcf0-ActionStmt", + "source": "print *, \"NG : I8_MAX + I8_MIN\"" + }, + { + "id": "0x55d3a3f0bcf0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f0be90-PrintStmt" + }, + { + "id": "0x55d3a3f0be90-PrintStmt", + "Format": "0x55d3a3f0bea8-Format", + "OutputItem": [ + "0x55d3a3f0bdb0-OutputItem" + ] + }, + { + "id": "0x55d3a3f0bea8-Format", + "variantKey": "Star", + "Star": "0x55d3a3f0bea8-Star" + }, + { + "id": "0x55d3a3f0bea8-Star" + }, + { + "id": "0x55d3a3f0bdb0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f0bdb0-Expr" + }, + { + "id": "0x55d3a3f0bdb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f0bdd0-LiteralConstant" + }, + { + "id": "0x55d3a3f0bdd0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f0bdd0-CharLiteralConstant" + }, + { + "id": "0x55d3a3f0bdd0-CharLiteralConstant", + "string": "NG : I8_MAX + I8_MIN" + }, + { + "id": "0x55d3a3f0bc80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f0bc80-ExecutableConstruct" + }, + { + "id": "0x55d3a3f0bc80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f0bc80-Statement" + }, + { + "id": "0x55d3a3f0bc80-Statement", + "statement": "0x55d3a3f0bc90-ActionStmt", + "source": "goto 10" + }, + { + "id": "0x55d3a3f0bc90-ActionStmt", + "variantKey": "GotoStmt", + "GotoStmt": "0x55d3a3efc460-GotoStmt" + }, + { + "id": "0x55d3a3efc460-GotoStmt", + "uint64_t": "10" + }, + { + "id": "0x55d3a3f0bf90-Statement", + "statement": "0x55d3a3f0bfa0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55d3a3f0bfa0-EndIfStmt" + }, + { + "id": "0x55d3a3efc090-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efc090-ExecutableConstruct" + }, + { + "id": "0x55d3a3efc090-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efc090-Statement" + }, + { + "id": "0x55d3a3efc090-Statement", + "statement": "0x55d3a3efc0a0-ActionStmt", + "source": "print *, \"OK\"" + }, + { + "id": "0x55d3a3efc0a0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f0c1a0-PrintStmt" + }, + { + "id": "0x55d3a3f0c1a0-PrintStmt", + "Format": "0x55d3a3f0c1b8-Format", + "OutputItem": [ + "0x55d3a3f0c0c0-OutputItem" + ] + }, + { + "id": "0x55d3a3f0c1b8-Format", + "variantKey": "Star", + "Star": "0x55d3a3f0c1b8-Star" + }, + { + "id": "0x55d3a3f0c1b8-Star" + }, + { + "id": "0x55d3a3f0c0c0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f0c0c0-Expr" + }, + { + "id": "0x55d3a3f0c0c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f0c0e0-LiteralConstant" + }, + { + "id": "0x55d3a3f0c0e0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f0c0e0-CharLiteralConstant" + }, + { + "id": "0x55d3a3f0c0e0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55d3a3efae00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3efae00-ExecutableConstruct" + }, + { + "id": "0x55d3a3efae00-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3efae00-Statement" + }, + { + "id": "0x55d3a3efae00-Statement", + "statement": "0x55d3a3efae10-ActionStmt", + "source": "stop" + }, + { + "id": "0x55d3a3efae10-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x55d3a3f0c2a0-StopStmt" + }, + { + "id": "0x55d3a3f0c2a0-StopStmt", + "Kind = Stop": "0x55d3a3f0c388-Kind = Stop" + }, + { + "id": "0x55d3a3f0c388-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x55d3a3f0c660-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55d3a3f0c660-ExecutableConstruct" + }, + { + "id": "0x55d3a3f0c660-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55d3a3f0c660-Statement" + }, + { + "id": "0x55d3a3f0c660-Statement", + "statement": "0x55d3a3f0c670-ActionStmt", + "label": "10", + "source": "10 print *, \"NG\"" + }, + { + "id": "0x55d3a3f0c670-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55d3a3f0c4f0-PrintStmt" + }, + { + "id": "0x55d3a3f0c4f0-PrintStmt", + "Format": "0x55d3a3f0c508-Format", + "OutputItem": [ + "0x55d3a3f0c410-OutputItem" + ] + }, + { + "id": "0x55d3a3f0c508-Format", + "variantKey": "Star", + "Star": "0x55d3a3f0c508-Star" + }, + { + "id": "0x55d3a3f0c508-Star" + }, + { + "id": "0x55d3a3f0c410-OutputItem", + "variantKey": "Expr", + "Expr": "0x55d3a3f0c410-Expr" + }, + { + "id": "0x55d3a3f0c410-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55d3a3f0c430-LiteralConstant" + }, + { + "id": "0x55d3a3f0c430-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55d3a3f0c430-CharLiteralConstant" + }, + { + "id": "0x55d3a3f0c430-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x55d3a3ef3960-Statement", + "statement": "0x55d3a3ef3970-EndProgramStmt", + "source": "end program main" + }, + { + "id": "0x55d3a3ef3970-EndProgramStmt", + "Name": "0x55d3a3ef3970-Name" + }, + { + "id": "0x55d3a3ef3970-Name", + "source": "main" + } + ], + "enums": { + "Fortran::common::CUDADataAttr": [ + "Constant", + "Device", + "Managed", + "Pinned", + "Shared", + "Texture", + "Unified" + ], + "Fortran::common::CUDASubprogramAttrs": [ + "Host", + "Device", + "HostDevice", + "Global", + "Grid_Global" + ], + "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::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::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::OmpMapType::Value": [ + "Alloc", + "Delete", + "From", + "Release", + "To", + "Tofrom" + ], + "Fortran::parser::OmpMapTypeModifier::Value": [ + "Always", + "Close", + "Present", + "Ompx_Hold" + ], + "Fortran::parser::OmpAtClause::ActionTime": [ + "Compilation", + "Execution" + ], + "Fortran::parser::OmpSeverityClause::Severity": [ + "Fatal", + "Warning" + ], + "Fortran::parser::OmpCancelType::Type": [ + "Parallel", + "Sections", + "Do", + "Taskgroup" + ], + "Fortran::parser::OmpDefaultClause::DataSharingAttribute": [ + "Private", + "Firstprivate", + "Shared", + "None" + ], + "Fortran::parser::OmpVariableCategory::Value": [ + "Aggregate", + "All", + "Allocatable", + "Pointer", + "Scalar" + ], + "Fortran::parser::OmpDefaultmapClause::ImplicitBehavior": [ + "Alloc", + "To", + "From", + "Tofrom", + "Firstprivate", + "None", + "Default" + ], + "Fortran::parser::OmpDependenceType::Value": [ + "Sink", + "Source" + ], + "Fortran::parser::OmpTaskDependenceType::Value": [ + "In", + "Out", + "Inout", + "Inoutset", + "Mutexinoutset", + "Depobj" + ], + "Fortran::parser::OmpExpectation::Value": [ + "Present" + ], + "Fortran::parser::OmpLastprivateModifier::Value": [ + "Conditional" + ], + "Fortran::parser::OmpLinearModifier::Value": [ + "Ref", + "Uval", + "Val" + ], + "Fortran::parser::OmpOrderClause::Ordering": [ + "Concurrent" + ], + "Fortran::parser::OmpOrderModifier::Value": [ + "Reproducible", + "Unconstrained" + ], + "Fortran::parser::OmpPrescriptiveness::Value": [ + "Strict" + ], + "Fortran::parser::OmpBindClause::Binding": [ + "Parallel", + "Teams", + "Thread" + ], + "Fortran::parser::OmpProcBindClause::AffinityPolicy": [ + "Close", + "Master", + "Spread", + "Primary" + ], + "Fortran::parser::OmpReductionModifier::Value": [ + "Default", + "Inscan", + "Task" + ], + "Fortran::parser::OmpScheduleClause::Kind": [ + "Static", + "Dynamic", + "Guided", + "Auto", + "Runtime" + ], + "Fortran::parser::OmpDeviceModifier::Value": [ + "Ancestor", + "Device_Num" + ], + "Fortran::parser::OmpDeviceTypeClause::DeviceTypeDescription": [ + "Any", + "Host", + "Nohost" + ], + "Fortran::parser::OmpChunkModifier::Value": [ + "Simd" + ], + "Fortran::parser::OmpOrderingModifier::Value": [ + "Monotonic", + "Nonmonotonic", + "Simd" + ], + "Fortran::common::OmpAtomicDefaultMemOrderType": [ + "SeqCst", + "AcqRel", + "Relaxed" + ], + "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 26a3f562..830bfd1f 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -478,4 +478,16 @@ void testFujitsu0000_0019Native() { testJson("fujitsu/0000/0000_0019.json"); } } + + @Test + void testFujitsu0000_0023() { + testJson("fujitsu/0000/0000_0023.json"); + } + + @Test + void testFujitsu0000_0023Native() { + if (SpecsPlatforms.isLinux()) { + testJson("fujitsu/0000/0000_0023.json"); + } + } } From 35438f6d52955c48bec39ffb984767e3b4dc554c Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 11:01:06 +0100 Subject: [PATCH 030/132] Add a missing map entry --- .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 1 + 1 file changed, 1 insertion(+) 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 94e6d4e1..e42abb9f 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -148,6 +148,7 @@ public class FlangToClass { 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_CLASS.put(FlangName.NAMED_CONSTANT_DEF, NamedConstantDef.class); /// SHAPES NAME_TO_CLASS.put(FlangName.EXPLICIT_SHAPE_SPEC, ExplicitShapeSpecification.class); From a747553d55e7b24a83d5bde7526955c59636353a Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 11:58:08 +0100 Subject: [PATCH 031/132] Add support for impled array shapes --- .../type/shapes/AssumedImpliedShapeSpec.java | 17 +++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../fe/specs/fortran/parser/FlangToClass.java | 2 ++ .../parser/processors/AttributesProcessor.java | 13 ++++++++++++- .../specs/fortran/parser/processors/Nodes.java | 2 ++ .../parser/processors/ShapesProcessor.java | 9 +++++---- 6 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AssumedImpliedShapeSpec.java 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 new file mode 100644 index 00000000..67a7a430 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/shapes/AssumedImpliedShapeSpec.java @@ -0,0 +1,17 @@ +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/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 7ec3dd4a..77630121 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -171,6 +171,8 @@ public enum FlangName implements StringProvider { ASYNCHRONOUS, INTENT_SPEC, PARAMETER, + ASSUMED_SIZE_SPEC, + ASSUMED_IMPLIED_SPEC, // OTHER 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 e42abb9f..5ce6aea5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -40,6 +40,7 @@ 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.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.utils.*; @@ -154,6 +155,7 @@ public class FlangToClass { 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_CLASS.put(FlangName.ASSUMED_IMPLIED_SPEC, AssumedImpliedShapeSpec.class); /// UTILs NAME_TO_CLASS.put(FlangName.NAME_VALUE, 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 3d55c2a3..95fc5521 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,5 +1,6 @@ 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.NamedConstantDef; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.IntentSpec; @@ -10,6 +11,7 @@ import pt.up.fe.specs.fortran.parser.FortranJsonResult; import java.util.EnumSet; +import java.util.List; import java.util.Set; public class AttributesProcessor extends ANodeProcessor { @@ -24,7 +26,16 @@ public AttributesProcessor(FortranJsonResult data) { public void arraySpecification(ArraySpecification arraySpecification) { var variantKey = attributes(arraySpecification).getVariantKey(); - var shapes = getChildren(arraySpecification, variantKey); + List shapes; + + if (variantKey.equals(FlangName.ASSUMED_SIZE_SPEC.getString())) { + String childSpec = attributes(arraySpecification).getVariantString(); + shapes = getChildren(childSpec, FlangName.EXPLICIT_SHAPE_SPEC); + shapes.add(getChild(attributes().get(childSpec).getString(FlangName.ASSUMED_IMPLIED_SPEC))); + } + else { + shapes = getChildren(arraySpecification, variantKey); + } arraySpecification.addChildren(shapes); } 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 4858ec8b..85239c79 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 @@ -44,6 +44,7 @@ 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.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.utils.*; @@ -147,6 +148,7 @@ public Nodes(FortranJsonResult 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); var u = new UtilsProcessors(data); processors.put(Star.class, u::star); 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 3b310aad..d4b042b9 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.type.shapes.AllocateShapeSpecification; -import pt.up.fe.specs.fortran.ast.nodes.type.shapes.BoundedShapeSpecification; -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.shapes.*; import pt.up.fe.specs.fortran.parser.FlangName; import pt.up.fe.specs.fortran.parser.FortranJsonResult; @@ -33,4 +30,8 @@ public void deferredShapeSpecLis(DeferredShapeSpecList deferredShapeSpecList) { var numberOfColons = attributes(deferredShapeSpecList).getString("int"); deferredShapeSpecList.set(DeferredShapeSpecList.RANK, Integer.parseInt(numberOfColons)); } + + public void assumedImpliedShapeSpec(AssumedImpliedShapeSpec assumedImpliedShapeSpec) { + + } } From 737d2bef5283de14568b1caecc0def137aae9a10 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 12:06:22 +0100 Subject: [PATCH 032/132] Add goto statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/stmt/GotoStmt.java | 23 +++++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../fortran/parser/processors/Nodes.java | 1 + .../parser/processors/StmtProcessors.java | 4 ++++ 6 files changed, 31 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.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 15d98c92..3b559ab9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -10,6 +10,7 @@ public enum FortranKeyword { SUBROUTINE, WRITE, USE, + GOTO, // Conditional statements IF, 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 new file mode 100644 index 00000000..735bde99 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java @@ -0,0 +1,23 @@ +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; + +public class GotoStmt extends ActionStmt { + + public static final DataKey LABEL = KeyFactory.integer("label"); + + public GotoStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return FortranKeyword.GOTO.getKeyword(false) + " " + get(LABEL).toString(); + } +} 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 77630121..79ef077a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -57,6 +57,7 @@ public enum FlangName implements StringProvider { USE_STMT, CONTINUE_STMT, PARAMETER_STMT, + GOTO_STMT, /// 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 5ce6aea5..80154f38 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -97,6 +97,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.USE_STMT, UseStmt.class); NAME_TO_CLASS.put(FlangName.CONTINUE_STMT, ContinueStmt.class); NAME_TO_CLASS.put(FlangName.PARAMETER_STMT, ParameterStmt.class); + NAME_TO_CLASS.put(FlangName.GOTO_STMT, GotoStmt.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 85239c79..680a99f6 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 @@ -113,6 +113,7 @@ public Nodes(FortranJsonResult data) { processors.put(DeallocateStmt.class, s::deallocateStmt); processors.put(ContinueStmt.class, s::continueStmt); processors.put(ParameterStmt.class, s::parameterStmt); + processors.put(GotoStmt.class, s::gotoStmt); 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 0be98061..d3dd2ed2 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 @@ -378,4 +378,8 @@ public void continueStmt(ContinueStmt continueStmt) { public void parameterStmt(ParameterStmt parameterStmt) { parameterStmt.addChildren(getChildren(parameterStmt, FlangName.NAMED_CONSTANT_DEF)); } + + public void gotoStmt(GotoStmt gotoStmt) { + gotoStmt.set(GotoStmt.LABEL, Integer.parseInt(attributes(gotoStmt).getString("uint64_t"))); + } } From d620484d93801a7250df0d9a7dc57d5bfebd85ef Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 12:18:07 +0100 Subject: [PATCH 033/132] Add CommonStmt node --- .../fortran/ast/nodes/stmt/CommonStmt.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java 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 new file mode 100644 index 00000000..ad800039 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java @@ -0,0 +1,47 @@ +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.expr.DataRef; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class CommonStmt extends SpecificationStmt { + + public static DataKey HAS_NAME = KeyFactory.bool("has_name"); + + public CommonStmt(DataStore data, Collection children) { + super(data, children); + } + + public Optional getName() { + return get(HAS_NAME) ? Optional.ofNullable(getChild(DataRef.class, 0)) : Optional.empty(); + } + + public List getNames() { + return getChildren(DataRef.class, get(HAS_NAME) ? 1 : 0); + } + + @Override + public String getCode() { + StringBuilder code = new StringBuilder(); + + code.append(FortranKeyword.COMMON.getKeyword(false)); + + getName().ifPresent(name -> code.append("/ ").append(name.getCode()).append(" /")); + + code.append(getNames() + .stream() + .map(DataRef::getCode) + .collect(Collectors.joining(", ")) + ); + + return code.toString(); + } +} From 3109ecc42a82a2e5fdd6ee488f9e1a77fd81ddcc Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 12:25:49 +0100 Subject: [PATCH 034/132] Add CommonStmt processing --- .../pt/up/fe/specs/fortran/ast/FortranKeyword.java | 1 + .../pt/up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../up/fe/specs/fortran/parser/FlangToClass.java | 1 + .../fe/specs/fortran/parser/processors/Nodes.java | 1 + .../fortran/parser/processors/StmtProcessors.java | 14 ++++++++++++++ 5 files changed, 19 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 3b559ab9..9292fef2 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -11,6 +11,7 @@ public enum FortranKeyword { WRITE, USE, GOTO, + COMMON, // Conditional statements IF, 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 79ef077a..00c96fd3 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,7 @@ public enum FlangName implements StringProvider { CONTINUE_STMT, PARAMETER_STMT, GOTO_STMT, + COMMON_STMT, /// Conditional Statements IF_CONSTRUCT, @@ -83,6 +84,7 @@ public enum FlangName implements StringProvider { VARIABLE, DESIGNATOR, DATA_REF, + COMMON_BLOCK_OBJECT, /// 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 80154f38..61ce4993 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -98,6 +98,7 @@ 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.GOTO_STMT, GotoStmt.class); + NAME_TO_CLASS.put(FlangName.COMMON_STMT, CommonStmt.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 680a99f6..d8f8a945 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 @@ -114,6 +114,7 @@ public Nodes(FortranJsonResult data) { processors.put(ContinueStmt.class, s::continueStmt); processors.put(ParameterStmt.class, s::parameterStmt); processors.put(GotoStmt.class, s::gotoStmt); + processors.put(CommonStmt.class, s::commonStmt); 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 d3dd2ed2..211c4972 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 @@ -382,4 +382,18 @@ public void parameterStmt(ParameterStmt parameterStmt) { public void gotoStmt(GotoStmt gotoStmt) { gotoStmt.set(GotoStmt.LABEL, Integer.parseInt(attributes(gotoStmt).getString("uint64_t"))); } + + public void commonStmt(CommonStmt commonStmt) { + String block = attributes(commonStmt).getStringList(FlangName.BLOCK).getFirst(); + + if (attributes().get(block).has(FlangName.NAME)) { + commonStmt.addChild(getChild(attributes().get(block).getString(FlangName.NAME))); + commonStmt.set(CommonStmt.HAS_NAME, true); + } + else { + commonStmt.set(CommonStmt.HAS_NAME, false); + } + + commonStmt.addChildren(getChildren(block, FlangName.COMMON_BLOCK_OBJECT)); + } } From 426ff35dba82a1d33cbbb983c93526037bb99995 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 12:31:59 +0100 Subject: [PATCH 035/132] Add support for external statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/stmt/ExternalStmt.java | 35 +++++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../fortran/parser/processors/Nodes.java | 1 + .../parser/processors/StmtProcessors.java | 5 +++ 6 files changed, 44 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.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 9292fef2..d1b379c9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -12,6 +12,7 @@ public enum FortranKeyword { USE, GOTO, COMMON, + EXTERNAL, // Conditional statements IF, 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 new file mode 100644 index 00000000..5f737d05 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.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.expr.DataRef; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class ExternalStmt extends SpecificationStmt { + public ExternalStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getNames() { + return getChildrenOf(DataRef.class); + } + + @Override + public String getCode() { + StringBuilder code = new StringBuilder(); + + code.append(FortranKeyword.EXTERNAL.getKeyword(false)); + + code.append(getNames() + .stream() + .map(DataRef::getCode) + .collect(Collectors.joining(", ")) + ); + + return code.toString(); + } +} 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 00c96fd3..95fe0787 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -59,6 +59,7 @@ public enum FlangName implements StringProvider { PARAMETER_STMT, GOTO_STMT, COMMON_STMT, + EXTERNAL_STMT, /// 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 61ce4993..f5df4395 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -99,6 +99,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.PARAMETER_STMT, ParameterStmt.class); NAME_TO_CLASS.put(FlangName.GOTO_STMT, GotoStmt.class); NAME_TO_CLASS.put(FlangName.COMMON_STMT, CommonStmt.class); + NAME_TO_CLASS.put(FlangName.EXTERNAL_STMT, ExternalStmt.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 d8f8a945..cf24af17 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(ParameterStmt.class, s::parameterStmt); processors.put(GotoStmt.class, s::gotoStmt); processors.put(CommonStmt.class, s::commonStmt); + processors.put(ExternalStmt.class, s::externalStmt); 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 211c4972..7bf179d4 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 @@ -396,4 +396,9 @@ public void commonStmt(CommonStmt commonStmt) { commonStmt.addChildren(getChildren(block, FlangName.COMMON_BLOCK_OBJECT)); } + + + public void externalStmt(ExternalStmt externalStmt) { + externalStmt.addChildren(getChildren(externalStmt, FlangName.NAME)); + } } From 24724beaf98ee11c016550fffc0ef321faae0f1f Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 12:49:48 +0100 Subject: [PATCH 036/132] Add support for return statement and fix a bug in array spec processing --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/stmt/ReturnStmt.java | 30 +++++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../processors/AttributesProcessor.java | 4 +++ .../fortran/parser/processors/Nodes.java | 1 + .../parser/processors/StmtProcessors.java | 6 ++++ 7 files changed, 45 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 d1b379c9..7de0c9b4 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, COMMON, EXTERNAL, + 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..056cde90 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java @@ -0,0 +1,30 @@ +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.Expr; + +import java.util.Collection; +import java.util.Optional; + +public class ReturnStmt extends ActionStmt{ + public ReturnStmt(DataStore data, Collection children) { + super(data, children); + } + + public Optional getExpr() { + return getChildTry(Expr.class); + } + + @Override + public String getCode() { + StringBuilder code = new StringBuilder(); + + code.append(FortranKeyword.RETURN.getKeyword(false)); + + getExpr().ifPresent(expr -> code.append(" ").append(expr.getCode())); + + return code.toString(); + } +} 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 95fe0787..acb4b3ea 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,7 @@ public enum FlangName implements StringProvider { GOTO_STMT, COMMON_STMT, EXTERNAL_STMT, + RETURN_STMT, /// Conditional Statements IF_CONSTRUCT, @@ -171,6 +172,7 @@ public enum FlangName implements StringProvider { ARRAY_SPEC, EXPLICIT_SHAPE_SPEC, ALLOCATE_SHAPE_SPEC, + IMPLIED_SHAPE_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 f5df4395..33e89e99 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -100,6 +100,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.GOTO_STMT, GotoStmt.class); NAME_TO_CLASS.put(FlangName.COMMON_STMT, CommonStmt.class); NAME_TO_CLASS.put(FlangName.EXTERNAL_STMT, ExternalStmt.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/AttributesProcessor.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/AttributesProcessor.java index 95fc5521..88086fa6 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 @@ -33,6 +33,10 @@ public void arraySpecification(ArraySpecification arraySpecification) { shapes = getChildren(childSpec, FlangName.EXPLICIT_SHAPE_SPEC); shapes.add(getChild(attributes().get(childSpec).getString(FlangName.ASSUMED_IMPLIED_SPEC))); } + else if (variantKey.equals(FlangName.IMPLIED_SHAPE_SPEC.getString())) { + String childSpec = attributes(arraySpecification).getVariantString(); + shapes = getChildren(childSpec, FlangName.ASSUMED_IMPLIED_SPEC); + } else { shapes = getChildren(arraySpecification, variantKey); } 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 cf24af17..da60c9d2 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 @@ -116,6 +116,7 @@ public Nodes(FortranJsonResult data) { processors.put(GotoStmt.class, s::gotoStmt); processors.put(CommonStmt.class, s::commonStmt); processors.put(ExternalStmt.class, s::externalStmt); + 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/StmtProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java index 7bf179d4..17544f5d 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 @@ -401,4 +401,10 @@ public void commonStmt(CommonStmt commonStmt) { public void externalStmt(ExternalStmt externalStmt) { externalStmt.addChildren(getChildren(externalStmt, FlangName.NAME)); } + + public void returnStmt(ReturnStmt returnStmt) { + if (attributes(returnStmt).has(FlangName.EXPR)) { + returnStmt.addChild(getChild(returnStmt, FlangName.EXPR)); + } + } } From 80ddc3767a592683db92c4f2a37bef2d77d6d87b Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 13:42:25 +0100 Subject: [PATCH 037/132] Add partial support for data statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/decl/DataStmtSet.java | 46 +++++++++++++++++++ .../fortran/ast/nodes/stmt/DataStmt.java | 35 ++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 3 ++ .../fe/specs/fortran/parser/FlangToClass.java | 7 ++- .../processors/AttributesProcessor.java | 6 ++- .../parser/processors/DeclProcessors.java | 10 ++-- .../fortran/parser/processors/Nodes.java | 7 ++- .../parser/processors/StmtProcessors.java | 4 ++ 9 files changed, 106 insertions(+), 13 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DataStmtSet.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.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 7de0c9b4..423ef84c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -14,6 +14,7 @@ public enum FortranKeyword { COMMON, EXTERNAL, RETURN, + DATA, // Conditional statements IF, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DataStmtSet.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DataStmtSet.java new file mode 100644 index 00000000..5ace07f7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/DataStmtSet.java @@ -0,0 +1,46 @@ +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.DataRef; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class DataStmtSet extends FortranNode { + public DataStmtSet(DataStore data, Collection children) { + super(data, children); + } + + public List getNames() { + return getChildrenOf(DataRef.class); + } + + public List getValues() { + return getChildrenOf(DataStmtValue.class); + } + + @Override + public String getCode() { + StringBuilder code = new StringBuilder(); + + code.append(getNames() + .stream() + .map(DataRef::getCode) + .collect(Collectors.joining(", ")) + ); + + code.append("/ "); + + code.append(getValues() + .stream() + .map(DataStmtValue::getCode) + .collect(Collectors.joining(", ")) + ); + + code.append(" /"); + + return code.toString(); + } +} 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 new file mode 100644 index 00000000..9fb83030 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.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.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 getCode() { + 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/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index acb4b3ea..98f5d326 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -29,6 +29,8 @@ public enum FlangName implements StringProvider { DATA_STMT_VALUE, DATA_STMT_REPEAT, DATA_STMT_CONSTANT, + DATA_STMT_SET, + DATA_STMT_OBJECT, /// STMTs STATEMENT, @@ -61,6 +63,7 @@ public enum FlangName implements StringProvider { COMMON_STMT, EXTERNAL_STMT, RETURN_STMT, + DATA_STMT, /// 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 33e89e99..33c455fb 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -1,10 +1,7 @@ package pt.up.fe.specs.fortran.parser; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -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.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; @@ -66,6 +63,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.ENTITY_DECL, EntityDecl.class); NAME_TO_CLASS.put(FlangName.DUMMY_ARG, DummyArgumentDecl.class); NAME_TO_CLASS.put(FlangName.DATA_STMT_VALUE, DataStmtValue.class); + NAME_TO_CLASS.put(FlangName.DATA_STMT_SET, DataStmtSet.class); /// STMTs NAME_TO_CLASS.put(FlangName.PRINT_STMT, PrintStmt.class); @@ -101,6 +99,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.COMMON_STMT, CommonStmt.class); NAME_TO_CLASS.put(FlangName.EXTERNAL_STMT, ExternalStmt.class); NAME_TO_CLASS.put(FlangName.RETURN_STMT, ReturnStmt.class); + NAME_TO_CLASS.put(FlangName.DATA_STMT, DataStmt.class); /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.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 88086fa6..2a8650aa 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 @@ -12,6 +12,7 @@ import java.util.EnumSet; import java.util.List; +import java.util.Optional; import java.util.Set; public class AttributesProcessor extends ANodeProcessor { @@ -27,11 +28,12 @@ public AttributesProcessor(FortranJsonResult data) { public void arraySpecification(ArraySpecification arraySpecification) { var variantKey = attributes(arraySpecification).getVariantKey(); List shapes; + Optional additionalShape = Optional.empty(); if (variantKey.equals(FlangName.ASSUMED_SIZE_SPEC.getString())) { String childSpec = attributes(arraySpecification).getVariantString(); shapes = getChildren(childSpec, FlangName.EXPLICIT_SHAPE_SPEC); - shapes.add(getChild(attributes().get(childSpec).getString(FlangName.ASSUMED_IMPLIED_SPEC))); + additionalShape = Optional.of(getChild(attributes().get(childSpec).getString(FlangName.ASSUMED_IMPLIED_SPEC))); } else if (variantKey.equals(FlangName.IMPLIED_SHAPE_SPEC.getString())) { String childSpec = attributes(arraySpecification).getVariantString(); @@ -40,7 +42,9 @@ else if (variantKey.equals(FlangName.IMPLIED_SHAPE_SPEC.getString())) { else { shapes = getChildren(arraySpecification, variantKey); } + arraySpecification.addChildren(shapes); + additionalShape.ifPresent(arraySpecification::addChild); } public void keywordSpecifier(KeywordAttributeSpecifier keywordSpecifier) { 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..73c8f0dd 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; @@ -74,4 +71,9 @@ public void dummyArgumentDecl(DummyArgumentDecl dummyArgumentDecl) { dummyArgumentDecl.set(DummyArgumentDecl.NAME, name); } + + public void dataStmtSet(DataStmtSet dataStmtSet) { + dataStmtSet.addChildren(getChildren(dataStmtSet, FlangName.DATA_STMT_OBJECT)); + dataStmtSet.addChildren(getChildren(dataStmtSet, FlangName.DATA_STMT_VALUE)); + } } 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 da60c9d2..44fb8233 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 @@ -1,12 +1,9 @@ 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.DataStmtValue; +import pt.up.fe.specs.fortran.ast.nodes.decl.*; 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.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.expr.*; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentLoopControl; import pt.up.fe.specs.fortran.ast.nodes.loops.ConcurrentRange; @@ -78,6 +75,7 @@ public Nodes(FortranJsonResult data) { processors.put(EntityDecl.class, d::entityDecl); processors.put(DataStmtValue.class, d::dataStmtValue); processors.put(DummyArgumentDecl.class, d::dummyArgumentDecl); + processors.put(DataStmtSet.class, d::dataStmtSet); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRefProcessor); @@ -117,6 +115,7 @@ public Nodes(FortranJsonResult data) { processors.put(CommonStmt.class, s::commonStmt); processors.put(ExternalStmt.class, s::externalStmt); processors.put(ReturnStmt.class, s::returnStmt); + processors.put(DataStmt.class, s::dataStmt); 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 17544f5d..2a63b044 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 @@ -407,4 +407,8 @@ public void returnStmt(ReturnStmt returnStmt) { returnStmt.addChild(getChild(returnStmt, FlangName.EXPR)); } } + + public void dataStmt(DataStmt dataStmt) { + dataStmt.addChildren(getChildren(dataStmt, FlangName.DATA_STMT_SET)); + } } From ddc5c99acd297c8d92ccf7e448714f8e8dab539d Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 13:45:33 +0100 Subject: [PATCH 038/132] Add partial support for stop statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../specs/fortran/ast/nodes/stmt/StopStmt.java | 18 ++++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 1 + .../fe/specs/fortran/parser/FlangToClass.java | 1 + .../specs/fortran/parser/processors/Nodes.java | 1 + .../parser/processors/StmtProcessors.java | 4 ++++ 6 files changed, 26 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/StopStmt.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 423ef84c..51d0f0c8 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -15,6 +15,7 @@ public enum FortranKeyword { EXTERNAL, RETURN, DATA, + STOP, // Conditional statements IF, 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 new file mode 100644 index 00000000..7185fffd --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/StopStmt.java @@ -0,0 +1,18 @@ +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; + +public class StopStmt extends ActionStmt { + public StopStmt(DataStore data, Collection children) { + super(data, children); + } + + @Override + public String getCode() { + return FortranKeyword.STOP.getKeyword(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 98f5d326..ed3931d5 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -64,6 +64,7 @@ public enum FlangName implements StringProvider { EXTERNAL_STMT, RETURN_STMT, DATA_STMT, + STOP_STMT, /// 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 33c455fb..e9d026dd 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -100,6 +100,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.EXTERNAL_STMT, ExternalStmt.class); NAME_TO_CLASS.put(FlangName.RETURN_STMT, ReturnStmt.class); NAME_TO_CLASS.put(FlangName.DATA_STMT, DataStmt.class); + NAME_TO_CLASS.put(FlangName.STOP_STMT, StopStmt.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 44fb8233..19886291 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 @@ -116,6 +116,7 @@ public Nodes(FortranJsonResult data) { processors.put(ExternalStmt.class, s::externalStmt); processors.put(ReturnStmt.class, s::returnStmt); processors.put(DataStmt.class, s::dataStmt); + processors.put(StopStmt.class, s::stopStmt); 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 2a63b044..22e4f3ff 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 @@ -411,4 +411,8 @@ public void returnStmt(ReturnStmt returnStmt) { public void dataStmt(DataStmt dataStmt) { dataStmt.addChildren(getChildren(dataStmt, FlangName.DATA_STMT_SET)); } + + public void stopStmt(StopStmt stopStmt) { + + } } From 1774be5800949e67deb55bb2f2262a97af437886 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 14:21:31 +0100 Subject: [PATCH 039/132] Add support for functions --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../ast/nodes/decl/FunctionArgumentDecl.java | 12 +++++ .../fortran/ast/nodes/program/Function.java | 52 +++++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 7 ++- .../fe/specs/fortran/parser/FlangToClass.java | 2 + .../parser/processors/DeclProcessors.java | 7 +++ .../fortran/parser/processors/Nodes.java | 2 + .../parser/processors/ProgramProcessors.java | 14 +++++ 8 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Function.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 51d0f0c8..597db35c 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -8,6 +8,7 @@ public enum FortranKeyword { WHILE, CONCURRENT, SUBROUTINE, + FUNCTION, WRITE, USE, GOTO, diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.java new file mode 100644 index 00000000..7bea3608 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.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 class FunctionArgumentDecl extends EntityDecl { + public FunctionArgumentDecl(DataStore data, Collection children) { + super(data, children); + } +} 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 new file mode 100644 index 00000000..0150376b --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Function.java @@ -0,0 +1,52 @@ +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.decl.DummyArgumentDecl; +import pt.up.fe.specs.fortran.ast.nodes.decl.FunctionArgumentDecl; +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(FunctionArgumentDecl.class); + } + + @Override + public String getCode() { + + var code = new StringBuilder(); + + var argCode = "(" + + getArgs().stream() + .map(FunctionArgumentDecl::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(SUBROUTINE)).append(" ").append(functionName); + code.append(ln()); + + return code.toString(); + } +} 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 ed3931d5..9f91d909 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -22,6 +22,7 @@ public enum FlangName implements StringProvider { EXECUTION_PART_CONSTRUCT, EXECUTABLE_CONSTRUCT, ALLOCATION, + FUNCTION_SUBPROGRAM, /// DECLs ENTITY_DECL, @@ -37,6 +38,7 @@ public enum FlangName implements StringProvider { PROGRAM_STMT, END_PROGRAM_STMT, SUBROUTINE_STMT, + FUNCTION_STMT, END_SUBROUTINE_STMT, ACTION_STMT, PRINT_STMT, @@ -192,7 +194,10 @@ public enum FlangName implements StringProvider { ALLOC_OPT, STAT_VARIABLE, NAMED_CONSTANT, - NAMED_CONSTANT_DEF; + NAMED_CONSTANT_DEF, + + // EXTRA + FUNCTION_ARGUMENT_DECL; private static final Lazy> HELPER = EnumHelper.newLazyHelper(FlangName.class); 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 e9d026dd..539f7233 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -58,12 +58,14 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.INTERNAL_SUBPROGRAM_PART, InternalSubprogram.class); NAME_TO_CLASS.put(FlangName.SUBROUTINE_SUBPROGRAM, Subroutine.class); NAME_TO_CLASS.put(FlangName.ALLOCATION, Allocation.class); + NAME_TO_CLASS.put(FlangName.FUNCTION_SUBPROGRAM, Function.class); /// DECLs NAME_TO_CLASS.put(FlangName.ENTITY_DECL, EntityDecl.class); NAME_TO_CLASS.put(FlangName.DUMMY_ARG, DummyArgumentDecl.class); NAME_TO_CLASS.put(FlangName.DATA_STMT_VALUE, DataStmtValue.class); NAME_TO_CLASS.put(FlangName.DATA_STMT_SET, DataStmtSet.class); + NAME_TO_CLASS.put(FlangName.FUNCTION_ARGUMENT_DECL, FunctionArgumentDecl.class); /// STMTs NAME_TO_CLASS.put(FlangName.PRINT_STMT, 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 73c8f0dd..de089071 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 @@ -72,6 +72,13 @@ public void dummyArgumentDecl(DummyArgumentDecl dummyArgumentDecl) { dummyArgumentDecl.set(DummyArgumentDecl.NAME, name); } + public void functionArgumentDecl(FunctionArgumentDecl functionArgumentDecl) { + var nameId = attributes(functionArgumentDecl).getVariantString(); + var name = attributes().get(nameId).getString("source"); + + functionArgumentDecl.set(FunctionArgumentDecl.NAME, name); + } + public void dataStmtSet(DataStmtSet dataStmtSet) { dataStmtSet.addChildren(getChildren(dataStmtSet, FlangName.DATA_STMT_OBJECT)); dataStmtSet.addChildren(getChildren(dataStmtSet, FlangName.DATA_STMT_VALUE)); 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 19886291..a4dc99c3 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 @@ -66,6 +66,7 @@ public Nodes(FortranJsonResult data) { processors.put(Execution.class, p::execution); processors.put(Subroutine.class, p::subroutine); processors.put(InternalSubprogram.class, p::internalSubprogram); + processors.put(Function.class, p::function); var alloc = new AllocProcessors(data); processors.put(Allocation.class, alloc::allocation); @@ -76,6 +77,7 @@ public Nodes(FortranJsonResult data) { processors.put(DataStmtValue.class, d::dataStmtValue); processors.put(DummyArgumentDecl.class, d::dummyArgumentDecl); processors.put(DataStmtSet.class, d::dataStmtSet); + processors.put(FunctionArgumentDecl.class, d::functionArgumentDecl); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRefProcessor); 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 9f602264..11adeb2f 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 @@ -87,4 +87,18 @@ public void subroutine(Subroutine subroutine) { String statementId = attributes().get(attributes(subroutine).getString(FlangName.SUBROUTINE_STMT.getStmtAttr())).getString("statement"); subroutine.addChildren(getChildren(statementId, FlangName.DUMMY_ARG)); } + + public void function(Function function) { + var name = attributes().getString(function, "source", FlangName.FUNCTION_STMT, FlangName.NAME); + // [specification-part] + function.addChild(getChild(function, FlangName.SPECIFICATION_PART)); + // [execution-part] + function.addChild(getChild(function, FlangName.EXECUTION_PART)); + // [internal-subprogram-part] + + function.set(Function.FUNCTION_NAME, name); + + String statementId = attributes().get(attributes(function).getString(FlangName.FUNCTION_STMT.getStmtAttr())).getString("statement"); + function.addChildren(getChildren(statementId, FlangName.FUNCTION_ARGUMENT_DECL)); + } } From 0d6d21e736075de8d7b6e4e52309cea515584532 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 14:28:52 +0100 Subject: [PATCH 040/132] Simplify function args --- .../fortran/ast/nodes/decl/FunctionArgumentDecl.java | 12 ------------ .../fe/specs/fortran/ast/nodes/program/Function.java | 10 ++++------ .../pt/up/fe/specs/fortran/parser/FlangToClass.java | 1 - .../fortran/parser/processors/DeclProcessors.java | 7 ------- .../up/fe/specs/fortran/parser/processors/Nodes.java | 1 - 5 files changed, 4 insertions(+), 27 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.java deleted file mode 100644 index 7bea3608..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/decl/FunctionArgumentDecl.java +++ /dev/null @@ -1,12 +0,0 @@ -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 FunctionArgumentDecl extends EntityDecl { - public FunctionArgumentDecl(DataStore data, Collection children) { - super(data, children); - } -} 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 index 0150376b..ce48b156 100644 --- 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 @@ -4,8 +4,6 @@ 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 pt.up.fe.specs.fortran.ast.nodes.decl.FunctionArgumentDecl; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; import java.util.Collection; @@ -22,8 +20,8 @@ public Function(DataStore data, Collection children) { super(data, children); } - public List getArgs() { - return getChildrenOf(FunctionArgumentDecl.class); + public List getArgs() { + return getChildrenOf(DataRef.class); } @Override @@ -33,7 +31,7 @@ public String getCode() { var argCode = "(" + getArgs().stream() - .map(FunctionArgumentDecl::getCode) + .map(DataRef::getCode) .collect(Collectors.joining(", ")) + ")"; @@ -44,7 +42,7 @@ public String getCode() { code.append(getBodyCode()).append(ln()); code.append(keyword(END)); - code.append(" ").append(keyword(SUBROUTINE)).append(" ").append(functionName); + code.append(" ").append(keyword(FUNCTION)).append(" ").append(functionName); code.append(ln()); 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 539f7233..6c34997e 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,6 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.DUMMY_ARG, DummyArgumentDecl.class); NAME_TO_CLASS.put(FlangName.DATA_STMT_VALUE, DataStmtValue.class); NAME_TO_CLASS.put(FlangName.DATA_STMT_SET, DataStmtSet.class); - NAME_TO_CLASS.put(FlangName.FUNCTION_ARGUMENT_DECL, FunctionArgumentDecl.class); /// STMTs NAME_TO_CLASS.put(FlangName.PRINT_STMT, 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 de089071..73c8f0dd 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 @@ -72,13 +72,6 @@ public void dummyArgumentDecl(DummyArgumentDecl dummyArgumentDecl) { dummyArgumentDecl.set(DummyArgumentDecl.NAME, name); } - public void functionArgumentDecl(FunctionArgumentDecl functionArgumentDecl) { - var nameId = attributes(functionArgumentDecl).getVariantString(); - var name = attributes().get(nameId).getString("source"); - - functionArgumentDecl.set(FunctionArgumentDecl.NAME, name); - } - public void dataStmtSet(DataStmtSet dataStmtSet) { dataStmtSet.addChildren(getChildren(dataStmtSet, FlangName.DATA_STMT_OBJECT)); dataStmtSet.addChildren(getChildren(dataStmtSet, FlangName.DATA_STMT_VALUE)); 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 a4dc99c3..7f0a8484 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 @@ -77,7 +77,6 @@ public Nodes(FortranJsonResult data) { processors.put(DataStmtValue.class, d::dataStmtValue); processors.put(DummyArgumentDecl.class, d::dummyArgumentDecl); processors.put(DataStmtSet.class, d::dataStmtSet); - processors.put(FunctionArgumentDecl.class, d::functionArgumentDecl); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRefProcessor); From fe8c048787b59062b32cf4cf9eb40ace200cb6fe Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 16:06:25 +0100 Subject: [PATCH 041/132] very hacky solution for format statement --- .../pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java | 6 ++++++ 1 file changed, 6 insertions(+) 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..1df101da 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 @@ -10,4 +10,10 @@ public class FormatStmt extends ExecutableStmt { public FormatStmt(DataStore data, Collection children) { super(data, children); } + + //TODO properly support the statement + @Override + public String getCode() { + return get(SOURCE).replaceFirst("^\\d+", ""); + } } From 1184289ba3e7908cf8408dcb53c20b390281b638 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Thu, 7 May 2026 16:13:59 +0100 Subject: [PATCH 042/132] Make conditional constructs have executable blocks --- .../fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseBlock.java | 5 +++-- .../fe/specs/fortran/ast/nodes/stmt/ifstmt/ElseIfBlock.java | 5 +++-- .../fe/specs/fortran/ast/nodes/stmt/ifstmt/IfThenBlock.java | 5 +++-- .../fe/specs/fortran/parser/processors/StmtProcessors.java | 6 +++--- 4 files changed, 12 insertions(+), 9 deletions(-) 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..1523cafb 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,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.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import java.util.Collection; @@ -15,8 +16,8 @@ public ElseStmt getElseStmt() { return getChild(ElseStmt.class, 0); } - public StmtBlock getBlock() { - return getChild(StmtBlock.class, 1); + public Execution getBlock() { + return getChild(Execution.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 a6a1c38b..b62e03c0 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 @@ -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.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import java.util.Collection; @@ -17,8 +18,8 @@ public ElseIfStmt getElseIfStmt() { return getChild(ElseIfStmt.class, 0); } - public StmtBlock getBlock() { - return getChild(StmtBlock.class, 1); + public Execution getBlock() { + return getChild(Execution.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 b4e60854..8796e048 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 @@ -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.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; import java.util.Collection; @@ -17,8 +18,8 @@ public IfThenStmt getIfThenStmt() { return getChild(IfThenStmt.class, 0); } - public StmtBlock getBlock() { - return getChild(StmtBlock.class, 1); + public Execution getBlock() { + return getChild(Execution.class, 1); } @Override 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 22e4f3ff..397b6f18 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 @@ -84,7 +84,7 @@ public void ifConstruct(IfConstruct ifConstruct) { // Add if-then block var ifThenStmt = getStmtChild(ifConstruct, FlangName.IF_THEN_STMT); - var thenBlock = factory().newNode(StmtBlock.class); + 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); @@ -131,7 +131,7 @@ public void elseIfBlock(ElseIfBlock ifElseBlock) { ifElseBlock.addChild(elseIfStmt); var blockStatements = getChildren(ifElseBlock, FlangName.EXECUTION_PART_CONSTRUCT); - var block = factory().newNode(StmtBlock.class); + var block = factory().newNode(Execution.class); block.addChildren(blockStatements); ifElseBlock.addChild(block); } @@ -146,7 +146,7 @@ public void elseBlock(ElseBlock elseBlock) { elseBlock.addChild(elseStmt); var blockStatements = getChildren(elseBlock, FlangName.EXECUTION_PART_CONSTRUCT); - var block = factory().newNode(StmtBlock.class); + var block = factory().newNode(Execution.class); block.addChildren(blockStatements); elseBlock.addChild(block); } From 2194ee6f62f748cce11714e2e5c1adc38bfd9957 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 7 May 2026 22:11:57 +0100 Subject: [PATCH 043/132] Add goto tests --- .../fortran/parser/stmt/goto.expected.f90 | 4 ++++ .../resources-test/fortran/parser/stmt/goto.f90 | 4 ++++ .../fe/specs/fortran/parser/FortranParserTest.java | 12 ++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/stmt/goto.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/goto.f90 diff --git a/FortranParser/resources-test/fortran/parser/stmt/goto.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/goto.expected.f90 new file mode 100644 index 00000000..d78de40c --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/goto.expected.f90 @@ -0,0 +1,4 @@ +PROGRAM goto + GO TO 10 + 10 PRINT *, "Hello, World!" +END PROGRAM goto \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/goto.f90 b/FortranParser/resources-test/fortran/parser/stmt/goto.f90 new file mode 100644 index 00000000..79e449d6 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/goto.f90 @@ -0,0 +1,4 @@ +program goto + goto 10 + 10 print *, "Hello, World!" +end program goto \ 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 830bfd1f..a10d1f06 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -395,6 +395,18 @@ void testNotNative() { } } + @Test + void testGoto() { + testJson("stmt/goto.json"); + } + + @Test + void testGotoNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/goto.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 68cb1df2590375bda1905152e5c7ae0ba0a6fed3 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 7 May 2026 22:12:06 +0100 Subject: [PATCH 044/132] Add goto AST node --- .../fortran/ast/nodes/stmt/GotoStmt.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java 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 new file mode 100644 index 00000000..77bd5d7e --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java @@ -0,0 +1,28 @@ +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; + +public class GotoStmt extends ActionStmt { + public static final DataKey LABEL = KeyFactory.integer("label"); + + public GotoStmt(DataStore data, Collection children) { + super(data, children); + } + + public int getGotoLabel() { + return get(LABEL); + } + + @Override + public String getCode() { + var label = getGotoLabel(); + + return keyword(FortranKeyword.GO) + " " + keyword(FortranKeyword.TO) + " " + label; + } +} From d31c752581bbf0945a65b4e55d1dedfb90d9b253 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 7 May 2026 22:12:18 +0100 Subject: [PATCH 045/132] Process goto statements --- .../src/pt/up/fe/specs/fortran/ast/FortranKeyword.java | 8 ++++++-- .../src/pt/up/fe/specs/fortran/parser/FlangName.java | 1 + .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 1 + .../pt/up/fe/specs/fortran/parser/processors/Nodes.java | 1 + .../specs/fortran/parser/processors/StmtProcessors.java | 7 +++++++ 5 files changed, 16 insertions(+), 2 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 a324864c..c2aa8bfb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -3,11 +3,15 @@ public enum FortranKeyword { END, PROGRAM, + CONCURRENT, + SUBROUTINE, + + // Execution statements PRINT, DO, WHILE, - CONCURRENT, - SUBROUTINE, + GO, + TO, // Conditional statements IF, 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 ef1edc18..23b4dbcc 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 { DO_CONSTRUCT, CALL_STMT, COMPILER_DIRECTIVE, + GOTO_STMT, /// 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 482729bd..b8226a12 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -54,6 +54,7 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.ASSIGNMENT_STMT, AssignmentStmt.class); NAME_TO_CLASS.put(FlangName.DO_CONSTRUCT, DoStmt.class); NAME_TO_CLASS.put(FlangName.COMPILER_DIRECTIVE, CompilerDirective.class); + NAME_TO_CLASS.put(FlangName.GOTO_STMT, GotoStmt.class); NAME_TO_CLASS.put(FlangName.IF_CONSTRUCT, IfConstruct.class); NAME_TO_CLASS.put(FlangName.IF_THEN_STMT, IfThenStmt.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 a221279e..5fed04f7 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,7 @@ public Nodes(FortranJsonResult data) { 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(IfConstruct.class, s::ifConstruct); processors.put(IfThenStmt.class, s::ifThenStmt); 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 05a997e3..008f8af0 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 @@ -332,4 +332,11 @@ public void compilerDirective(CompilerDirective compilerDirective) { public void callStmt(CallStmt callStmt) { callStmt.addChild(getChild(callStmt, "call")); } + + public void gotoStmt(GotoStmt gotoStmt) { + var strLabel = attributes(gotoStmt).getString("uint64_t"); + var label = Integer.parseInt(strLabel); + + gotoStmt.set(GotoStmt.LABEL, label); + } } From 423496dd56e8af50504f982f117406f8dccecaa3 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 11:21:29 +0100 Subject: [PATCH 046/132] Delete GotoStmt --- .../fortran/ast/nodes/stmt/GotoStmt.java | 23 ------------------- .../up/fe/specs/fortran/parser/FlangName.java | 1 - .../fe/specs/fortran/parser/FlangToClass.java | 1 - .../fortran/parser/processors/Nodes.java | 1 - .../parser/processors/StmtProcessors.java | 4 ---- 5 files changed, 30 deletions(-) delete mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java 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 deleted file mode 100644 index 735bde99..00000000 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/GotoStmt.java +++ /dev/null @@ -1,23 +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.FortranKeyword; -import pt.up.fe.specs.fortran.ast.nodes.FortranNode; - -import java.util.Collection; - -public class GotoStmt extends ActionStmt { - - public static final DataKey LABEL = KeyFactory.integer("label"); - - public GotoStmt(DataStore data, Collection children) { - super(data, children); - } - - @Override - public String getCode() { - return FortranKeyword.GOTO.getKeyword(false) + " " + get(LABEL).toString(); - } -} 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 9f91d909..37ba00ad 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -61,7 +61,6 @@ public enum FlangName implements StringProvider { USE_STMT, CONTINUE_STMT, PARAMETER_STMT, - GOTO_STMT, COMMON_STMT, EXTERNAL_STMT, RETURN_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 6c34997e..59ca1138 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -96,7 +96,6 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.USE_STMT, UseStmt.class); NAME_TO_CLASS.put(FlangName.CONTINUE_STMT, ContinueStmt.class); NAME_TO_CLASS.put(FlangName.PARAMETER_STMT, ParameterStmt.class); - NAME_TO_CLASS.put(FlangName.GOTO_STMT, GotoStmt.class); NAME_TO_CLASS.put(FlangName.COMMON_STMT, CommonStmt.class); NAME_TO_CLASS.put(FlangName.EXTERNAL_STMT, ExternalStmt.class); NAME_TO_CLASS.put(FlangName.RETURN_STMT, ReturnStmt.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 7f0a8484..da1f3125 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 @@ -112,7 +112,6 @@ public Nodes(FortranJsonResult data) { processors.put(DeallocateStmt.class, s::deallocateStmt); processors.put(ContinueStmt.class, s::continueStmt); processors.put(ParameterStmt.class, s::parameterStmt); - processors.put(GotoStmt.class, s::gotoStmt); processors.put(CommonStmt.class, s::commonStmt); processors.put(ExternalStmt.class, s::externalStmt); processors.put(ReturnStmt.class, s::returnStmt); 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 397b6f18..c4741e7f 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 @@ -379,10 +379,6 @@ public void parameterStmt(ParameterStmt parameterStmt) { parameterStmt.addChildren(getChildren(parameterStmt, FlangName.NAMED_CONSTANT_DEF)); } - public void gotoStmt(GotoStmt gotoStmt) { - gotoStmt.set(GotoStmt.LABEL, Integer.parseInt(attributes(gotoStmt).getString("uint64_t"))); - } - public void commonStmt(CommonStmt commonStmt) { String block = attributes(commonStmt).getStringList(FlangName.BLOCK).getFirst(); From bff323e3222cd3f4f896bb14cf1f8a2c9b473e1e Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 11:40:02 +0100 Subject: [PATCH 047/132] Add missing "inheritance" calls in statement processors --- .../fortran/parser/processors/StmtProcessors.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 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 c4741e7f..28652c19 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 @@ -70,6 +70,7 @@ 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); @@ -160,6 +161,7 @@ public void endIfStmt(EndIfStmt ignoredEndIfStmt) { } public void ifStmt(IfStmt ifStmt) { + actionStmt(ifStmt); var condition = getChild(ifStmt, FlangName.EXPR); var thenStmt = getUnlabeledStmtChild(ifStmt, FlangName.ACTION_STMT); @@ -330,10 +332,12 @@ public void compilerDirective(CompilerDirective compilerDirective) { } public void callStmt(CallStmt callStmt) { + actionStmt(callStmt); callStmt.addChild(getChild(callStmt, "call")); } public void writeStmt(WriteStmt writeStmt) { + actionStmt(writeStmt); if (attributes(writeStmt).has("iounit")) { writeStmt.addChild(getChild(writeStmt, "iounit")); } @@ -356,11 +360,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)); } public void deallocateStmt(DeallocateStmt deallocateStmt) { + actionStmt(deallocateStmt); deallocateStmt.addChildren(getChildren(deallocateStmt, FlangName.ALLOCATE_OBJECT)); } @@ -372,7 +378,7 @@ public void useStmt(UseStmt useStmt) { } public void continueStmt(ContinueStmt continueStmt) { - + actionStmt(continueStmt); } public void parameterStmt(ParameterStmt parameterStmt) { @@ -399,6 +405,7 @@ public void externalStmt(ExternalStmt externalStmt) { } public void returnStmt(ReturnStmt returnStmt) { + actionStmt(returnStmt); if (attributes(returnStmt).has(FlangName.EXPR)) { returnStmt.addChild(getChild(returnStmt, FlangName.EXPR)); } @@ -409,6 +416,6 @@ public void dataStmt(DataStmt dataStmt) { } public void stopStmt(StopStmt stopStmt) { - + actionStmt(stopStmt); } } From 9b56b0ae81956760e48804e127a950b7f79c2a07 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 11:45:51 +0100 Subject: [PATCH 048/132] Add hacky support for open/close statements --- .../fortran/ast/nodes/stmt/CloseStmt.java | 18 ++++++++++++++++++ .../specs/fortran/ast/nodes/stmt/OpenStmt.java | 18 ++++++++++++++++++ .../up/fe/specs/fortran/parser/FlangName.java | 2 ++ .../fe/specs/fortran/parser/FlangToClass.java | 2 ++ .../specs/fortran/parser/processors/Nodes.java | 2 ++ .../parser/processors/StmtProcessors.java | 8 ++++++++ 6 files changed, 50 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java create 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/nodes/stmt/CloseStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java new file mode 100644 index 00000000..a88e0271 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java @@ -0,0 +1,18 @@ +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 getCode() { + return get(SOURCE).replaceFirst("^\\d+", ""); + } +} 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 new file mode 100644 index 00000000..f54447dc --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/OpenStmt.java @@ -0,0 +1,18 @@ +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 getCode() { + return get(SOURCE).replaceFirst("^\\d+", ""); + } +} 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 37ba00ad..d2d0b11e 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,8 @@ public enum FlangName implements StringProvider { RETURN_STMT, DATA_STMT, STOP_STMT, + OPEN_STMT, + CLOSE_STMT, /// 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 59ca1138..a8038887 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -101,6 +101,8 @@ public class FlangToClass { NAME_TO_CLASS.put(FlangName.RETURN_STMT, ReturnStmt.class); NAME_TO_CLASS.put(FlangName.DATA_STMT, DataStmt.class); NAME_TO_CLASS.put(FlangName.STOP_STMT, StopStmt.class); + NAME_TO_CLASS.put(FlangName.OPEN_STMT, OpenStmt.class); + NAME_TO_CLASS.put(FlangName.CLOSE_STMT, CloseStmt.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 da1f3125..158ab084 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 @@ -117,6 +117,8 @@ public Nodes(FortranJsonResult data) { processors.put(ReturnStmt.class, s::returnStmt); processors.put(DataStmt.class, s::dataStmt); processors.put(StopStmt.class, s::stopStmt); + processors.put(OpenStmt.class, s::openStmt); + processors.put(CloseStmt.class, s::closeStmt); 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 28652c19..af7bb543 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 @@ -418,4 +418,12 @@ public void dataStmt(DataStmt dataStmt) { public void stopStmt(StopStmt stopStmt) { actionStmt(stopStmt); } + + public void openStmt(OpenStmt openStmt) { + actionStmt(openStmt); + } + + public void closeStmt(CloseStmt closeStmt) { + actionStmt(closeStmt); + } } From a10dc8b2c993953dfd918c2f00dc8b1c5216d9cf Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 11:54:00 +0100 Subject: [PATCH 049/132] Update some expected outputs --- .../fortran/parser/arrays/array_declaration.expected.f90 | 4 ++-- .../fortran/parser/arrays/array_implied_do.expected.f90 | 4 ++-- .../fortran/parser/arrays/element_access.expected.f90 | 4 ++-- .../fortran/parser/binary_operator.expected.f90 | 4 ++-- .../resources-test/fortran/parser/concurrent.expected.f90 | 4 ++-- .../fortran/parser/conditionalstmt/chained_if.expected.f90 | 4 ++-- .../fortran/parser/conditionalstmt/if_then.expected.f90 | 4 ++-- .../fortran/parser/conditionalstmt/if_then_else.expected.f90 | 4 ++-- .../fortran/parser/conditionalstmt/logical_if.expected.f90 | 4 ++-- .../fortran/parser/conditionalstmt/logical_if.f90 | 4 ++-- .../parser/conditionalstmt/named_chained_if.expected.f90 | 4 ++-- .../parser/conditionalstmt/named_select_case.expected.f90 | 4 ++-- .../fortran/parser/conditionalstmt/select_case.expected.f90 | 4 ++-- .../parser/conditionalstmt/select_case_list.expected.f90 | 4 ++-- .../parser/conditionalstmt/select_case_range.expected.f90 | 4 ++-- .../resources-test/fortran/parser/directive.expected.f90 | 4 ++-- FortranParser/resources-test/fortran/parser/do.expected.f90 | 4 ++-- .../fortran/parser/logical_expression.expected.f90 | 4 ++-- .../resources-test/fortran/parser/omp/omp_basic.expected.f90 | 2 +- .../resources-test/fortran/parser/omp/omp_clause.expected.f90 | 4 ++-- .../resources-test/fortran/parser/omp/omp_do.expected.f90 | 4 ++-- .../fortran/parser/omp/omp_reduction.expected.f90 | 4 ++-- .../resources-test/fortran/parser/parenexpr.expected.f90 | 4 ++-- .../resources-test/fortran/parser/subroutine.expected.f90 | 4 ++-- 24 files changed, 47 insertions(+), 47 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 b/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 index e62fa157..998f5982 100644 --- a/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/arrays/array_declaration.expected.f90 @@ -1,4 +1,4 @@ -PROGRAM test_array_assign +PROGRAM TEST_ARRAY_ASSIGN INTEGER, DIMENSION(5) :: arr, arr2, arr3 INTEGER, ALLOCATABLE :: arr_alloc(:) INTEGER, DIMENSION(2, 3, 4) :: matrix3d @@ -9,4 +9,4 @@ PROGRAM test_array_assign arr3 = [INTEGER :: 10, 20, 30, 40, 50] arr_alloc = [INTEGER ::] arr_custom_bound = [10, 20, 30, 40, 50] -END PROGRAM test_array_assign \ No newline at end of file +END PROGRAM TEST_ARRAY_ASSIGN \ No newline at end of file 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 8e87470b..4a22d774 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,4 +1,4 @@ -PROGRAM test_implied_do +PROGRAM TEST_IMPLIED_DO INTEGER :: i, j INTEGER, DIMENSION(5) :: arr1, arr2, arr3 INTEGER, DIMENSION(10) :: arr4, arr5 @@ -19,4 +19,4 @@ PROGRAM test_implied_do arr7 = [(i, i * 10, i * 100, i = 1, 5)] -END PROGRAM test_implied_do \ No newline at end of file +END PROGRAM TEST_IMPLIED_DO \ No newline at end of file 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 18048167..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,4 +1,4 @@ -PROGRAM array_demonstration +PROGRAM ARRAY_DEMONSTRATION INTEGER :: vec(5) = [10, 20, 30, 40, 50] INTEGER :: matrix(3, 3) @@ -6,4 +6,4 @@ PROGRAM array_demonstration PRINT *, "The second element is:", vec(2) PRINT *, "Multi dimensional:", matrix(1, 2) -END PROGRAM array_demonstration \ No newline at end of file +END PROGRAM ARRAY_DEMONSTRATION \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 index a21664ba..900293fa 100644 --- a/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/binary_operator.expected.f90 @@ -1,4 +1,4 @@ -PROGRAM test_exprs +PROGRAM TEST_EXPRS LOGICAL :: l INTEGER :: i, a = 1, b = 1 l = 0 < a @@ -15,4 +15,4 @@ PROGRAM test_exprs i = 0 + 1 - b * 5 / a + 7 -END PROGRAM test_exprs \ No newline at end of file +END PROGRAM TEST_EXPRS \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 b/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 index fde7d042..a93d2cdf 100644 --- a/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/concurrent.expected.f90 @@ -1,4 +1,4 @@ -PROGRAM simple_loop +PROGRAM SIMPLE_LOOP INTEGER :: i, j REAL :: x @@ -6,4 +6,4 @@ PROGRAM simple_loop x = 0.0 END DO -END PROGRAM simple_loop \ No newline at end of file +END PROGRAM SIMPLE_LOOP \ No newline at end of file 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 18f08b41..46ac2636 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/chained_if.expected.f90 @@ -1,4 +1,4 @@ -PROGRAM if +PROGRAM IF LOGICAL :: cond1, cond2 cond1 = .false. cond2 = .true. @@ -10,4 +10,4 @@ PROGRAM if ELSE PRINT *, "both conditions are false" END IF -END PROGRAM if \ No newline at end of file +END PROGRAM IF \ No newline at end of file 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 23e6ae6e..1b18e374 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/if_then.expected.f90 @@ -1,8 +1,8 @@ -PROGRAM if +PROGRAM IF LOGICAL :: cond cond = .false. IF (cond) THEN PRINT *, "cond is true" END IF -END PROGRAM if \ No newline at end of file +END PROGRAM IF \ No newline at end of file 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 3c7ce581..ea6852a8 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,4 +1,4 @@ -PROGRAM if +PROGRAM IF LOGICAL :: cond cond = .false. @@ -7,4 +7,4 @@ PROGRAM if ELSE PRINT *, "cond is false" END IF -END PROGRAM if \ No newline at end of file +END PROGRAM IF \ No newline at end of file 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 451b6787..73e48239 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 +PROGRAM LOGICAL_IF LOGICAL :: cond INTEGER :: result cond = .false. result = 2 IF (cond) result = 3 -END PROGRAM logical_if \ No newline at end of file +END PROGRAM LOGICAL_IF \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.f90 b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.f90 index 8ebaeb48..3e9497c3 100644 --- a/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.f90 +++ b/FortranParser/resources-test/fortran/parser/conditionalstmt/logical_if.f90 @@ -1,4 +1,4 @@ -program logical_if +program LOGICAL_IF logical :: cond integer :: result @@ -6,4 +6,4 @@ program logical_if result = 2 if (cond) result = 3 -end program logical_if \ No newline at end of file +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 928237b2..81cf74ff 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,4 +1,4 @@ -PROGRAM if +PROGRAM IF LOGICAL :: cond1, cond2 cond1 = .false. cond2 = .true. @@ -10,4 +10,4 @@ PROGRAM if ELSE named_if PRINT *, "both conditions are false" END IF named_if -END PROGRAM if \ No newline at end of file +END PROGRAM IF \ No newline at end of file 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 0afeea6b..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,4 +1,4 @@ -PROGRAM named_select_case +PROGRAM NAMED_SELECT_CASE INTEGER :: val, result val = 2 @@ -14,4 +14,4 @@ PROGRAM named_select_case END SELECT named_select PRINT *, "Result:", result -END PROGRAM named_select_case \ No newline at end of file +END PROGRAM NAMED_SELECT_CASE \ No newline at end of file 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 e5ac2bf2..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,4 +1,4 @@ -PROGRAM select_case +PROGRAM SELECT_CASE INTEGER :: val, result val = 2 @@ -14,4 +14,4 @@ PROGRAM select_case END SELECT PRINT *, "Result:", result -END PROGRAM select_case \ No newline at end of file +END PROGRAM SELECT_CASE \ No newline at end of file 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 14978024..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,4 +1,4 @@ -PROGRAM select_case_list +PROGRAM SELECT_CASE_LIST INTEGER :: val, result val = 2 @@ -12,4 +12,4 @@ PROGRAM select_case_list END SELECT PRINT *, "Result:", result -END PROGRAM select_case_list \ No newline at end of file +END PROGRAM SELECT_CASE_LIST \ No newline at end of file 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 b959d9c9..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,4 +1,4 @@ -PROGRAM select_case_range +PROGRAM SELECT_CASE_RANGE INTEGER :: val, result val = 5 @@ -14,4 +14,4 @@ PROGRAM select_case_range END SELECT PRINT *, "Result:", result -END PROGRAM select_case_range \ No newline at end of file +END PROGRAM SELECT_CASE_RANGE \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/directive.expected.f90 b/FortranParser/resources-test/fortran/parser/directive.expected.f90 index 5a7fa95d..e2adbb45 100644 --- a/FortranParser/resources-test/fortran/parser/directive.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/directive.expected.f90 @@ -1,4 +1,4 @@ -PROGRAM dir +PROGRAM DIR INTEGER :: result INTEGER :: a = 5 @@ -6,4 +6,4 @@ PROGRAM dir result = (5) !DIR$ end scop=5 -END PROGRAM dir \ No newline at end of file +END PROGRAM DIR \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/do.expected.f90 b/FortranParser/resources-test/fortran/parser/do.expected.f90 index 9e164696..0ae597b3 100644 --- a/FortranParser/resources-test/fortran/parser/do.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/do.expected.f90 @@ -1,4 +1,4 @@ -PROGRAM simple_loop +PROGRAM SIMPLE_LOOP INTEGER :: i, dummy, a = 2 DO i = 1, 5, a @@ -14,4 +14,4 @@ PROGRAM simple_loop dummy = 4 END DO name -END PROGRAM simple_loop \ No newline at end of file +END PROGRAM SIMPLE_LOOP \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 index 2621e095..3101aadc 100644 --- a/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/logical_expression.expected.f90 @@ -1,4 +1,4 @@ -PROGRAM logical_expression +PROGRAM LOGICAL_EXPRESSION INTEGER :: a1, b1, a2, b2 LOGICAL :: ok @@ -7,4 +7,4 @@ PROGRAM logical_expression a1 = 1 b1 = 2 -END PROGRAM logical_expression \ No newline at end of file +END PROGRAM LOGICAL_EXPRESSION \ No newline at end of file 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 f043cc95..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 6ed65df8..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 70e5653f..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 92114a37..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/parenexpr.expected.f90 b/FortranParser/resources-test/fortran/parser/parenexpr.expected.f90 index c7e82a9b..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 +PROGRAM PARENEXPR INTEGER :: result INTEGER :: a = 5 result = (5) -END PROGRAM parenexpr \ No newline at end of file +END PROGRAM PARENEXPR \ 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 1b4aa456..8d6aeade 100644 --- a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 @@ -6,7 +6,7 @@ SUBROUTINE add_numbers(a, b, result, useless) result = a + b END SUBROUTINE add_numbers -PROGRAM main +PROGRAM MAIN INTEGER :: x, y, total, useless x = 5 @@ -15,4 +15,4 @@ PROGRAM main call add_numbers(x, y, total, useless) PRINT *, "The sum is:", total -END PROGRAM main \ No newline at end of file +END PROGRAM MAIN \ No newline at end of file From 340af2ae4b05281e6feebff67561780f932e16ae Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 11:58:02 +0100 Subject: [PATCH 050/132] Fix some tests --- .../fortran/parser/parameter.expected.f90 | 6 +- .../fortran/parser/polybench/3mm.expected.f90 | 233 +++++++++--------- 2 files changed, 117 insertions(+), 122 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/parameter.expected.f90 b/FortranParser/resources-test/fortran/parser/parameter.expected.f90 index 8eb40135..3dd695ad 100644 --- a/FortranParser/resources-test/fortran/parser/parameter.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/parameter.expected.f90 @@ -1,8 +1,8 @@ PROGRAM OPENMP_DEMO - integer :: i, total_sum - integer :: shared_counter = 0 - integer, PARAMETER :: n = 32 + INTEGER :: i, total_sum + INTEGER :: shared_counter = 0 + INTEGER, PARAMETER :: n = 32 DO i = 1, 2 total_sum = total_sum + 1 diff --git a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 index 55d02263..ce525717 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -1,120 +1,115 @@ -!****************************************************************************** -! -! 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 - implicit none - DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: a - DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: b - DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: c - DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: d - DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: e - DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: f - DOUBLE PRECISION, DIMENSION(1024 + 0, 1024 + 0) :: g - INTEGER :: i; character(LEN = 30) :: arg - ! Allocation of Arrays - ! Initialization - call init_array(1024, 1024, 1024, 1024, 1024, & - a, b, c, d) - ! Kernel Execution - call kernel_3mm(1024, 1024, 1024, 1024, 1024, & - e, a, b, f, c, d, g) - ! Prevent dead-code elimination. All live-out data must be printed - ! by the function call in argument. - call getarg(1, arg); if(command_argument_count() > 42 .AND. arg .EQ. '') then; call print_array(1024, 1024, g); - end if; - ! Deallocation of Arrays +PROGRAM THREE_MM +DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: a +DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: b +DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: c +DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: d +DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: e +DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: f +DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: g +INTEGER :: i +allocate(a(32 + 0, 32 + 0), STAT=i) +call check_err(i) +allocate(b(32 + 0, 32 + 0), STAT=i) +call check_err(i) +allocate(c(32 + 0, 32 + 0), STAT=i) +call check_err(i) +allocate(d(32 + 0, 32 + 0), STAT=i) +call check_err(i) +allocate(e(32 + 0, 32 + 0), STAT=i) +call check_err(i) +allocate(f(32 + 0, 32 + 0), STAT=i) +call check_err(i) +allocate(g(32 + 0, 32 + 0), STAT=i) +call check_err(i) +call init_array(32, 32, 32, 32, 32, a, b, c, d) +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() +call print_array(32, 32, g) +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) - implicit none - DOUBLE PRECISION, DIMENSION(nk, ni) :: a - 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 - do i = 1, ni - do j = 1, nk - a(j, i) = DBLE(i - 1) * DBLE(j - 1) / ni - end do - end do - do i = 1, nk - do j = 1, nj - b(j, i) = (DBLE(i - 1) * DBLE(j)) / nj - end do - end do - do i = 1, nj - do j = 1, nm - c(j, i) = (DBLE(i - 1) * DBLE(j + 2)) / nl - end do - end do - do i = 1, nm - do j = 1, nl - d(j, i) = (DBLE(i - 1) * DBLE(j + 1)) / nk - end do - end do - end subroutine - subroutine print_array(ni, nl, g) - implicit none - DOUBLE PRECISION, DIMENSION(nl, ni) :: g - INTEGER :: ni, nl - INTEGER :: i, j - do i = 1, ni - do j = 1, nl - write(0, "(f0.2,1x)", advance = 'no') g(j, i) - if (mod(((i - 1) * ni) + j - 1, 20) == 0) then - write(0, *) - end if - end do - end do - write(0, *) - end subroutine - subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) - implicit none - DOUBLE PRECISION, DIMENSION(nk, ni) :: a - DOUBLE PRECISION, DIMENSION(nj, nk) :: b - DOUBLE PRECISION, DIMENSION(nm, nj) :: c - DOUBLE PRECISION, DIMENSION(nl, nm) :: d - 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 - !$pragma scop - ! E := A*B - do i = 1, ni - do j = 1, nj - e(j, i) = 0.0 - do k = 1, nk - e(j, i) = e(j, i) + a(k, i) * b(j, k) - end do - end do - end do - ! F := C*D - do i = 1, nj - do j = 1, nl - f(j, i) = 0.0 - do k = 1, nm - f(j, i) = f(j, i) + c(k, i) * d(j, k) - end do - end do - end do - ! G := E*F - do i = 1, ni - do j = 1, nl - g(j, i) = 0.0 - do k = 1, nj - g(j, i) = g(j, i) + e(k, i) * f(j, k) - end do - end do - end do - !$pragma endscop - end subroutine -end program +SUBROUTINE init_array(ni, nj, nk, nl, nm, a, b, c, d) +DOUBLE PRECISION, DIMENSION(nk, ni) :: a +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 +DO i = 1, ni +DO j = 1, nk +a(j, i) = dble(i - 1) * dble(j - 1) / ni +END DO +END DO +DO i = 1, nk +DO j = 1, nj +b(j, i) = (dble(i - 1) * dble(j)) / nj +END DO +END DO +DO i = 1, nj +DO j = 1, nm +c(j, i) = (dble(i - 1) * dble(j + 2)) / nl +END DO +END DO +DO i = 1, nm +DO j = 1, nl +d(j, i) = (dble(i - 1) * dble(j + 1)) / nk +END DO +END DO +END SUBROUTINE init_array +SUBROUTINE print_array(ni, nl, g) +DOUBLE PRECISION, DIMENSION(nl, ni) :: g +INTEGER :: ni, nl +INTEGER :: i, j +DO i = 1, ni +DO j = 1, nl +WRITE(0, "(f0.2,1x)", advance="no") g(j, i) +IF (mod(((i - 1) * ni) + j - 1, 20) == 0) THEN +WRITE(0, *) +END IF +END DO +END DO +WRITE(0, *) +END SUBROUTINE print_array +SUBROUTINE kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g) +DOUBLE PRECISION, DIMENSION(nk, ni) :: a +DOUBLE PRECISION, DIMENSION(nj, nk) :: b +DOUBLE PRECISION, DIMENSION(nm, nj) :: c +DOUBLE PRECISION, DIMENSION(nl, nm) :: d +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 +DO i = 1, ni +DO j = 1, nj +e(j, i) = 0.0 +DO k = 1, nk +e(j, i) = e(j, i) + a(k, i) * b(j, k) +END DO +END DO +END DO +DO i = 1, nj +DO j = 1, nl +f(j, i) = 0.0 +DO k = 1, nm +f(j, i) = f(j, i) + c(k, i) * d(j, k) +END DO +END DO +END DO +DO i = 1, ni +DO j = 1, nl +g(j, i) = 0.0 +DO k = 1, nj +g(j, i) = g(j, i) + e(k, i) * f(j, k) +END DO +END DO +END DO +END SUBROUTINE kernel_3mm +END PROGRAM THREE_MM \ No newline at end of file From 139268333114dfe1e9d13547223f971502b31a4c Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 12:33:17 +0100 Subject: [PATCH 051/132] Add support for power operation --- .../fortran/ast/nodes/expr/enums/BinaryOperatorKind.java | 4 ++++ .../src/pt/up/fe/specs/fortran/parser/FlangName.java | 1 + .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 1 + 3 files changed, 6 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 b7b8d21b..80335441 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 @@ -7,6 +7,7 @@ public enum BinaryOperatorKind implements StringProvider { SUBTRACT, MULTIPLY, DIVIDE, + POWER, LT, LE, GT, @@ -29,6 +30,9 @@ public String getOpString() { case DIVIDE -> { return "/"; } + case POWER -> { + return "**"; + } case EQ -> { return "=="; } 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 208f4643..51cd2914 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -114,6 +114,7 @@ public enum FlangName implements StringProvider { SUBTRACT, MULTIPLY, DIVIDE, + POWER, EQ("EQ"), NE("NE"), LT("LT"), 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 a99e3448..630f6a41 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -126,6 +126,7 @@ public class FlangToClass { 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.POWER, 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); From c9206da8a37e2ae0b9d8e8c784c60e90434baaa1 Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 12:40:11 +0100 Subject: [PATCH 052/132] Update weaver json --- .../specs/fortran/weaver/FortranWeaver.json | 2006 ++++++++++++++--- 1 file changed, 1660 insertions(+), 346 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 6d63dce5..b83301b7 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -629,6 +629,144 @@ }] }] }, + { + "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": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }] + }, { "type": "joinpoint", "name": "binaryOperator", @@ -1899,24 +2037,15 @@ }, { "type": "joinpoint", - "name": "executableStatement", - "extends": "statement" , - "tooltip": "Represents an executable statement", + "name": "entityDecl", + "extends": "fortranDecl" , "children": [ { "type": "attribute", "children": [ { - "type": "Boolean", - "name": "isFirst" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isLast" + "type": "String", + "name": "name" }] }, { @@ -2054,23 +2183,24 @@ }, { "type": "joinpoint", - "name": "execution", - "extends": "statementBlock" , + "name": "executableStatement", + "extends": "statement" , + "tooltip": "Represents an executable statement", "children": [ { "type": "attribute", "children": [ { - "type": "executableStatement[]", - "name": "executableStmts" + "type": "Boolean", + "name": "isFirst" }] }, { "type": "attribute", "children": [ { - "type": "statement[]", - "name": "stmts" + "type": "Boolean", + "name": "isLast" }] }, { @@ -2182,32 +2312,6 @@ "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": "Removes node associated to the joinpoint from the AST", @@ -2234,10 +2338,25 @@ }, { "type": "joinpoint", - "name": "expr", - "extends": "joinpoint" , - "tooltip": "Represents an expression", + "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", @@ -2347,6 +2466,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": "Removes node associated to the joinpoint from the AST", @@ -2373,50 +2518,31 @@ }, { "type": "joinpoint", - "name": "file", - "defaultAttr": "name", + "name": "expr", "extends": "joinpoint" , - "tooltip": "Represents a source file (e.g., .f90)", + "tooltip": "Represents an expression", "children": [ { "type": "attribute", - "tooltip": "the name of the folder", + "tooltip": "Returns an array with the children of the node", "children": [ { - "type": "String", - "name": "foldername" + "type": "joinpoint[]", + "name": "children" }] }, { "type": "attribute", - "tooltip": "the name of the file", + "tooltip": "String with the code represented by this node", "children": [ { "type": "String", - "name": "name" + "name": "code" }] }, { "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", + "tooltip": "true if the given node is a descendant of this node", "children": [ { "type": "Boolean", @@ -2531,48 +2657,15 @@ }, { "type": "joinpoint", - "name": "ifConstruct", - "extends": "executableStatement" , - "tooltip": "Represents the root of an if construct", + "name": "exprInitialization", + "extends": "initialization" , "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": "expr", + "name": "expr" }] }, { @@ -2710,39 +2803,27 @@ }, { "type": "joinpoint", - "name": "ifStatement", - "extends": "actionStatement" , + "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": "expr", - "name": "condition" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "actionStatement", - "name": "statement" - }] - }, - { - "type": "attribute", - "children": [ - { - "type": "Boolean", - "name": "isFirst" + "type": "String", + "name": "foldername" }] }, { "type": "attribute", + "tooltip": "the name of the file", "children": [ { - "type": "Boolean", - "name": "isLast" + "type": "String", + "name": "name" }] }, { @@ -2880,26 +2961,9 @@ }, { "type": "joinpoint", - "name": "ifThenBlock", + "name": "fortranDecl", "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", @@ -3035,16 +3099,48 @@ }, { "type": "joinpoint", - "name": "ifThenStatement", - "extends": "joinpoint" , - "tooltip": "Represents the header of an 'if then' block", + "name": "ifConstruct", + "extends": "executableStatement" , + "tooltip": "Represents the root of an if construct", "children": [ { "type": "attribute", "children": [ { - "type": "expr", - "name": "condition" + "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" }] }, { @@ -3182,15 +3278,39 @@ }, { "type": "joinpoint", - "name": "intLiteral", - "extends": "literal" , + "name": "ifStatement", + "extends": "actionStatement" , "children": [ { "type": "attribute", "children": [ { - "type": "String", - "name": "literal" + "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" }] }, { @@ -3328,16 +3448,24 @@ }, { "type": "joinpoint", - "name": "literal", - "extends": "expr" , - "tooltip": "Represents a literal", + "name": "ifThenBlock", + "extends": "joinpoint" , + "tooltip": "Represents the first block of an if construct", "children": [ { "type": "attribute", "children": [ { - "type": "String", - "name": "literal" + "type": "statementBlock", + "name": "body" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "ifThenStatement", + "name": "header" }] }, { @@ -3475,10 +3603,18 @@ }, { "type": "joinpoint", - "name": "loopControl", + "name": "ifThenStatement", "extends": "joinpoint" , - "tooltip": "Represents the loop control structure, with specialized subclasses for different loop kinds", + "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", @@ -3614,18 +3750,9 @@ }, { "type": "joinpoint", - "name": "mainProgram", - "extends": "programUnit" , + "name": "initialization", + "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", @@ -3761,16 +3888,15 @@ }, { "type": "joinpoint", - "name": "nameValue", - "extends": "joinpoint" , - "tooltip": "Represents a name/value pair in a compiler directive", + "name": "intLiteral", + "extends": "literal" , "children": [ { "type": "attribute", "children": [ { "type": "String", - "name": "name" + "name": "literal" }] }, { @@ -3908,34 +4034,9 @@ }, { "type": "joinpoint", - "name": "ompBlockConstruct", - "extends": "ompConstruct" , - "tooltip": "Represents an OpenMP block construct (such as parallel or task)", + "name": "keywordAttributeSpecifier", + "extends": "attributeSpecifier" , "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", @@ -4047,17 +4148,1089 @@ }, { "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "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": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "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": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "mainProgram", + "extends": "programUnit" , + "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", + "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": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "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": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "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" + }] + }, + { + "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", + "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": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "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": "Removes node associated to the joinpoint from the AST", + "children": [ + { + "type": "joinpoint", + "name": "detach" + }] + }, + { + "type": "action", + "tooltip": "Replaces this node with the given node", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" + }] + }] + }, + { + "type": "joinpoint", + "name": "ompConstruct", + "extends": "executableStatement" , + "tooltip": "Represents a generic OpenMP construct", + "children": [ + { + "type": "attribute", + "children": [ + { + "type": "ompClause[]", + "name": "clauses" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", "children": [ { - "type": "void", - "name": "setBody" + "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": "execution", - "name": "body", + "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", @@ -4111,9 +5284,9 @@ }, { "type": "joinpoint", - "name": "ompClause", - "extends": "joinpoint" , - "tooltip": "Represents an OpenMP clause", + "name": "ompDataSharingClause", + "extends": "ompClause" , + "tooltip": "Represents an OpenMP datasharing clause (public, private, ...)", "children": [ { "type": "attribute", @@ -4250,9 +5423,9 @@ }, { "type": "joinpoint", - "name": "ompConstruct", - "extends": "executableStatement" , - "tooltip": "Represents a generic OpenMP construct", + "name": "ompLoopConstruct", + "extends": "ompConstruct" , + "tooltip": "Represents an OpenMP loop construct (such as do or do parallel)", "children": [ { "type": "attribute", @@ -4387,6 +5560,19 @@ "name": "scopeNodes" }] }, + { + "type": "action", + "children": [ + { + "type": "void", + "name": "setLoop" + }, + { + "type": "doStatement", + "name": "loop", + "defaultValue": "" + }] + }, { "type": "action", "tooltip": "Sets the construct's clauses", @@ -4440,9 +5626,8 @@ }, { "type": "joinpoint", - "name": "ompDataSharingClause", + "name": "ompOrderedClause", "extends": "ompClause" , - "tooltip": "Represents an OpenMP datasharing clause (public, private, ...)", "children": [ { "type": "attribute", @@ -4579,34 +5764,147 @@ }, { "type": "joinpoint", - "name": "ompLoopConstruct", - "extends": "ompConstruct" , - "tooltip": "Represents an OpenMP loop construct (such as do or do parallel)", + "name": "ompReductionClause", + "extends": "ompClause" , "children": [ { "type": "attribute", + "tooltip": "Returns an array with the children of the node", "children": [ { - "type": "ompClause[]", - "name": "clauses" + "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": "Removes node associated to the joinpoint from the AST", "children": [ { - "type": "Boolean", - "name": "isFirst" + "type": "joinpoint", + "name": "detach" }] }, { - "type": "attribute", + "type": "action", + "tooltip": "Replaces this node with the given node", "children": [ { - "type": "Boolean", - "name": "isLast" + "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", @@ -4716,46 +6014,6 @@ "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": "Removes node associated to the joinpoint from the AST", @@ -4782,8 +6040,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", @@ -4920,9 +6179,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", @@ -5058,10 +6326,33 @@ }, { "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": "upper" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "dataRef", + "name": "var" + }] + }, { "type": "attribute", "tooltip": "Returns an array with the children of the node", @@ -5197,16 +6488,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" }] }, { @@ -5344,31 +6634,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": "upper" + "type": "specificationStatement[]", + "name": "specificationStmts" }] }, { "type": "attribute", "children": [ { - "type": "dataRef", - "name": "var" + "type": "statement[]", + "name": "stmts" }] }, { @@ -5480,6 +6762,20 @@ "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": "Removes node associated to the joinpoint from the AST", @@ -5506,15 +6802,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" }] }, { @@ -5652,15 +6956,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" }] }, { @@ -5772,20 +7085,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": "Removes node associated to the joinpoint from the AST", @@ -5812,24 +7111,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" }] }, { @@ -5967,15 +7257,15 @@ }, { "type": "joinpoint", - "name": "statementBlock", - "extends": "joinpoint" , + "name": "stringLiteral", + "extends": "literal" , "children": [ { "type": "attribute", "children": [ { - "type": "statement[]", - "name": "stmts" + "type": "String", + "name": "literal" }] }, { @@ -6113,15 +7403,16 @@ }, { "type": "joinpoint", - "name": "stringLiteral", - "extends": "literal" , + "name": "subroutine", + "extends": "programUnit" , "children": [ { "type": "attribute", + "tooltip": "Returns the unit's specification part", "children": [ { - "type": "String", - "name": "literal" + "type": "specification", + "name": "specification" }] }, { @@ -6259,16 +7550,39 @@ }, { "type": "joinpoint", - "name": "subroutine", - "extends": "programUnit" , + "name": "typeDeclarationStatement", + "extends": "specificationStatement" , "children": [ { "type": "attribute", - "tooltip": "Returns the unit's specification part", "children": [ { - "type": "specification", - "name": "specification" + "type": "attributeSpecifier[]", + "name": "attrs" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "entityDecl[]", + "name": "decls" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isFirst" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "Boolean", + "name": "isLast" }] }, { From 62eea964c21dc4dfcd494405f9785888a6c0dbf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Vaz=20Os=C3=B3rio?= Date: Fri, 8 May 2026 12:41:34 +0100 Subject: [PATCH 053/132] Update Joinpoints.ts --- Fortran-JS/src-api/Joinpoints.ts | 104 +++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/Fortran-JS/src-api/Joinpoints.ts b/Fortran-JS/src-api/Joinpoints.ts index 7ba2cf2b..80238a7e 100644 --- a/Fortran-JS/src-api/Joinpoints.ts +++ b/Fortran-JS/src-api/Joinpoints.ts @@ -11,13 +11,17 @@ import { type PrivateMapper = { "Joinpoint": typeof Joinpoint, + "AttributeSpecifier": typeof AttributeSpecifier, "ElseBlock": typeof ElseBlock, "ElseIfBlock": typeof ElseIfBlock, "ElseIfStatement": typeof ElseIfStatement, "Expr": typeof Expr, "FileJp": typeof FileJp, + "FortranDecl": typeof FortranDecl, "IfThenBlock": typeof IfThenBlock, "IfThenStatement": typeof IfThenStatement, + "Initialization": typeof Initialization, + "KeywordAttributeSpecifier": typeof KeywordAttributeSpecifier, "Literal": typeof Literal, "LoopControl": typeof LoopControl, "NameValue": typeof NameValue, @@ -25,6 +29,7 @@ type PrivateMapper = { "OmpDataSharingClause": typeof OmpDataSharingClause, "OmpOrderedClause": typeof OmpOrderedClause, "OmpReductionClause": typeof OmpReductionClause, + "ParameterKeyword": typeof ParameterKeyword, "Program": typeof Program, "ProgramUnit": typeof ProgramUnit, "RangeLoopControl": typeof RangeLoopControl, @@ -36,14 +41,18 @@ type PrivateMapper = { "UseStatement": typeof UseStatement, "BinaryOperator": typeof BinaryOperator, "Designator": typeof Designator, + "EntityDecl": typeof EntityDecl, "ExecutableStatement": typeof ExecutableStatement, "Execution": typeof Execution, + "ExprInitialization": typeof ExprInitialization, "IfConstruct": typeof IfConstruct, "IntLiteral": typeof IntLiteral, "MainProgram": typeof MainProgram, "OmpConstruct": typeof OmpConstruct, "OmpLoopConstruct": typeof OmpLoopConstruct, "Specification": typeof Specification, + "SpecificationStatement": typeof SpecificationStatement, + "TypeDeclarationStatement": typeof TypeDeclarationStatement, "ActionStatement": typeof ActionStatement, "AssignmentStatement": typeof AssignmentStatement, "CompilerDirective": typeof CompilerDirective, @@ -119,6 +128,15 @@ export class Joinpoint extends LaraJoinPoint { replaceWith(node: Joinpoint): Joinpoint { return wrapJoinPoint(this._javaObject.replaceWith(unwrapJoinPoint(node))); } } +export class AttributeSpecifier extends Joinpoint { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; +} + /** * Represents the optional 'else' block of an if construct */ @@ -191,6 +209,15 @@ export class FileJp extends Joinpoint { get name(): string { return wrapJoinPoint(this._javaObject.getName()) } } +export class FortranDecl extends Joinpoint { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; +} + /** * Represents the first block of an if construct */ @@ -218,6 +245,24 @@ export class IfThenStatement extends Joinpoint { get condition(): Expr { return wrapJoinPoint(this._javaObject.getCondition()) } } +export class Initialization extends Joinpoint { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; +} + +export class KeywordAttributeSpecifier extends AttributeSpecifier { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; +} + /** * Represents a literal */ @@ -298,6 +343,15 @@ export class OmpReductionClause extends OmpClause { }; } +export class ParameterKeyword extends KeywordAttributeSpecifier { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; +} + /** * Represents the complete program and is the top-most join point in the hierarchy */ @@ -433,6 +487,16 @@ export class Designator extends Expr { }; } +export class EntityDecl extends FortranDecl { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; + get name(): string { return wrapJoinPoint(this._javaObject.getName()) } +} + /** * Represents an executable statement */ @@ -457,6 +521,16 @@ export class Execution extends StatementBlock { insertEnd(stmt: ExecutableStatement): void { return wrapJoinPoint(this._javaObject.insertEnd(unwrapJoinPoint(stmt))); } } +export class ExprInitialization extends Initialization { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; + get expr(): Expr { return wrapJoinPoint(this._javaObject.getExpr()) } +} + /** * Represents the root of an if construct */ @@ -529,12 +603,33 @@ export class Specification extends StatementBlock { static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { name: null, }; + get specificationStmts(): SpecificationStatement[] { return wrapJoinPoint(this._javaObject.getSpecificationStmts()) } /** * Adds a UseStmt to a specification part. The statement is inserted at the beginning. */ addUseStmt(stmt: UseStatement): void { return wrapJoinPoint(this._javaObject.addUseStmt(unwrapJoinPoint(stmt))); } } +export class SpecificationStatement extends Statement { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; +} + +export class TypeDeclarationStatement extends SpecificationStatement { + /** + * @internal + */ + static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { + name: null, + }; + get attrs(): AttributeSpecifier[] { return wrapJoinPoint(this._javaObject.getAttrs()) } + get decls(): EntityDecl[] { return wrapJoinPoint(this._javaObject.getDecls()) } +} + /** * Represents an action statement */ @@ -642,13 +737,17 @@ export class ArraySubscriptExpr extends DataRef { const JoinpointMapper = { joinpoint: Joinpoint, + attributeSpecifier: AttributeSpecifier, elseBlock: ElseBlock, elseIfBlock: ElseIfBlock, elseIfStatement: ElseIfStatement, expr: Expr, file: FileJp, + fortranDecl: FortranDecl, ifThenBlock: IfThenBlock, ifThenStatement: IfThenStatement, + initialization: Initialization, + keywordAttributeSpecifier: KeywordAttributeSpecifier, literal: Literal, loopControl: LoopControl, nameValue: NameValue, @@ -656,6 +755,7 @@ const JoinpointMapper = { ompDataSharingClause: OmpDataSharingClause, ompOrderedClause: OmpOrderedClause, ompReductionClause: OmpReductionClause, + parameterKeyword: ParameterKeyword, program: Program, programUnit: ProgramUnit, rangeLoopControl: RangeLoopControl, @@ -667,14 +767,18 @@ const JoinpointMapper = { useStatement: UseStatement, binaryOperator: BinaryOperator, designator: Designator, + entityDecl: EntityDecl, executableStatement: ExecutableStatement, execution: Execution, + exprInitialization: ExprInitialization, ifConstruct: IfConstruct, intLiteral: IntLiteral, mainProgram: MainProgram, ompConstruct: OmpConstruct, ompLoopConstruct: OmpLoopConstruct, specification: Specification, + specificationStatement: SpecificationStatement, + typeDeclarationStatement: TypeDeclarationStatement, actionStatement: ActionStatement, assignmentStatement: AssignmentStatement, compilerDirective: CompilerDirective, From 8ae8a4989cef0630df0cfc24ebd3946cb7bc259d Mon Sep 17 00:00:00 2001 From: Onso37 <80353484+Onso37@users.noreply.github.com> Date: Fri, 8 May 2026 14:29:41 +0100 Subject: [PATCH 054/132] Add some spaces --- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java | 4 ++-- .../pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 ad800039..b065048d 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 @@ -32,9 +32,9 @@ public List getNames() { public String getCode() { StringBuilder code = new StringBuilder(); - code.append(FortranKeyword.COMMON.getKeyword(false)); + code.append(FortranKeyword.COMMON.getKeyword(false)).append(" "); - getName().ifPresent(name -> code.append("/ ").append(name.getCode()).append(" /")); + getName().ifPresent(name -> code.append("/ ").append(name.getCode()).append(" / ")); code.append(getNames() .stream() 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 5f737d05..6b7af22b 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 @@ -22,7 +22,7 @@ public List getNames() { public String getCode() { StringBuilder code = new StringBuilder(); - code.append(FortranKeyword.EXTERNAL.getKeyword(false)); + code.append(FortranKeyword.EXTERNAL.getKeyword(false)).append(" "); code.append(getNames() .stream() From 0558e61438d4350efbc335074eec9168d9c693cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Vaz=20Os=C3=B3rio?= Date: Thu, 14 May 2026 12:35:45 +0100 Subject: [PATCH 055/132] Add one change from Sergei's branch --- .../up/fe/specs/fortran/ast/nodes/program/Subroutine.java | 4 ++++ FortranWeaver/resources/fortran/weaverspecs/artifacts.xml | 5 +++++ .../src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json | 8 ++++++++ .../fe/specs/fortran/weaver/joinpoints/FSubroutine.java | 7 ++++++- 4 files changed, 23 insertions(+), 1 deletion(-) 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 a36e77ce..c901ab18 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 @@ -25,6 +25,10 @@ public List getDummyArgs() { return getChildrenOf(DummyArgumentDecl.class); } + public String getName() { + return get(SUBROUTINE_NAME); + } + @Override public String getCode() { diff --git a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml index f42505db..135ccde0 100644 --- a/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml +++ b/FortranWeaver/resources/fortran/weaverspecs/artifacts.xml @@ -126,6 +126,11 @@ + + + + + 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 b83301b7..2bf90b8d 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -7406,6 +7406,14 @@ "name": "subroutine", "extends": "programUnit" , "children": [ + { + "type": "attribute", + "children": [ + { + "type": "String", + "name": "moduleName" + }] + }, { "type": "attribute", "tooltip": "Returns the unit's specification part", 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 d61ae8d7..9d76803e 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 @@ -15,6 +15,11 @@ public FSubroutine(Subroutine subroutine) { @Override public FortranNode getNode() { - return null; + return subroutine; + } + + @Override + public String getModuleNameImpl() { + return subroutine.getName(); } } From 6edf4cf77c7cf296d7b019a9c6f085f7b88a7ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Vaz=20Os=C3=B3rio?= Date: Thu, 14 May 2026 12:36:18 +0100 Subject: [PATCH 056/132] Update Joinpoints.ts --- Fortran-JS/src-api/Joinpoints.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Fortran-JS/src-api/Joinpoints.ts b/Fortran-JS/src-api/Joinpoints.ts index 80238a7e..acc85b18 100644 --- a/Fortran-JS/src-api/Joinpoints.ts +++ b/Fortran-JS/src-api/Joinpoints.ts @@ -438,6 +438,7 @@ export class Subroutine extends ProgramUnit { static readonly _defaultAttributeInfo: {readonly map?: DefaultAttributeMap, readonly name: string | null, readonly type?: PrivateMapper, readonly jpMapper?: typeof JoinpointMapper} = { name: null, }; + get moduleName(): string { return wrapJoinPoint(this._javaObject.getModuleName()) } } export class UseStatement extends Statement { From 975fe47e8ce059bbcebe2758bace2b4ca2b1e615 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 28 May 2026 12:24:33 +0100 Subject: [PATCH 057/132] Add new Fujitsu test case --- .../fujitsu/0000/0000_0029.expected.f90 | 14 + .../fortran/parser/fujitsu/0000/0000_0029.f90 | 14 + .../parser/fujitsu/0000/0000_0029.json | 1520 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1560 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json 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 new file mode 100644 index 00000000..9914df3a --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.expected.f90 @@ -0,0 +1,14 @@ +REAL, DIMENSION(1:10) :: a +REAL, PARAMETER :: ans = 45. +DATA a/1., 2., 3., 4., 5., 6., 7., 8., 9., 10./ + +i = 2 * 2147483648_8 - 2147483648_8 - 2147483646_8 +a(1:10:i) = a(1:5) + +IF (sum(a) == ans) THEN + PRINT *, "OK" +ELSE + PRINT *, "NG", sum(a) +END IF + +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.f90 new file mode 100644 index 00000000..aa4a7744 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.f90 @@ -0,0 +1,14 @@ +real,dimension(1:10) :: a +real,parameter :: ans=45. +data a/1.,2.,3.,4.,5.,6.,7.,8.,9.,10./ + +i=2*2147483648_8-2147483648_8-2147483646_8 +a(1:10:i) = a(1:5) + +if (sum(a) == ans) then + print *,"OK" +else + print *,"NG",sum(a) +endif + +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json new file mode 100644 index 00000000..14a69a65 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json @@ -0,0 +1,1520 @@ +{ + "nodes": [ + { + "id": "0x56196c251f00-Program", + "ProgramUnit": [ + "0x56196c28d810-ProgramUnit" + ] + }, + { + "id": "0x56196c28d810-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x56196c285a10-MainProgram" + }, + { + "id": "0x56196c285a10-MainProgram", + "SpecificationPart": "0x56196c285ab0-SpecificationPart", + "ExecutionPart": "0x56196c285a98-ExecutionPart", + "Statement": "0x56196c285a10-Statement" + }, + { + "id": "0x56196c285ab0-SpecificationPart", + "ImplicitPart": "0x56196c285ac8-ImplicitPart", + "DeclarationConstruct": [ + "0x56196c25eda0-DeclarationConstruct", + "0x56196c25f110-DeclarationConstruct", + "0x56196c27ec00-DeclarationConstruct" + ] + }, + { + "id": "0x56196c285ac8-ImplicitPart" + }, + { + "id": "0x56196c25eda0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x56196c25eda0-SpecificationConstruct" + }, + { + "id": "0x56196c25eda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x56196c25eda0-Statement" + }, + { + "id": "0x56196c25eda0-Statement", + "statement": "0x56196c28e860-TypeDeclarationStmt", + "source": "real,dimension(1:10) :: a" + }, + { + "id": "0x56196c28e860-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56196c28e890-DeclarationTypeSpec", + "AttrSpec": [ + "0x56196c288250-AttrSpec" + ], + "EntityDecl": [ + "0x56196c27cb70-EntityDecl" + ] + }, + { + "id": "0x56196c28e890-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x56196c28e890-IntrinsicTypeSpec" + }, + { + "id": "0x56196c28e890-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x56196c28e890-Real" + }, + { + "id": "0x56196c28e890-Real" + }, + { + "id": "0x56196c288250-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x56196c288250-ArraySpec" + }, + { + "id": "0x56196c288250-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x56196c28d7b0-ExplicitShapeSpec" + ] + }, + { + "id": "0x56196c28d7b0-ExplicitShapeSpec", + "lower_bound": "0x56196c28d7b8-SpecificationExpr", + "upper_bound": "0x56196c28d7b0-SpecificationExpr" + }, + { + "id": "0x56196c28d7b8-SpecificationExpr", + "Expr": "0x56196c1f1790-Expr" + }, + { + "id": "0x56196c1f1790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c1f17b0-LiteralConstant" + }, + { + "id": "0x56196c1f17b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c1f17b0-IntLiteralConstant" + }, + { + "id": "0x56196c1f17b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56196c28d7b0-SpecificationExpr", + "Expr": "0x56196c27c780-Expr" + }, + { + "id": "0x56196c27c780-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27c7a0-LiteralConstant" + }, + { + "id": "0x56196c27c7a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27c7a0-IntLiteralConstant" + }, + { + "id": "0x56196c27c7a0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56196c27cb70-EntityDecl", + "Name": "0x56196c27cc28-Name" + }, + { + "id": "0x56196c27cc28-Name", + "source": "a" + }, + { + "id": "0x56196c25f110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x56196c25f110-SpecificationConstruct" + }, + { + "id": "0x56196c25f110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x56196c25f110-Statement" + }, + { + "id": "0x56196c25f110-Statement", + "statement": "0x56196c27d950-TypeDeclarationStmt", + "source": "real,parameter :: ans=45." + }, + { + "id": "0x56196c27d950-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56196c27d980-DeclarationTypeSpec", + "AttrSpec": [ + "0x56196c295850-AttrSpec" + ], + "EntityDecl": [ + "0x56196c2954a0-EntityDecl" + ] + }, + { + "id": "0x56196c27d980-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x56196c27d980-IntrinsicTypeSpec" + }, + { + "id": "0x56196c27d980-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x56196c27d980-Real" + }, + { + "id": "0x56196c27d980-Real" + }, + { + "id": "0x56196c295850-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x56196c295850-Parameter" + }, + { + "id": "0x56196c295850-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x56196c2954a0-EntityDecl", + "Name": "0x56196c295558-Name", + "Initialization": "0x56196c2954a0-Initialization" + }, + { + "id": "0x56196c295558-Name", + "source": "ans" + }, + { + "id": "0x56196c2954a0-Initialization", + "variantKey": "Expr", + "Expr": "0x56196c2953b0-Expr" + }, + { + "id": "0x56196c2953b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c2953d0-LiteralConstant" + }, + { + "id": "0x56196c2953d0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c2953d0-RealLiteralConstant" + }, + { + "id": "0x56196c2953d0-RealLiteralConstant", + "real": "0x56196c2953d0-Real" + }, + { + "id": "0x56196c2953d0-Real", + "source": "45." + }, + { + "id": "0x56196c27ec00-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x56196c27ec00-Statement" + }, + { + "id": "0x56196c27ec00-Statement", + "statement": "0x56196c28d700-DataStmt", + "source": "data a/1.,2.,3.,4.,5.,6.,7.,8.,9.,10./" + }, + { + "id": "0x56196c28d700-DataStmt", + "DataStmtSet": [ + "0x56196c28e7e0-DataStmtSet" + ] + }, + { + "id": "0x56196c28e7e0-DataStmtSet", + "DataStmtObject": [ + "0x56196c27d720-DataStmtObject" + ], + "DataStmtValue": [ + "0x56196c27e760-DataStmtValue", + "0x56196c28e220-DataStmtValue", + "0x56196c28e4a0-DataStmtValue", + "0x56196c27cf20-DataStmtValue", + "0x56196c27d210-DataStmtValue", + "0x56196c27da60-DataStmtValue", + "0x56196c27dd50-DataStmtValue", + "0x56196c27e040-DataStmtValue", + "0x56196c27e330-DataStmtValue", + "0x56196c27e620-DataStmtValue" + ] + }, + { + "id": "0x56196c27d720-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x56196c28d7d0-Variable" + }, + { + "id": "0x56196c28d7d0-Variable", + "variantKey": "Designator", + "Designator": "0x56196c295680-Designator" + }, + { + "id": "0x56196c295680-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c295690-DataRef" + }, + { + "id": "0x56196c295690-DataRef", + "variantKey": "Name", + "Name": "0x56196c295690-Name" + }, + { + "id": "0x56196c295690-Name", + "source": "a" + }, + { + "id": "0x56196c27e760-DataStmtValue", + "DataStmtConstant": "0x56196c27e768-DataStmtConstant" + }, + { + "id": "0x56196c27e768-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27e788-LiteralConstant" + }, + { + "id": "0x56196c27e788-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27e788-RealLiteralConstant" + }, + { + "id": "0x56196c27e788-RealLiteralConstant", + "real": "0x56196c27e788-Real" + }, + { + "id": "0x56196c27e788-Real", + "source": "1." + }, + { + "id": "0x56196c28e220-DataStmtValue", + "DataStmtConstant": "0x56196c28e228-DataStmtConstant" + }, + { + "id": "0x56196c28e228-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c28e248-LiteralConstant" + }, + { + "id": "0x56196c28e248-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c28e248-RealLiteralConstant" + }, + { + "id": "0x56196c28e248-RealLiteralConstant", + "real": "0x56196c28e248-Real" + }, + { + "id": "0x56196c28e248-Real", + "source": "2." + }, + { + "id": "0x56196c28e4a0-DataStmtValue", + "DataStmtConstant": "0x56196c28e4a8-DataStmtConstant" + }, + { + "id": "0x56196c28e4a8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c28e4c8-LiteralConstant" + }, + { + "id": "0x56196c28e4c8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c28e4c8-RealLiteralConstant" + }, + { + "id": "0x56196c28e4c8-RealLiteralConstant", + "real": "0x56196c28e4c8-Real" + }, + { + "id": "0x56196c28e4c8-Real", + "source": "3." + }, + { + "id": "0x56196c27cf20-DataStmtValue", + "DataStmtConstant": "0x56196c27cf28-DataStmtConstant" + }, + { + "id": "0x56196c27cf28-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27cf48-LiteralConstant" + }, + { + "id": "0x56196c27cf48-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27cf48-RealLiteralConstant" + }, + { + "id": "0x56196c27cf48-RealLiteralConstant", + "real": "0x56196c27cf48-Real" + }, + { + "id": "0x56196c27cf48-Real", + "source": "4." + }, + { + "id": "0x56196c27d210-DataStmtValue", + "DataStmtConstant": "0x56196c27d218-DataStmtConstant" + }, + { + "id": "0x56196c27d218-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27d238-LiteralConstant" + }, + { + "id": "0x56196c27d238-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27d238-RealLiteralConstant" + }, + { + "id": "0x56196c27d238-RealLiteralConstant", + "real": "0x56196c27d238-Real" + }, + { + "id": "0x56196c27d238-Real", + "source": "5." + }, + { + "id": "0x56196c27da60-DataStmtValue", + "DataStmtConstant": "0x56196c27da68-DataStmtConstant" + }, + { + "id": "0x56196c27da68-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27da88-LiteralConstant" + }, + { + "id": "0x56196c27da88-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27da88-RealLiteralConstant" + }, + { + "id": "0x56196c27da88-RealLiteralConstant", + "real": "0x56196c27da88-Real" + }, + { + "id": "0x56196c27da88-Real", + "source": "6." + }, + { + "id": "0x56196c27dd50-DataStmtValue", + "DataStmtConstant": "0x56196c27dd58-DataStmtConstant" + }, + { + "id": "0x56196c27dd58-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27dd78-LiteralConstant" + }, + { + "id": "0x56196c27dd78-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27dd78-RealLiteralConstant" + }, + { + "id": "0x56196c27dd78-RealLiteralConstant", + "real": "0x56196c27dd78-Real" + }, + { + "id": "0x56196c27dd78-Real", + "source": "7." + }, + { + "id": "0x56196c27e040-DataStmtValue", + "DataStmtConstant": "0x56196c27e048-DataStmtConstant" + }, + { + "id": "0x56196c27e048-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27e068-LiteralConstant" + }, + { + "id": "0x56196c27e068-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27e068-RealLiteralConstant" + }, + { + "id": "0x56196c27e068-RealLiteralConstant", + "real": "0x56196c27e068-Real" + }, + { + "id": "0x56196c27e068-Real", + "source": "8." + }, + { + "id": "0x56196c27e330-DataStmtValue", + "DataStmtConstant": "0x56196c27e338-DataStmtConstant" + }, + { + "id": "0x56196c27e338-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27e358-LiteralConstant" + }, + { + "id": "0x56196c27e358-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27e358-RealLiteralConstant" + }, + { + "id": "0x56196c27e358-RealLiteralConstant", + "real": "0x56196c27e358-Real" + }, + { + "id": "0x56196c27e358-Real", + "source": "9." + }, + { + "id": "0x56196c27e620-DataStmtValue", + "DataStmtConstant": "0x56196c27e628-DataStmtConstant" + }, + { + "id": "0x56196c27e628-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27e648-LiteralConstant" + }, + { + "id": "0x56196c27e648-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x56196c27e648-RealLiteralConstant" + }, + { + "id": "0x56196c27e648-RealLiteralConstant", + "real": "0x56196c27e648-Real" + }, + { + "id": "0x56196c27e648-Real", + "source": "10." + }, + { + "id": "0x56196c285a98-ExecutionPart", + "ExecutionPartConstruct": [ + "0x56196c27eac0-ExecutionPartConstruct", + "0x56196c27fd30-ExecutionPartConstruct", + "0x56196c280780-ExecutionPartConstruct" + ] + }, + { + "id": "0x56196c285a98-ExecutionPartConstruct" + }, + { + "id": "0x56196c27eac0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56196c27eac0-ExecutableConstruct" + }, + { + "id": "0x56196c27eac0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56196c27eac0-Statement" + }, + { + "id": "0x56196c27eac0-Statement", + "statement": "0x56196c27ead0-ActionStmt", + "source": "i=2*2147483648_8-2147483648_8-2147483646_8" + }, + { + "id": "0x56196c27ead0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56196c25fcf0-AssignmentStmt" + }, + { + "id": "0x56196c25fcf0-AssignmentStmt", + "Variable": "0x56196c25fdd0-Variable", + "Expr": "0x56196c25fd00-Expr" + }, + { + "id": "0x56196c25fdd0-Variable", + "variantKey": "Designator", + "Designator": "0x56196c27d340-Designator" + }, + { + "id": "0x56196c27d340-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c27d350-DataRef" + }, + { + "id": "0x56196c27d350-DataRef", + "variantKey": "Name", + "Name": "0x56196c27d350-Name" + }, + { + "id": "0x56196c27d350-Name", + "source": "i" + }, + { + "id": "0x56196c25fd00-Expr", + "variantKey": "Subtract", + "Subtract": "0x56196c25fd20-Subtract" + }, + { + "id": "0x56196c25fd20-Subtract", + "left": "0x56196c27d580-Expr", + "right": "0x56196c27cd80-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x56196c27d580-Expr", + "variantKey": "Subtract", + "Subtract": "0x56196c27d5a0-Subtract" + }, + { + "id": "0x56196c27d5a0-Subtract", + "left": "0x56196c27f4d0-Expr", + "right": "0x56196c27f3f0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x56196c27f4d0-Expr", + "variantKey": "Multiply", + "Multiply": "0x56196c27f4f0-Multiply" + }, + { + "id": "0x56196c27f4f0-Multiply", + "left": "0x56196c27edb0-Expr", + "right": "0x56196c27ecd0-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x56196c27edb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27edd0-LiteralConstant" + }, + { + "id": "0x56196c27edd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27edd0-IntLiteralConstant" + }, + { + "id": "0x56196c27edd0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x56196c27ecd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27ecf0-LiteralConstant" + }, + { + "id": "0x56196c27ecf0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27ecf0-IntLiteralConstant" + }, + { + "id": "0x56196c27ecf0-IntLiteralConstant", + "CharBlock": "2147483648", + "KindParam": "0x56196c27ecf0-KindParam" + }, + { + "id": "0x56196c27ecf0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x56196c27f3f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27f410-LiteralConstant" + }, + { + "id": "0x56196c27f410-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27f410-IntLiteralConstant" + }, + { + "id": "0x56196c27f410-IntLiteralConstant", + "CharBlock": "2147483648", + "KindParam": "0x56196c27f410-KindParam" + }, + { + "id": "0x56196c27f410-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x56196c27cd80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27cda0-LiteralConstant" + }, + { + "id": "0x56196c27cda0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27cda0-IntLiteralConstant" + }, + { + "id": "0x56196c27cda0-IntLiteralConstant", + "CharBlock": "2147483646", + "KindParam": "0x56196c27cda0-KindParam" + }, + { + "id": "0x56196c27cda0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x56196c27fd30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56196c27fd30-ExecutableConstruct" + }, + { + "id": "0x56196c27fd30-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56196c27fd30-Statement" + }, + { + "id": "0x56196c27fd30-Statement", + "statement": "0x56196c27fd40-ActionStmt", + "source": "a(1:10:i) = a(1:5)" + }, + { + "id": "0x56196c27fd40-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x56196c27fb40-AssignmentStmt" + }, + { + "id": "0x56196c27fb40-AssignmentStmt", + "Variable": "0x56196c27fc20-Variable", + "Expr": "0x56196c27fb50-Expr" + }, + { + "id": "0x56196c27fc20-Variable", + "variantKey": "Designator", + "Designator": "0x56196c27db90-Designator" + }, + { + "id": "0x56196c27db90-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c27dba0-DataRef" + }, + { + "id": "0x56196c27dba0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56196c28c4b0-ArrayElement" + }, + { + "id": "0x56196c28c4b0-ArrayElement", + "base": "0x56196c28c4b0-DataRef", + "subscripts": [ + "0x56196c288cc0-SectionSubscript" + ] + }, + { + "id": "0x56196c28c4b0-DataRef", + "variantKey": "Name", + "Name": "0x56196c28c4b0-Name" + }, + { + "id": "0x56196c28c4b0-Name", + "source": "a" + }, + { + "id": "0x56196c288cc0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56196c288cc0-SubscriptTriplet" + }, + { + "id": "0x56196c288cc0-SubscriptTriplet", + "Expr": "0x56196c27f050-Expr" + }, + { + "id": "0x56196c27ee90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27eeb0-LiteralConstant" + }, + { + "id": "0x56196c27eeb0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27eeb0-IntLiteralConstant" + }, + { + "id": "0x56196c27eeb0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56196c27ef70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27ef90-LiteralConstant" + }, + { + "id": "0x56196c27ef90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27ef90-IntLiteralConstant" + }, + { + "id": "0x56196c27ef90-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56196c27f050-Expr", + "variantKey": "Designator", + "Designator": "0x56196c2504d0-Designator" + }, + { + "id": "0x56196c2504d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c2504e0-DataRef" + }, + { + "id": "0x56196c2504e0-DataRef", + "variantKey": "Name", + "Name": "0x56196c2504e0-Name" + }, + { + "id": "0x56196c2504e0-Name", + "source": "i" + }, + { + "id": "0x56196c27fb50-Expr", + "variantKey": "Designator", + "Designator": "0x56196c27fc50-Designator" + }, + { + "id": "0x56196c27fc50-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c27fc60-DataRef" + }, + { + "id": "0x56196c27fc60-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56196c28cb90-ArrayElement" + }, + { + "id": "0x56196c28cb90-ArrayElement", + "base": "0x56196c28cb90-DataRef", + "subscripts": [ + "0x56196c288ea0-SectionSubscript" + ] + }, + { + "id": "0x56196c28cb90-DataRef", + "variantKey": "Name", + "Name": "0x56196c28cb90-Name" + }, + { + "id": "0x56196c28cb90-Name", + "source": "a" + }, + { + "id": "0x56196c288ea0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56196c288ea0-SubscriptTriplet" + }, + { + "id": "0x56196c288ea0-SubscriptTriplet", + "Expr": "0x56196c27fa00-Expr" + }, + { + "id": "0x56196c27f920-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27f940-LiteralConstant" + }, + { + "id": "0x56196c27f940-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27f940-IntLiteralConstant" + }, + { + "id": "0x56196c27f940-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56196c27fa00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c27fa20-LiteralConstant" + }, + { + "id": "0x56196c27fa20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56196c27fa20-IntLiteralConstant" + }, + { + "id": "0x56196c27fa20-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x56196c280780-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56196c280780-ExecutableConstruct" + }, + { + "id": "0x56196c280780-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x56196c27f6e0-IfConstruct" + }, + { + "id": "0x56196c27f6e0-IfConstruct", + "Statement": "0x56196c27f7b0-Statement", + "ExecutionPartConstruct": [ + "0x56196c27e180-ExecutionPartConstruct" + ], + "ElseBlock": "0x56196c27f720-ElseBlock", + "Statement": "0x56196c27f6e0-Statement" + }, + { + "id": "0x56196c27f7b0-Statement", + "statement": "0x56196c27f7c0-IfThenStmt", + "source": "if(sum(a) == ans) then" + }, + { + "id": "0x56196c27f7c0-IfThenStmt", + "Expr": "0x56196c280130-Expr" + }, + { + "id": "0x56196c280130-Expr", + "variantKey": "EQ", + "EQ": "0x56196c280150-EQ" + }, + { + "id": "0x56196c280150-EQ", + "left": "0x56196c27fd80-Expr", + "right": "0x56196c280050-Expr", + "op": "EQ" + }, + { + "id": "0x56196c27fd80-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x56196c27e5a0-FunctionReference" + }, + { + "id": "0x56196c27e5a0-FunctionReference", + "Call": "0x56196c27e5a0-Call" + }, + { + "id": "0x56196c27e5a0-Call", + "ProcedureDesignator": "0x56196c27e5b8-ProcedureDesignator", + "ActualArgSpec": [ + "0x56196c280220-ActualArgSpec" + ] + }, + { + "id": "0x56196c27e5b8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x56196c27e5b8-Name" + }, + { + "id": "0x56196c27e5b8-Name", + "source": "sum" + }, + { + "id": "0x56196c280220-ActualArgSpec", + "ActualArg": "0x56196c280220-ActualArg" + }, + { + "id": "0x56196c280220-ActualArg", + "variantKey": "Expr", + "Expr": "0x56196c27ff70-Expr" + }, + { + "id": "0x56196c27ff70-Expr", + "variantKey": "Designator", + "Designator": "0x56196c280550-Designator" + }, + { + "id": "0x56196c280550-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c280560-DataRef" + }, + { + "id": "0x56196c280560-DataRef", + "variantKey": "Name", + "Name": "0x56196c280560-Name" + }, + { + "id": "0x56196c280560-Name", + "source": "a" + }, + { + "id": "0x56196c280050-Expr", + "variantKey": "Designator", + "Designator": "0x56196c28e350-Designator" + }, + { + "id": "0x56196c28e350-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c28e360-DataRef" + }, + { + "id": "0x56196c28e360-DataRef", + "variantKey": "Name", + "Name": "0x56196c28e360-Name" + }, + { + "id": "0x56196c28e360-Name", + "source": "ans" + }, + { + "id": "0x56196c27f798-ExecutionPartConstruct" + }, + { + "id": "0x56196c27e180-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56196c27e180-ExecutableConstruct" + }, + { + "id": "0x56196c27e180-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56196c27e180-Statement" + }, + { + "id": "0x56196c27e180-Statement", + "statement": "0x56196c27e190-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x56196c27e190-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56196c2824c0-PrintStmt" + }, + { + "id": "0x56196c2824c0-PrintStmt", + "Format": "0x56196c2824d8-Format", + "OutputItem": [ + "0x56196c2823e0-OutputItem" + ] + }, + { + "id": "0x56196c2824d8-Format", + "variantKey": "Star", + "Star": "0x56196c2824d8-Star" + }, + { + "id": "0x56196c2824d8-Star" + }, + { + "id": "0x56196c2823e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56196c2823e0-Expr" + }, + { + "id": "0x56196c2823e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c282400-LiteralConstant" + }, + { + "id": "0x56196c282400-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56196c282400-CharLiteralConstant" + }, + { + "id": "0x56196c282400-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x56196c27f720-ElseBlock", + "Statement": "0x56196c27f738-Statement", + "ExecutionPartConstruct": [ + "0x56196c282990-ExecutionPartConstruct" + ] + }, + { + "id": "0x56196c27f738-Statement", + "statement": "0x56196c27f748-ElseStmt", + "source": "else" + }, + { + "id": "0x56196c27f748-ElseStmt" + }, + { + "id": "0x56196c27f720-ExecutionPartConstruct" + }, + { + "id": "0x56196c282990-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56196c282990-ExecutableConstruct" + }, + { + "id": "0x56196c282990-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56196c282990-Statement" + }, + { + "id": "0x56196c282990-Statement", + "statement": "0x56196c2829a0-ActionStmt", + "source": "print *,\"NG\",sum(a)" + }, + { + "id": "0x56196c2829a0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56196c282880-PrintStmt" + }, + { + "id": "0x56196c282880-PrintStmt", + "Format": "0x56196c282898-Format", + "OutputItem": [ + "0x56196c2827a0-OutputItem", + "0x56196c2826b0-OutputItem" + ] + }, + { + "id": "0x56196c282898-Format", + "variantKey": "Star", + "Star": "0x56196c282898-Star" + }, + { + "id": "0x56196c282898-Star" + }, + { + "id": "0x56196c2827a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56196c2827a0-Expr" + }, + { + "id": "0x56196c2827a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56196c2827c0-LiteralConstant" + }, + { + "id": "0x56196c2827c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x56196c2827c0-CharLiteralConstant" + }, + { + "id": "0x56196c2827c0-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x56196c2826b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56196c2826b0-Expr" + }, + { + "id": "0x56196c2826b0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x56196c27dee0-FunctionReference" + }, + { + "id": "0x56196c27dee0-FunctionReference", + "Call": "0x56196c27dee0-Call" + }, + { + "id": "0x56196c27dee0-Call", + "ProcedureDesignator": "0x56196c27def8-ProcedureDesignator", + "ActualArgSpec": [ + "0x56196c27fe70-ActualArgSpec" + ] + }, + { + "id": "0x56196c27def8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x56196c27def8-Name" + }, + { + "id": "0x56196c27def8-Name", + "source": "sum" + }, + { + "id": "0x56196c27fe70-ActualArgSpec", + "ActualArg": "0x56196c27fe70-ActualArg" + }, + { + "id": "0x56196c27fe70-ActualArg", + "variantKey": "Expr", + "Expr": "0x56196c2825c0-Expr" + }, + { + "id": "0x56196c2825c0-Expr", + "variantKey": "Designator", + "Designator": "0x56196c27e890-Designator" + }, + { + "id": "0x56196c27e890-Designator", + "variantKey": "DataRef", + "DataRef": "0x56196c27e8a0-DataRef" + }, + { + "id": "0x56196c27e8a0-DataRef", + "variantKey": "Name", + "Name": "0x56196c27e8a0-Name" + }, + { + "id": "0x56196c27e8a0-Name", + "source": "a" + }, + { + "id": "0x56196c27f6e0-Statement", + "statement": "0x56196c27f6f0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x56196c27f6f0-EndIfStmt" + }, + { + "id": "0x56196c285a10-Statement", + "statement": "0x56196c285a20-EndProgramStmt", + "source": "end" + }, + { + "id": "0x56196c285a20-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 9f22c1d8..9473287b 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -592,4 +592,16 @@ void testFujitsu0000_0024Native() { testNative("fujitsu/0000/0000_0024.f90"); } } + + @Test + void testFujitsu0000_0029() { + testJson("fujitsu/0000/0000_0029.json"); + } + + @Test + void testFujitsu0000_0029Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0029.f90"); + } + } } From 02c4309b38c38d55454fc4a41bea9f3ae47a5fb3 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 28 May 2026 14:34:12 +0100 Subject: [PATCH 058/132] Add tests for data statemet --- .../parser/stmt/data_stmt.expected.f90 | 3 + .../fortran/parser/stmt/data_stmt.f90 | 3 + .../fortran/parser/stmt/data_stmt.json | 593 ++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 611 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/stmt/data_stmt.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/data_stmt.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/data_stmt.json diff --git a/FortranParser/resources-test/fortran/parser/stmt/data_stmt.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/data_stmt.expected.f90 new file mode 100644 index 00000000..1f292ab6 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/data_stmt.expected.f90 @@ -0,0 +1,3 @@ +PROGRAM DATA_STMT + DATA i, j, k / 1, 2, 3 / +END PROGRAM DATA_STMT diff --git a/FortranParser/resources-test/fortran/parser/stmt/data_stmt.f90 b/FortranParser/resources-test/fortran/parser/stmt/data_stmt.f90 new file mode 100644 index 00000000..832d7f6a --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/data_stmt.f90 @@ -0,0 +1,3 @@ +program data_stmt + data i, j, k / 1, 2, 3 / +end program data_stmt \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/data_stmt.json b/FortranParser/resources-test/fortran/parser/stmt/data_stmt.json new file mode 100644 index 00000000..fa3ef1f6 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/data_stmt.json @@ -0,0 +1,593 @@ +{ + "nodes": [ + { + "id": "0x55a3af0f4f00-Program", + "ProgramUnit": [ + "0x55a3af129cd0-ProgramUnit" + ] + }, + { + "id": "0x55a3af129cd0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55a3af1285c0-MainProgram" + }, + { + "id": "0x55a3af1285c0-MainProgram", + "Statement": "0x55a3af128708-Statement", + "SpecificationPart": "0x55a3af128660-SpecificationPart", + "ExecutionPart": "0x55a3af128648-ExecutionPart", + "Statement": "0x55a3af1285c0-Statement" + }, + { + "id": "0x55a3af128708-Statement", + "statement": "0x55a3af128718-ProgramStmt", + "source": "program DATA_STMT" + }, + { + "id": "0x55a3af128718-ProgramStmt", + "Name": "0x55a3af128718-Name" + }, + { + "id": "0x55a3af128718-Name", + "source": "DATA_STMT" + }, + { + "id": "0x55a3af128660-SpecificationPart", + "ImplicitPart": "0x55a3af128678-ImplicitPart", + "DeclarationConstruct": [ + "0x55a3af135300-DeclarationConstruct" + ] + }, + { + "id": "0x55a3af128678-ImplicitPart" + }, + { + "id": "0x55a3af135300-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x55a3af135300-Statement" + }, + { + "id": "0x55a3af135300-Statement", + "statement": "0x55a3af136950-DataStmt", + "source": "data i, j, k / 1, 2, 3 /" + }, + { + "id": "0x55a3af136950-DataStmt", + "DataStmtSet": [ + "0x55a3af125920-DataStmtSet" + ] + }, + { + "id": "0x55a3af125920-DataStmtSet", + "DataStmtObject": [ + "0x55a3af131ea0-DataStmtObject", + "0x55a3af133b80-DataStmtObject", + "0x55a3af1320e0-DataStmtObject" + ], + "DataStmtValue": [ + "0x55a3af134e60-DataStmtValue", + "0x55a3af134a30-DataStmtValue", + "0x55a3af134d20-DataStmtValue" + ] + }, + { + "id": "0x55a3af131ea0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x55a3af129c10-Variable" + }, + { + "id": "0x55a3af129c10-Variable", + "variantKey": "Designator", + "Designator": "0x55a3af102100-Designator" + }, + { + "id": "0x55a3af102100-Designator", + "variantKey": "DataRef", + "DataRef": "0x55a3af102110-DataRef" + }, + { + "id": "0x55a3af102110-DataRef", + "variantKey": "Name", + "Name": "0x55a3af102110-Name" + }, + { + "id": "0x55a3af102110-Name", + "source": "i" + }, + { + "id": "0x55a3af133b80-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x55a3af129c40-Variable" + }, + { + "id": "0x55a3af129c40-Variable", + "variantKey": "Designator", + "Designator": "0x55a3af1342a0-Designator" + }, + { + "id": "0x55a3af1342a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55a3af1342b0-DataRef" + }, + { + "id": "0x55a3af1342b0-DataRef", + "variantKey": "Name", + "Name": "0x55a3af1342b0-Name" + }, + { + "id": "0x55a3af1342b0-Name", + "source": "j" + }, + { + "id": "0x55a3af1320e0-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x55a3af129c70-Variable" + }, + { + "id": "0x55a3af129c70-Variable", + "variantKey": "Designator", + "Designator": "0x55a3af1345f0-Designator" + }, + { + "id": "0x55a3af1345f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55a3af134600-DataRef" + }, + { + "id": "0x55a3af134600-DataRef", + "variantKey": "Name", + "Name": "0x55a3af134600-Name" + }, + { + "id": "0x55a3af134600-Name", + "source": "k" + }, + { + "id": "0x55a3af134e60-DataStmtValue", + "DataStmtConstant": "0x55a3af134e68-DataStmtConstant" + }, + { + "id": "0x55a3af134e68-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55a3af134e88-LiteralConstant" + }, + { + "id": "0x55a3af134e88-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55a3af134e88-IntLiteralConstant" + }, + { + "id": "0x55a3af134e88-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55a3af134a30-DataStmtValue", + "DataStmtConstant": "0x55a3af134a38-DataStmtConstant" + }, + { + "id": "0x55a3af134a38-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55a3af134a58-LiteralConstant" + }, + { + "id": "0x55a3af134a58-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55a3af134a58-IntLiteralConstant" + }, + { + "id": "0x55a3af134a58-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55a3af134d20-DataStmtValue", + "DataStmtConstant": "0x55a3af134d28-DataStmtConstant" + }, + { + "id": "0x55a3af134d28-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55a3af134d48-LiteralConstant" + }, + { + "id": "0x55a3af134d48-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55a3af134d48-IntLiteralConstant" + }, + { + "id": "0x55a3af134d48-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x55a3af128648-ExecutionPart" + }, + { + "id": "0x55a3af128648-list" + }, + { + "id": "0x55a3af1285c0-Statement", + "statement": "0x55a3af1285d0-EndProgramStmt", + "source": "end program DATA_STMT" + }, + { + "id": "0x55a3af1285d0-EndProgramStmt", + "Name": "0x55a3af1285d0-Name" + }, + { + "id": "0x55a3af1285d0-Name", + "source": "DATA_STMT" + } + ], + "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 9473287b..969a5292 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -484,6 +484,18 @@ void testStopNative() { } } + @Test + void testDataStmt() { + testJson("stmt/data_stmt.json"); + } + + @Test + void testDataStmtNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/data_stmt.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From 7d978e0ac12065bf4df975294815fae34b9a74de Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 4 Jun 2026 19:10:45 +0100 Subject: [PATCH 059/132] Add nodes for data statements --- .../ast/nodes/stmt/datastmt/DataStmt.java | 18 ++++++++++++++ .../nodes/stmt/datastmt/DataStmtObject.java | 12 ++++++++++ .../ast/nodes/stmt/datastmt/DataStmtSet.java | 22 +++++++++++++++++ .../nodes/stmt/datastmt/DataStmtVariable.java | 24 +++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtVariable.java 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 new file mode 100644 index 00000000..13f486d1 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java @@ -0,0 +1,18 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.stmt.DeclarationStmt; + +import java.util.Collection; +import java.util.List; + +public class DataStmt extends DeclarationStmt { + public DataStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getDataSets() { + return getChildren(DataStmtSet.class); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java new file mode 100644 index 00000000..238b3062 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java @@ -0,0 +1,12 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt; + +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; + +public abstract class DataStmtObject extends FortranNode { + public DataStmtObject(DataStore data, Collection children) { + super(data, children); + } +} 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 new file mode 100644 index 00000000..f305e185 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java @@ -0,0 +1,22 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt; + +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; + +public class DataStmtSet extends FortranNode { + public DataStmtSet(DataStore data, Collection children) { + super(data, children); + } + + public List getObjects() { + return getChildrenOf(DataStmtObject.class); + } + + public List getValues() { + return getChildrenOf(DataStmtValue.class); + } +} 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 new file mode 100644 index 00000000..7adb38ec --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtVariable.java @@ -0,0 +1,24 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt; + +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 DataStmtVariable extends DataStmtObject { + public DataStmtVariable(DataStore data, Collection children) { + super(data, children); + } + + public DataRef getVariable() { + return getChild(DataRef.class); + } + + @Override + public String getCode() { + var variable = getVariable(); + + return variable.getCode(); + } +} From a04f207c3749271092cb56e71b8b19938c4eb9a5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 4 Jun 2026 19:17:46 +0100 Subject: [PATCH 060/132] Add processing for data statements --- .../nodes/stmt/datastmt/DataStmtObject.java | 1 + .../up/fe/specs/fortran/parser/FlangName.java | 3 ++ .../fe/specs/fortran/parser/FlangToClass.java | 5 +++ .../fortran/parser/processors/Nodes.java | 5 +++ .../parser/processors/StmtProcessors.java | 45 ++++++++++++++++++- 5 files changed, 57 insertions(+), 2 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java index 238b3062..ffaad817 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java @@ -5,6 +5,7 @@ import java.util.Collection; +// TODO(Process-ing): Support rule data-stmt-object -> data-implied-do public abstract class DataStmtObject extends FortranNode { public DataStmtObject(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 544d034d..6f38151a 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -26,6 +26,7 @@ public enum FlangName implements StringProvider { /// DECLs ENTITY_DECL, DUMMY_ARG, + DATA_STMT_OBJECT, DATA_STMT_VALUE, DATA_STMT_REPEAT, DATA_STMT_CONSTANT, @@ -59,6 +60,8 @@ public enum FlangName implements StringProvider { CONTINUE_STMT, PARAMETER_STMT, STOP_STMT, + DATA_STMT, + DATA_STMT_SET, /// 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 51f33a87..9512ed77 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -20,6 +20,8 @@ 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.*; +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.selectcase.CaseBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; @@ -90,6 +92,9 @@ public class FlangToClass { 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); + /// Variables //NAME_TO_CLASS.put(FlangName.DATA_REF, DataRef.class); NAME_TO_CLASS.put(FlangName.NAME, 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 14e7ecef..a857ac13 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.ArraySpecification; 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; +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.selectcase.CaseBlock; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.CaseConstruct; @@ -101,6 +103,9 @@ public Nodes(FortranJsonResult data) { processors.put(ParameterStmt.class, s::parameterStmt); processors.put(NamedConstantDef.class, s::namedConstantDef); + processors.put(DataStmt.class, s::dataStmt); + processors.put(DataStmtSet.class, s::dataStmtSet); + var e = new ExprProcessors(data); processors.put(StringLiteral.class, e::stringLiteral); processors.put(IntLiteral.class, e::intLiteral); 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 114c65dc..e50dcb09 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 @@ -8,6 +8,10 @@ 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.*; +import pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt.DataStmt; +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.ifstmt.*; import pt.up.fe.specs.fortran.ast.nodes.stmt.selectcase.*; import pt.up.fe.specs.fortran.ast.nodes.type.attributes.DimensionSpec; @@ -18,8 +22,7 @@ import java.util.List; import java.util.Optional; -import static pt.up.fe.specs.fortran.parser.FlangName.EXPR; -import static pt.up.fe.specs.fortran.parser.FlangName.NAMED_CONSTANT; +import static pt.up.fe.specs.fortran.parser.FlangName.*; public class StmtProcessors extends ANodeProcessor { public StmtProcessors(FortranJsonResult data) { @@ -412,4 +415,42 @@ public void stopStmt(StopStmt stopStmt) { var quietOpt = getChildOptional(stopStmt, "quiet"); quietOpt.ifPresent(stopStmt::addChild); } + + public void dataStmt(DataStmt dataStmt) { + var dataStmtSets = getChildren(dataStmt, FlangName.DATA_STMT_SET); + dataStmt.addChildren(dataStmtSets); + } + + public void dataStmtSet(DataStmtSet dataStmtSet) { + var dataStmtObjectIds = attributes(dataStmtSet).getStringList(FlangName.DATA_STMT_OBJECT); + var dataStmtObjects = dataStmtObjectIds.stream() + .map(this::createDataStmtObject) + .toList(); + dataStmtObjects.forEach(this::dataStmtObject); + dataStmtSet.addChildren(dataStmtObjects); + + var dataStmtValues = getChildren(dataStmtSet, FlangName.DATA_STMT_VALUE); + dataStmtSet.addChildren(dataStmtValues); + } + + public DataStmtObject createDataStmtObject(String id) { + var attrs = attributes().get(id); + + if (attrs.has(FlangName.VARIABLE)) { + return factory().newNode(DataStmtVariable.class, List.of(), id); + } + + throw new RuntimeException("Unrecognizable DataStmtObject: " + attrs); + } + + public void dataStmtObject(DataStmtObject object) { + if (object instanceof DataStmtVariable variable) { + dataStmtVariable(variable); + } + } + + public void dataStmtVariable(DataStmtVariable dataStmtVariable) { + var variable = getChild(dataStmtVariable, FlangName.VARIABLE); + dataStmtVariable.addChild(variable); + } } From 8b22500809feb656fa6a03a0a1640dcfb8dccda3 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 4 Jun 2026 20:55:14 +0100 Subject: [PATCH 061/132] Add code generation for data statements --- .../up/fe/specs/fortran/ast/FortranKeyword.java | 1 + .../ast/nodes/stmt/datastmt/DataStmt.java | 13 +++++++++++++ .../ast/nodes/stmt/datastmt/DataStmtSet.java | 16 ++++++++++++++++ 3 files changed, 30 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 a656cdb5..3bf531c0 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -17,6 +17,7 @@ public enum FortranKeyword { STOP, ERROR, QUIET, + DATA, // Conditional statements IF, 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 13f486d1..55ca3bf3 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 @@ -1,11 +1,13 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt.datastmt; 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 java.util.Collection; import java.util.List; +import java.util.stream.Collectors; public class DataStmt extends DeclarationStmt { public DataStmt(DataStore data, Collection children) { @@ -15,4 +17,15 @@ public DataStmt(DataStore data, Collection children) { public List getDataSets() { return getChildren(DataStmtSet.class); } + + @Override + public String getCode() { + var dataSets = getDataSets(); + + var dataSetsCode = dataSets.stream() + .map(DataStmtSet::getCode) + .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 f305e185..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 @@ -6,6 +6,7 @@ import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; public class DataStmtSet extends FortranNode { public DataStmtSet(DataStore data, Collection children) { @@ -19,4 +20,19 @@ public List getObjects() { public List getValues() { return getChildrenOf(DataStmtValue.class); } + + @Override + public String getCode() { + var objects = getObjects(); + var values = getValues(); + + var objectsCode = objects.stream() + .map(DataStmtObject::getCode) + .collect(Collectors.joining(", ")); + var valuesCode = values.stream() + .map(DataStmtValue::getCode) + .collect(Collectors.joining(", ")); + + return objectsCode + " / " + valuesCode + " /"; + } } From ffeea158bfc94346cd1bcc515d4836a1471b2693 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 4 Jun 2026 20:57:49 +0100 Subject: [PATCH 062/132] Fix Fujitsu test case expected --- .../fortran/parser/fujitsu/0000/0000_0029.expected.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 9914df3a..3ea1d001 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 @@ -1,6 +1,6 @@ REAL, DIMENSION(1:10) :: a REAL, PARAMETER :: ans = 45. -DATA a/1., 2., 3., 4., 5., 6., 7., 8., 9., 10./ +DATA a / 1., 2., 3., 4., 5., 6., 7., 8., 9., 10. / i = 2 * 2147483648_8 - 2147483648_8 - 2147483646_8 a(1:10:i) = a(1:5) From 2bdc755eafc1adf03bf84592f52f36e4656f99be Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 00:23:42 +0100 Subject: [PATCH 063/132] Add new subscript nodes --- .../ast/nodes/expr/SectionSubscript.java | 12 +++++++++ .../fortran/ast/nodes/expr/Subscript.java | 16 +++++++++++ .../ast/nodes/expr/SubscriptTriplet.java | 27 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SectionSubscript.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SectionSubscript.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SectionSubscript.java new file mode 100644 index 00000000..ca2364df --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SectionSubscript.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 SectionSubscript extends FortranNode { + public SectionSubscript(DataStore data, Collection children) { + super(data, children); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java new file mode 100644 index 00000000..fc72d626 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.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 Subscript extends SectionSubscript { + public Subscript(DataStore data, Collection children) { + super(data, children); + } + + public Expr getValue() { + return getChild(Expr.class); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java new file mode 100644 index 00000000..465fe450 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.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; +import java.util.Optional; + +public class SubscriptTriplet extends SectionSubscript { + public SubscriptTriplet(DataStore data, Collection children) { + super(data, children); + } + + public Expr getStart() { + return getChild(Expr.class, 0); + } + + public Expr getEnd() { + return getChild(Expr.class, 1); + } + + public Optional getStride() { + return getNumChildren() > 2 + ? Optional.of(getChild(Expr.class, 2)) + : Optional.empty(); + } +} From fc1fb421a9200a7b1c905d10bc10c827df474acd Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 00:24:48 +0100 Subject: [PATCH 064/132] Change ArraySubscriptExpr to use new SectionSubscript --- .../fe/specs/fortran/ast/nodes/expr/ArraySubscriptExpr.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ArraySubscriptExpr.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ArraySubscriptExpr.java index 7747125b..06f51dc9 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ArraySubscriptExpr.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/ArraySubscriptExpr.java @@ -17,15 +17,15 @@ public DataRef getRef() { return getChild(DataRef.class, 0); } - public List getSubscripts() { - return getChildren(Expr.class, 1); + public List getSubscripts() { + return getChildren(SectionSubscript.class, 1); } @Override public String getCode() { return getRef().getCode() + "(" + getSubscripts().stream() - .map(Expr::getCode) + .map(SectionSubscript::getCode) .collect(Collectors.joining(", ")) + ")"; } From 04e4ffebceeba00392d19add8af0b58dc46e5839 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 00:41:18 +0100 Subject: [PATCH 065/132] Add subscript triplet tests --- .../expr/subscript_triplet.expected.f90 | 9 + .../fortran/parser/expr/subscript_triplet.f90 | 9 + .../parser/expr/subscript_triplet.json | 1273 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1303 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/subscript_triplet.f90 create mode 100644 FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json diff --git a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 new file mode 100644 index 00000000..4e67a337 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.expected.f90 @@ -0,0 +1,9 @@ +PROGRAM SUBSCRIPT_TRIPLET + INTEGER :: vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + + PRINT *, vec(2:5) + PRINT *, vec(:4) + PRINT *, vec(1:9:2) + PRINT *, vec(:) + PRINT *, vec(8:3:-2) +END PROGRAM SUBSCRIPT_TRIPLET \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.f90 b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.f90 new file mode 100644 index 00000000..27d70ea6 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.f90 @@ -0,0 +1,9 @@ +program subscript_triplet + integer :: vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + + print *, vec(2:5) + print *, vec(:4) + print *, vec(1:9:2) + print *, vec(:) + print *, vec(8:3:-2) +end program subscript_triplet \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json new file mode 100644 index 00000000..b9efdd24 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json @@ -0,0 +1,1273 @@ +{ + "nodes": [ + { + "id": "0x55e795dacf00-Program", + "ProgramUnit": [ + "0x55e795de86f0-ProgramUnit" + ] + }, + { + "id": "0x55e795de86f0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55e795dde680-MainProgram" + }, + { + "id": "0x55e795dde680-MainProgram", + "Statement": "0x55e795dde7c8-Statement", + "SpecificationPart": "0x55e795dde720-SpecificationPart", + "ExecutionPart": "0x55e795dde708-ExecutionPart", + "Statement": "0x55e795dde680-Statement" + }, + { + "id": "0x55e795dde7c8-Statement", + "statement": "0x55e795dde7d8-ProgramStmt", + "source": "program SUBSCRIPT_TRIPLET" + }, + { + "id": "0x55e795dde7d8-ProgramStmt", + "Name": "0x55e795dde7d8-Name" + }, + { + "id": "0x55e795dde7d8-Name", + "source": "SUBSCRIPT_TRIPLET" + }, + { + "id": "0x55e795dde720-SpecificationPart", + "ImplicitPart": "0x55e795dde738-ImplicitPart", + "DeclarationConstruct": [ + "0x55e795dd9a30-DeclarationConstruct" + ] + }, + { + "id": "0x55e795dde738-ImplicitPart" + }, + { + "id": "0x55e795dd9a30-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e795dd9a30-SpecificationConstruct" + }, + { + "id": "0x55e795dd9a30-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e795dd9a30-Statement" + }, + { + "id": "0x55e795dd9a30-Statement", + "statement": "0x55e795df0460-TypeDeclarationStmt", + "source": "integer :: vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]" + }, + { + "id": "0x55e795df0460-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e795df0490-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e795dd9860-EntityDecl" + ] + }, + { + "id": "0x55e795df0490-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e795df0490-IntrinsicTypeSpec" + }, + { + "id": "0x55e795df0490-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e795df0490-IntegerTypeSpec" + }, + { + "id": "0x55e795df0490-IntegerTypeSpec" + }, + { + "id": "0x55e795dd9860-EntityDecl", + "Name": "0x55e795dd9918-Name", + "ArraySpec": "0x55e795dd98e0-ArraySpec", + "Initialization": "0x55e795dd9860-Initialization" + }, + { + "id": "0x55e795dd9918-Name", + "source": "vec" + }, + { + "id": "0x55e795dd98e0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55e795de86c0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55e795de86c0-ExplicitShapeSpec", + "upper_bound": "0x55e795de86c0-SpecificationExpr" + }, + { + "id": "0x55e795de86c0-SpecificationExpr", + "Expr": "0x55e795df05d0-Expr" + }, + { + "id": "0x55e795df05d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795df05f0-LiteralConstant" + }, + { + "id": "0x55e795df05f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795df05f0-IntLiteralConstant" + }, + { + "id": "0x55e795df05f0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55e795dd9860-Initialization", + "variantKey": "Expr", + "Expr": "0x55e795dd9770-Expr" + }, + { + "id": "0x55e795dd9770-Expr", + "variantKey": "ArrayConstructor", + "ArrayConstructor": "0x55e795dd9790-ArrayConstructor" + }, + { + "id": "0x55e795dd9790-ArrayConstructor", + "AcSpec": "0x55e795dd9790-AcSpec" + }, + { + "id": "0x55e795dd9790-AcSpec", + "values": [ + "0x55e795de71d0-AcValue", + "0x55e795de73d0-AcValue", + "0x55e795de7ab0-AcValue", + "0x55e795de7b70-AcValue", + "0x55e795de7f70-AcValue", + "0x55e795de87a0-AcValue", + "0x55e795de8800-AcValue", + "0x55e795de8840-AcValue", + "0x55e795de7350-AcValue", + "0x55e795de7120-AcValue" + ] + }, + { + "id": "0x55e795de71d0-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd7b10-Expr" + }, + { + "id": "0x55e795dd7b10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd7b30-LiteralConstant" + }, + { + "id": "0x55e795dd7b30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd7b30-IntLiteralConstant" + }, + { + "id": "0x55e795dd7b30-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55e795de73d0-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd7db0-Expr" + }, + { + "id": "0x55e795dd7db0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd7dd0-LiteralConstant" + }, + { + "id": "0x55e795dd7dd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd7dd0-IntLiteralConstant" + }, + { + "id": "0x55e795dd7dd0-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x55e795de7ab0-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd80b0-Expr" + }, + { + "id": "0x55e795dd80b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd80d0-LiteralConstant" + }, + { + "id": "0x55e795dd80d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd80d0-IntLiteralConstant" + }, + { + "id": "0x55e795dd80d0-IntLiteralConstant", + "CharBlock": "30" + }, + { + "id": "0x55e795de7b70-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd83b0-Expr" + }, + { + "id": "0x55e795dd83b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd83d0-LiteralConstant" + }, + { + "id": "0x55e795dd83d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd83d0-IntLiteralConstant" + }, + { + "id": "0x55e795dd83d0-IntLiteralConstant", + "CharBlock": "40" + }, + { + "id": "0x55e795de7f70-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd86b0-Expr" + }, + { + "id": "0x55e795dd86b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd86d0-LiteralConstant" + }, + { + "id": "0x55e795dd86d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd86d0-IntLiteralConstant" + }, + { + "id": "0x55e795dd86d0-IntLiteralConstant", + "CharBlock": "50" + }, + { + "id": "0x55e795de87a0-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd89b0-Expr" + }, + { + "id": "0x55e795dd89b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd89d0-LiteralConstant" + }, + { + "id": "0x55e795dd89d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd89d0-IntLiteralConstant" + }, + { + "id": "0x55e795dd89d0-IntLiteralConstant", + "CharBlock": "60" + }, + { + "id": "0x55e795de8800-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd8cb0-Expr" + }, + { + "id": "0x55e795dd8cb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd8cd0-LiteralConstant" + }, + { + "id": "0x55e795dd8cd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd8cd0-IntLiteralConstant" + }, + { + "id": "0x55e795dd8cd0-IntLiteralConstant", + "CharBlock": "70" + }, + { + "id": "0x55e795de8840-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd8fb0-Expr" + }, + { + "id": "0x55e795dd8fb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd8fd0-LiteralConstant" + }, + { + "id": "0x55e795dd8fd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd8fd0-IntLiteralConstant" + }, + { + "id": "0x55e795dd8fd0-IntLiteralConstant", + "CharBlock": "80" + }, + { + "id": "0x55e795de7350-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd92b0-Expr" + }, + { + "id": "0x55e795dd92b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd92d0-LiteralConstant" + }, + { + "id": "0x55e795dd92d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd92d0-IntLiteralConstant" + }, + { + "id": "0x55e795dd92d0-IntLiteralConstant", + "CharBlock": "90" + }, + { + "id": "0x55e795de7120-AcValue", + "variantKey": "Expr", + "Expr": "0x55e795dd95b0-Expr" + }, + { + "id": "0x55e795dd95b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd95d0-LiteralConstant" + }, + { + "id": "0x55e795dd95d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd95d0-IntLiteralConstant" + }, + { + "id": "0x55e795dd95d0-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x55e795dde708-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55e795dd8da0-ExecutionPartConstruct", + "0x55e795df0730-ExecutionPartConstruct", + "0x55e795ddab80-ExecutionPartConstruct", + "0x55e795ddb000-ExecutionPartConstruct", + "0x55e795ddb690-ExecutionPartConstruct" + ] + }, + { + "id": "0x55e795dde708-ExecutionPartConstruct" + }, + { + "id": "0x55e795dd8da0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e795dd8da0-ExecutableConstruct" + }, + { + "id": "0x55e795dd8da0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e795dd8da0-Statement" + }, + { + "id": "0x55e795dd8da0-Statement", + "statement": "0x55e795dd8db0-ActionStmt", + "source": "print *, vec(2:5)" + }, + { + "id": "0x55e795dd8db0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e795dd9c00-PrintStmt" + }, + { + "id": "0x55e795dd9c00-PrintStmt", + "Format": "0x55e795dd9c18-Format", + "OutputItem": [ + "0x55e795dda380-OutputItem" + ] + }, + { + "id": "0x55e795dd9c18-Format", + "variantKey": "Star", + "Star": "0x55e795dd9c18-Star" + }, + { + "id": "0x55e795dd9c18-Star" + }, + { + "id": "0x55e795dda380-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e795dda380-Expr" + }, + { + "id": "0x55e795dda380-Expr", + "variantKey": "Designator", + "Designator": "0x55e795dab4d0-Designator" + }, + { + "id": "0x55e795dab4d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e795dab4e0-DataRef" + }, + { + "id": "0x55e795dab4e0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55e795de7180-ArrayElement" + }, + { + "id": "0x55e795de7180-ArrayElement", + "base": "0x55e795de7180-DataRef", + "subscripts": [ + "0x55e795de3250-SectionSubscript" + ] + }, + { + "id": "0x55e795de7180-DataRef", + "variantKey": "Name", + "Name": "0x55e795de7180-Name" + }, + { + "id": "0x55e795de7180-Name", + "source": "vec" + }, + { + "id": "0x55e795de3250-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55e795de3250-SubscriptTriplet" + }, + { + "id": "0x55e795de3250-SubscriptTriplet", + "Expr": "0x55e795dea0c0-Expr" + }, + { + "id": "0x55e795dda290-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dda2b0-LiteralConstant" + }, + { + "id": "0x55e795dda2b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dda2b0-IntLiteralConstant" + }, + { + "id": "0x55e795dda2b0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55e795dea0c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dea0e0-LiteralConstant" + }, + { + "id": "0x55e795dea0e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dea0e0-IntLiteralConstant" + }, + { + "id": "0x55e795dea0e0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x55e795df0730-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e795df0730-ExecutableConstruct" + }, + { + "id": "0x55e795df0730-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e795df0730-Statement" + }, + { + "id": "0x55e795df0730-Statement", + "statement": "0x55e795df0740-ActionStmt", + "source": "print *, vec(:4)" + }, + { + "id": "0x55e795df0740-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e795dd9ed0-PrintStmt" + }, + { + "id": "0x55e795dd9ed0-PrintStmt", + "Format": "0x55e795dd9ee8-Format", + "OutputItem": [ + "0x55e795dd9df0-OutputItem" + ] + }, + { + "id": "0x55e795dd9ee8-Format", + "variantKey": "Star", + "Star": "0x55e795dd9ee8-Star" + }, + { + "id": "0x55e795dd9ee8-Star" + }, + { + "id": "0x55e795dd9df0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e795dd9df0-Expr" + }, + { + "id": "0x55e795dd9df0-Expr", + "variantKey": "Designator", + "Designator": "0x55e795dd9090-Designator" + }, + { + "id": "0x55e795dd9090-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e795dd90a0-DataRef" + }, + { + "id": "0x55e795dd90a0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55e795de7200-ArrayElement" + }, + { + "id": "0x55e795de7200-ArrayElement", + "base": "0x55e795de7200-DataRef", + "subscripts": [ + "0x55e795df0850-SectionSubscript" + ] + }, + { + "id": "0x55e795de7200-DataRef", + "variantKey": "Name", + "Name": "0x55e795de7200-Name" + }, + { + "id": "0x55e795de7200-Name", + "source": "vec" + }, + { + "id": "0x55e795df0850-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55e795df0850-SubscriptTriplet" + }, + { + "id": "0x55e795df0850-SubscriptTriplet", + "Expr": "0x55e795dd9d00-Expr" + }, + { + "id": "0x55e795dd9d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dd9d20-LiteralConstant" + }, + { + "id": "0x55e795dd9d20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dd9d20-IntLiteralConstant" + }, + { + "id": "0x55e795dd9d20-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x55e795ddab80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e795ddab80-ExecutableConstruct" + }, + { + "id": "0x55e795ddab80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e795ddab80-Statement" + }, + { + "id": "0x55e795ddab80-Statement", + "statement": "0x55e795ddab90-ActionStmt", + "source": "print *, vec(1:9:2)" + }, + { + "id": "0x55e795ddab90-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e795ddaa70-PrintStmt" + }, + { + "id": "0x55e795ddaa70-PrintStmt", + "Format": "0x55e795ddaa88-Format", + "OutputItem": [ + "0x55e795dda990-OutputItem" + ] + }, + { + "id": "0x55e795ddaa88-Format", + "variantKey": "Star", + "Star": "0x55e795ddaa88-Star" + }, + { + "id": "0x55e795ddaa88-Star" + }, + { + "id": "0x55e795dda990-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e795dda990-Expr" + }, + { + "id": "0x55e795dda990-Expr", + "variantKey": "Designator", + "Designator": "0x55e795dba100-Designator" + }, + { + "id": "0x55e795dba100-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e795dba110-DataRef" + }, + { + "id": "0x55e795dba110-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55e795de7260-ArrayElement" + }, + { + "id": "0x55e795de7260-ArrayElement", + "base": "0x55e795de7260-DataRef", + "subscripts": [ + "0x55e795de3cc0-SectionSubscript" + ] + }, + { + "id": "0x55e795de7260-DataRef", + "variantKey": "Name", + "Name": "0x55e795de7260-Name" + }, + { + "id": "0x55e795de7260-Name", + "source": "vec" + }, + { + "id": "0x55e795de3cc0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55e795de3cc0-SubscriptTriplet" + }, + { + "id": "0x55e795de3cc0-SubscriptTriplet", + "Expr": "0x55e795dda8a0-Expr" + }, + { + "id": "0x55e795dda580-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dda5a0-LiteralConstant" + }, + { + "id": "0x55e795dda5a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dda5a0-IntLiteralConstant" + }, + { + "id": "0x55e795dda5a0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55e795dda7c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dda7e0-LiteralConstant" + }, + { + "id": "0x55e795dda7e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dda7e0-IntLiteralConstant" + }, + { + "id": "0x55e795dda7e0-IntLiteralConstant", + "CharBlock": "9" + }, + { + "id": "0x55e795dda8a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795dda8c0-LiteralConstant" + }, + { + "id": "0x55e795dda8c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795dda8c0-IntLiteralConstant" + }, + { + "id": "0x55e795dda8c0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55e795ddb000-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e795ddb000-ExecutableConstruct" + }, + { + "id": "0x55e795ddb000-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e795ddb000-Statement" + }, + { + "id": "0x55e795ddb000-Statement", + "statement": "0x55e795ddb010-ActionStmt", + "source": "print *, vec(:)" + }, + { + "id": "0x55e795ddb010-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e795ddae80-PrintStmt" + }, + { + "id": "0x55e795ddae80-PrintStmt", + "Format": "0x55e795ddae98-Format", + "OutputItem": [ + "0x55e795ddad30-OutputItem" + ] + }, + { + "id": "0x55e795ddae98-Format", + "variantKey": "Star", + "Star": "0x55e795ddae98-Star" + }, + { + "id": "0x55e795ddae98-Star" + }, + { + "id": "0x55e795ddad30-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e795ddad30-Expr" + }, + { + "id": "0x55e795ddad30-Expr", + "variantKey": "Designator", + "Designator": "0x55e795dba160-Designator" + }, + { + "id": "0x55e795dba160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e795dba170-DataRef" + }, + { + "id": "0x55e795dba170-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55e795de72a0-ArrayElement" + }, + { + "id": "0x55e795de72a0-ArrayElement", + "base": "0x55e795de72a0-DataRef", + "subscripts": [ + "0x55e795de3ea0-SectionSubscript" + ] + }, + { + "id": "0x55e795de72a0-DataRef", + "variantKey": "Name", + "Name": "0x55e795de72a0-Name" + }, + { + "id": "0x55e795de72a0-Name", + "source": "vec" + }, + { + "id": "0x55e795de3ea0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55e795de3ea0-SubscriptTriplet" + }, + { + "id": "0x55e795de3ea0-SubscriptTriplet" + }, + { + "id": "0x55e795ddb690-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e795ddb690-ExecutableConstruct" + }, + { + "id": "0x55e795ddb690-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e795ddb690-Statement" + }, + { + "id": "0x55e795ddb690-Statement", + "statement": "0x55e795ddb6a0-ActionStmt", + "source": "print *, vec(8:3:-2)" + }, + { + "id": "0x55e795ddb6a0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e795ddb580-PrintStmt" + }, + { + "id": "0x55e795ddb580-PrintStmt", + "Format": "0x55e795ddb598-Format", + "OutputItem": [ + "0x55e795ddb4a0-OutputItem" + ] + }, + { + "id": "0x55e795ddb598-Format", + "variantKey": "Star", + "Star": "0x55e795ddb598-Star" + }, + { + "id": "0x55e795ddb598-Star" + }, + { + "id": "0x55e795ddb4a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e795ddb4a0-Expr" + }, + { + "id": "0x55e795ddb4a0-Expr", + "variantKey": "Designator", + "Designator": "0x55e795ddb430-Designator" + }, + { + "id": "0x55e795ddb430-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e795ddb440-DataRef" + }, + { + "id": "0x55e795ddb440-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55e795de7300-ArrayElement" + }, + { + "id": "0x55e795de7300-ArrayElement", + "base": "0x55e795de7300-DataRef", + "subscripts": [ + "0x55e795de4040-SectionSubscript" + ] + }, + { + "id": "0x55e795de7300-DataRef", + "variantKey": "Name", + "Name": "0x55e795de7300-Name" + }, + { + "id": "0x55e795de7300-Name", + "source": "vec" + }, + { + "id": "0x55e795de4040-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55e795de4040-SubscriptTriplet" + }, + { + "id": "0x55e795de4040-SubscriptTriplet", + "Expr": "0x55e795ddb2f0-Expr" + }, + { + "id": "0x55e795ddb050-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795ddb070-LiteralConstant" + }, + { + "id": "0x55e795ddb070-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795ddb070-IntLiteralConstant" + }, + { + "id": "0x55e795ddb070-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x55e795ddb130-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795ddb150-LiteralConstant" + }, + { + "id": "0x55e795ddb150-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795ddb150-IntLiteralConstant" + }, + { + "id": "0x55e795ddb150-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x55e795ddb2f0-Expr", + "variantKey": "Negate", + "Negate": "0x55e795ddb310-Negate" + }, + { + "id": "0x55e795ddb310-Negate", + "Expr": "0x55e795ddb210-Expr", + "op": "NEGATE" + }, + { + "id": "0x55e795ddb210-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e795ddb230-LiteralConstant" + }, + { + "id": "0x55e795ddb230-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e795ddb230-IntLiteralConstant" + }, + { + "id": "0x55e795ddb230-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55e795dde680-Statement", + "statement": "0x55e795dde690-EndProgramStmt", + "source": "end program SUBSCRIPT_TRIPLET" + }, + { + "id": "0x55e795dde690-EndProgramStmt", + "Name": "0x55e795dde690-Name" + }, + { + "id": "0x55e795dde690-Name", + "source": "SUBSCRIPT_TRIPLET" + } + ], + "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 969a5292..5a8ff0d0 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -496,6 +496,18 @@ void testDataStmtNative() { } } + @Test + void testSubscriptTriplet() { + testJson("expr/subscript_triplet.json"); + } + + @Test + void testSubscriptTripletNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/subscript_triplet.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From de33445074e30c33917da4bd344fe62f2ae95e8f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 00:58:50 +0100 Subject: [PATCH 066/132] Regenerate dumps --- .../parser/expr/subscript_triplet.json | 715 +++++++------- .../parser/fujitsu/0000/0000_0029.json | 925 +++++++++--------- 2 files changed, 824 insertions(+), 816 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json index b9efdd24..8e09f548 100644 --- a/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json +++ b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json @@ -1,898 +1,903 @@ { "nodes": [ { - "id": "0x55e795dacf00-Program", + "id": "0x56478def6f00-Program", "ProgramUnit": [ - "0x55e795de86f0-ProgramUnit" + "0x56478df326f0-ProgramUnit" ] }, { - "id": "0x55e795de86f0-ProgramUnit", + "id": "0x56478df326f0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55e795dde680-MainProgram" + "MainProgram": "0x56478df28680-MainProgram" }, { - "id": "0x55e795dde680-MainProgram", - "Statement": "0x55e795dde7c8-Statement", - "SpecificationPart": "0x55e795dde720-SpecificationPart", - "ExecutionPart": "0x55e795dde708-ExecutionPart", - "Statement": "0x55e795dde680-Statement" + "id": "0x56478df28680-MainProgram", + "Statement": "0x56478df287c8-Statement", + "SpecificationPart": "0x56478df28720-SpecificationPart", + "ExecutionPart": "0x56478df28708-ExecutionPart", + "Statement": "0x56478df28680-Statement" }, { - "id": "0x55e795dde7c8-Statement", - "statement": "0x55e795dde7d8-ProgramStmt", + "id": "0x56478df287c8-Statement", + "statement": "0x56478df287d8-ProgramStmt", "source": "program SUBSCRIPT_TRIPLET" }, { - "id": "0x55e795dde7d8-ProgramStmt", - "Name": "0x55e795dde7d8-Name" + "id": "0x56478df287d8-ProgramStmt", + "Name": "0x56478df287d8-Name" }, { - "id": "0x55e795dde7d8-Name", + "id": "0x56478df287d8-Name", "source": "SUBSCRIPT_TRIPLET" }, { - "id": "0x55e795dde720-SpecificationPart", - "ImplicitPart": "0x55e795dde738-ImplicitPart", + "id": "0x56478df28720-SpecificationPart", + "ImplicitPart": "0x56478df28738-ImplicitPart", "DeclarationConstruct": [ - "0x55e795dd9a30-DeclarationConstruct" + "0x56478df23a30-DeclarationConstruct" ] }, { - "id": "0x55e795dde738-ImplicitPart" + "id": "0x56478df28738-ImplicitPart" }, { - "id": "0x55e795dd9a30-DeclarationConstruct", + "id": "0x56478df23a30-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55e795dd9a30-SpecificationConstruct" + "SpecificationConstruct": "0x56478df23a30-SpecificationConstruct" }, { - "id": "0x55e795dd9a30-SpecificationConstruct", + "id": "0x56478df23a30-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55e795dd9a30-Statement" + "Statement": "0x56478df23a30-Statement" }, { - "id": "0x55e795dd9a30-Statement", - "statement": "0x55e795df0460-TypeDeclarationStmt", + "id": "0x56478df23a30-Statement", + "statement": "0x56478df3a460-TypeDeclarationStmt", "source": "integer :: vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]" }, { - "id": "0x55e795df0460-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55e795df0490-DeclarationTypeSpec", + "id": "0x56478df3a460-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56478df3a490-DeclarationTypeSpec", "EntityDecl": [ - "0x55e795dd9860-EntityDecl" + "0x56478df23860-EntityDecl" ] }, { - "id": "0x55e795df0490-DeclarationTypeSpec", + "id": "0x56478df3a490-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55e795df0490-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x56478df3a490-IntrinsicTypeSpec" }, { - "id": "0x55e795df0490-IntrinsicTypeSpec", + "id": "0x56478df3a490-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55e795df0490-IntegerTypeSpec" + "IntegerTypeSpec": "0x56478df3a490-IntegerTypeSpec" }, { - "id": "0x55e795df0490-IntegerTypeSpec" + "id": "0x56478df3a490-IntegerTypeSpec" }, { - "id": "0x55e795dd9860-EntityDecl", - "Name": "0x55e795dd9918-Name", - "ArraySpec": "0x55e795dd98e0-ArraySpec", - "Initialization": "0x55e795dd9860-Initialization" + "id": "0x56478df23860-EntityDecl", + "Name": "0x56478df23918-Name", + "ArraySpec": "0x56478df238e0-ArraySpec", + "Initialization": "0x56478df23860-Initialization" }, { - "id": "0x55e795dd9918-Name", + "id": "0x56478df23918-Name", "source": "vec" }, { - "id": "0x55e795dd98e0-ArraySpec", + "id": "0x56478df238e0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55e795de86c0-ExplicitShapeSpec" + "0x56478df326c0-ExplicitShapeSpec" ] }, { - "id": "0x55e795de86c0-ExplicitShapeSpec", - "upper_bound": "0x55e795de86c0-SpecificationExpr" + "id": "0x56478df326c0-ExplicitShapeSpec", + "upper_bound": "0x56478df326c0-SpecificationExpr" }, { - "id": "0x55e795de86c0-SpecificationExpr", - "Expr": "0x55e795df05d0-Expr" + "id": "0x56478df326c0-SpecificationExpr", + "Expr": "0x56478df3a5d0-Expr" }, { - "id": "0x55e795df05d0-Expr", + "id": "0x56478df3a5d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795df05f0-LiteralConstant" + "LiteralConstant": "0x56478df3a5f0-LiteralConstant" }, { - "id": "0x55e795df05f0-LiteralConstant", + "id": "0x56478df3a5f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795df05f0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df3a5f0-IntLiteralConstant" }, { - "id": "0x55e795df05f0-IntLiteralConstant", + "id": "0x56478df3a5f0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e795dd9860-Initialization", + "id": "0x56478df23860-Initialization", "variantKey": "Expr", - "Expr": "0x55e795dd9770-Expr" + "Expr": "0x56478df23770-Expr" }, { - "id": "0x55e795dd9770-Expr", + "id": "0x56478df23770-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55e795dd9790-ArrayConstructor" + "ArrayConstructor": "0x56478df23790-ArrayConstructor" }, { - "id": "0x55e795dd9790-ArrayConstructor", - "AcSpec": "0x55e795dd9790-AcSpec" + "id": "0x56478df23790-ArrayConstructor", + "AcSpec": "0x56478df23790-AcSpec" }, { - "id": "0x55e795dd9790-AcSpec", + "id": "0x56478df23790-AcSpec", "values": [ - "0x55e795de71d0-AcValue", - "0x55e795de73d0-AcValue", - "0x55e795de7ab0-AcValue", - "0x55e795de7b70-AcValue", - "0x55e795de7f70-AcValue", - "0x55e795de87a0-AcValue", - "0x55e795de8800-AcValue", - "0x55e795de8840-AcValue", - "0x55e795de7350-AcValue", - "0x55e795de7120-AcValue" + "0x56478df311d0-AcValue", + "0x56478df313d0-AcValue", + "0x56478df31ab0-AcValue", + "0x56478df31b70-AcValue", + "0x56478df31f70-AcValue", + "0x56478df327a0-AcValue", + "0x56478df32800-AcValue", + "0x56478df32840-AcValue", + "0x56478df31350-AcValue", + "0x56478df31120-AcValue" ] }, { - "id": "0x55e795de71d0-AcValue", + "id": "0x56478df311d0-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd7b10-Expr" + "Expr": "0x56478df21b10-Expr" }, { - "id": "0x55e795dd7b10-Expr", + "id": "0x56478df21b10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd7b30-LiteralConstant" + "LiteralConstant": "0x56478df21b30-LiteralConstant" }, { - "id": "0x55e795dd7b30-LiteralConstant", + "id": "0x56478df21b30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd7b30-IntLiteralConstant" + "IntLiteralConstant": "0x56478df21b30-IntLiteralConstant" }, { - "id": "0x55e795dd7b30-IntLiteralConstant", + "id": "0x56478df21b30-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55e795de73d0-AcValue", + "id": "0x56478df313d0-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd7db0-Expr" + "Expr": "0x56478df21db0-Expr" }, { - "id": "0x55e795dd7db0-Expr", + "id": "0x56478df21db0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd7dd0-LiteralConstant" + "LiteralConstant": "0x56478df21dd0-LiteralConstant" }, { - "id": "0x55e795dd7dd0-LiteralConstant", + "id": "0x56478df21dd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd7dd0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df21dd0-IntLiteralConstant" }, { - "id": "0x55e795dd7dd0-IntLiteralConstant", + "id": "0x56478df21dd0-IntLiteralConstant", "CharBlock": "20" }, { - "id": "0x55e795de7ab0-AcValue", + "id": "0x56478df31ab0-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd80b0-Expr" + "Expr": "0x56478df220b0-Expr" }, { - "id": "0x55e795dd80b0-Expr", + "id": "0x56478df220b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd80d0-LiteralConstant" + "LiteralConstant": "0x56478df220d0-LiteralConstant" }, { - "id": "0x55e795dd80d0-LiteralConstant", + "id": "0x56478df220d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd80d0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df220d0-IntLiteralConstant" }, { - "id": "0x55e795dd80d0-IntLiteralConstant", + "id": "0x56478df220d0-IntLiteralConstant", "CharBlock": "30" }, { - "id": "0x55e795de7b70-AcValue", + "id": "0x56478df31b70-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd83b0-Expr" + "Expr": "0x56478df223b0-Expr" }, { - "id": "0x55e795dd83b0-Expr", + "id": "0x56478df223b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd83d0-LiteralConstant" + "LiteralConstant": "0x56478df223d0-LiteralConstant" }, { - "id": "0x55e795dd83d0-LiteralConstant", + "id": "0x56478df223d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd83d0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df223d0-IntLiteralConstant" }, { - "id": "0x55e795dd83d0-IntLiteralConstant", + "id": "0x56478df223d0-IntLiteralConstant", "CharBlock": "40" }, { - "id": "0x55e795de7f70-AcValue", + "id": "0x56478df31f70-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd86b0-Expr" + "Expr": "0x56478df226b0-Expr" }, { - "id": "0x55e795dd86b0-Expr", + "id": "0x56478df226b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd86d0-LiteralConstant" + "LiteralConstant": "0x56478df226d0-LiteralConstant" }, { - "id": "0x55e795dd86d0-LiteralConstant", + "id": "0x56478df226d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd86d0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df226d0-IntLiteralConstant" }, { - "id": "0x55e795dd86d0-IntLiteralConstant", + "id": "0x56478df226d0-IntLiteralConstant", "CharBlock": "50" }, { - "id": "0x55e795de87a0-AcValue", + "id": "0x56478df327a0-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd89b0-Expr" + "Expr": "0x56478df229b0-Expr" }, { - "id": "0x55e795dd89b0-Expr", + "id": "0x56478df229b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd89d0-LiteralConstant" + "LiteralConstant": "0x56478df229d0-LiteralConstant" }, { - "id": "0x55e795dd89d0-LiteralConstant", + "id": "0x56478df229d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd89d0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df229d0-IntLiteralConstant" }, { - "id": "0x55e795dd89d0-IntLiteralConstant", + "id": "0x56478df229d0-IntLiteralConstant", "CharBlock": "60" }, { - "id": "0x55e795de8800-AcValue", + "id": "0x56478df32800-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd8cb0-Expr" + "Expr": "0x56478df22cb0-Expr" }, { - "id": "0x55e795dd8cb0-Expr", + "id": "0x56478df22cb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd8cd0-LiteralConstant" + "LiteralConstant": "0x56478df22cd0-LiteralConstant" }, { - "id": "0x55e795dd8cd0-LiteralConstant", + "id": "0x56478df22cd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd8cd0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df22cd0-IntLiteralConstant" }, { - "id": "0x55e795dd8cd0-IntLiteralConstant", + "id": "0x56478df22cd0-IntLiteralConstant", "CharBlock": "70" }, { - "id": "0x55e795de8840-AcValue", + "id": "0x56478df32840-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd8fb0-Expr" + "Expr": "0x56478df22fb0-Expr" }, { - "id": "0x55e795dd8fb0-Expr", + "id": "0x56478df22fb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd8fd0-LiteralConstant" + "LiteralConstant": "0x56478df22fd0-LiteralConstant" }, { - "id": "0x55e795dd8fd0-LiteralConstant", + "id": "0x56478df22fd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd8fd0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df22fd0-IntLiteralConstant" }, { - "id": "0x55e795dd8fd0-IntLiteralConstant", + "id": "0x56478df22fd0-IntLiteralConstant", "CharBlock": "80" }, { - "id": "0x55e795de7350-AcValue", + "id": "0x56478df31350-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd92b0-Expr" + "Expr": "0x56478df232b0-Expr" }, { - "id": "0x55e795dd92b0-Expr", + "id": "0x56478df232b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd92d0-LiteralConstant" + "LiteralConstant": "0x56478df232d0-LiteralConstant" }, { - "id": "0x55e795dd92d0-LiteralConstant", + "id": "0x56478df232d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd92d0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df232d0-IntLiteralConstant" }, { - "id": "0x55e795dd92d0-IntLiteralConstant", + "id": "0x56478df232d0-IntLiteralConstant", "CharBlock": "90" }, { - "id": "0x55e795de7120-AcValue", + "id": "0x56478df31120-AcValue", "variantKey": "Expr", - "Expr": "0x55e795dd95b0-Expr" + "Expr": "0x56478df235b0-Expr" }, { - "id": "0x55e795dd95b0-Expr", + "id": "0x56478df235b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd95d0-LiteralConstant" + "LiteralConstant": "0x56478df235d0-LiteralConstant" }, { - "id": "0x55e795dd95d0-LiteralConstant", + "id": "0x56478df235d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd95d0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df235d0-IntLiteralConstant" }, { - "id": "0x55e795dd95d0-IntLiteralConstant", + "id": "0x56478df235d0-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x55e795dde708-ExecutionPart", + "id": "0x56478df28708-ExecutionPart", "ExecutionPartConstruct": [ - "0x55e795dd8da0-ExecutionPartConstruct", - "0x55e795df0730-ExecutionPartConstruct", - "0x55e795ddab80-ExecutionPartConstruct", - "0x55e795ddb000-ExecutionPartConstruct", - "0x55e795ddb690-ExecutionPartConstruct" + "0x56478df22da0-ExecutionPartConstruct", + "0x56478df3a730-ExecutionPartConstruct", + "0x56478df24b80-ExecutionPartConstruct", + "0x56478df25000-ExecutionPartConstruct", + "0x56478df25690-ExecutionPartConstruct" ] }, { - "id": "0x55e795dde708-ExecutionPartConstruct" + "id": "0x56478df28708-ExecutionPartConstruct" }, { - "id": "0x55e795dd8da0-ExecutionPartConstruct", + "id": "0x56478df22da0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e795dd8da0-ExecutableConstruct" + "ExecutableConstruct": "0x56478df22da0-ExecutableConstruct" }, { - "id": "0x55e795dd8da0-ExecutableConstruct", + "id": "0x56478df22da0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e795dd8da0-Statement" + "Statement": "0x56478df22da0-Statement" }, { - "id": "0x55e795dd8da0-Statement", - "statement": "0x55e795dd8db0-ActionStmt", + "id": "0x56478df22da0-Statement", + "statement": "0x56478df22db0-ActionStmt", "source": "print *, vec(2:5)" }, { - "id": "0x55e795dd8db0-ActionStmt", + "id": "0x56478df22db0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e795dd9c00-PrintStmt" + "PrintStmt": "0x56478df23c00-PrintStmt" }, { - "id": "0x55e795dd9c00-PrintStmt", - "Format": "0x55e795dd9c18-Format", + "id": "0x56478df23c00-PrintStmt", + "Format": "0x56478df23c18-Format", "OutputItem": [ - "0x55e795dda380-OutputItem" + "0x56478df24380-OutputItem" ] }, { - "id": "0x55e795dd9c18-Format", + "id": "0x56478df23c18-Format", "variantKey": "Star", - "Star": "0x55e795dd9c18-Star" + "Star": "0x56478df23c18-Star" }, { - "id": "0x55e795dd9c18-Star" + "id": "0x56478df23c18-Star" }, { - "id": "0x55e795dda380-OutputItem", + "id": "0x56478df24380-OutputItem", "variantKey": "Expr", - "Expr": "0x55e795dda380-Expr" + "Expr": "0x56478df24380-Expr" }, { - "id": "0x55e795dda380-Expr", + "id": "0x56478df24380-Expr", "variantKey": "Designator", - "Designator": "0x55e795dab4d0-Designator" + "Designator": "0x56478def54d0-Designator" }, { - "id": "0x55e795dab4d0-Designator", + "id": "0x56478def54d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55e795dab4e0-DataRef" + "DataRef": "0x56478def54e0-DataRef" }, { - "id": "0x55e795dab4e0-DataRef", + "id": "0x56478def54e0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e795de7180-ArrayElement" + "ArrayElement": "0x56478df31180-ArrayElement" }, { - "id": "0x55e795de7180-ArrayElement", - "base": "0x55e795de7180-DataRef", + "id": "0x56478df31180-ArrayElement", + "base": "0x56478df31180-DataRef", "subscripts": [ - "0x55e795de3250-SectionSubscript" + "0x56478df2d250-SectionSubscript" ] }, { - "id": "0x55e795de7180-DataRef", + "id": "0x56478df31180-DataRef", "variantKey": "Name", - "Name": "0x55e795de7180-Name" + "Name": "0x56478df31180-Name" }, { - "id": "0x55e795de7180-Name", + "id": "0x56478df31180-Name", "source": "vec" }, { - "id": "0x55e795de3250-SectionSubscript", + "id": "0x56478df2d250-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e795de3250-SubscriptTriplet" + "SubscriptTriplet": "0x56478df2d250-SubscriptTriplet" }, { - "id": "0x55e795de3250-SubscriptTriplet", - "Expr": "0x55e795dea0c0-Expr" + "id": "0x56478df2d250-SubscriptTriplet", + "start": "0x56478df24290-Expr", + "end": "0x56478df340c0-Expr" }, { - "id": "0x55e795dda290-Expr", + "id": "0x56478df24290-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dda2b0-LiteralConstant" + "LiteralConstant": "0x56478df242b0-LiteralConstant" }, { - "id": "0x55e795dda2b0-LiteralConstant", + "id": "0x56478df242b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dda2b0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df242b0-IntLiteralConstant" }, { - "id": "0x55e795dda2b0-IntLiteralConstant", + "id": "0x56478df242b0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55e795dea0c0-Expr", + "id": "0x56478df340c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dea0e0-LiteralConstant" + "LiteralConstant": "0x56478df340e0-LiteralConstant" }, { - "id": "0x55e795dea0e0-LiteralConstant", + "id": "0x56478df340e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dea0e0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df340e0-IntLiteralConstant" }, { - "id": "0x55e795dea0e0-IntLiteralConstant", + "id": "0x56478df340e0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55e795df0730-ExecutionPartConstruct", + "id": "0x56478df3a730-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e795df0730-ExecutableConstruct" + "ExecutableConstruct": "0x56478df3a730-ExecutableConstruct" }, { - "id": "0x55e795df0730-ExecutableConstruct", + "id": "0x56478df3a730-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e795df0730-Statement" + "Statement": "0x56478df3a730-Statement" }, { - "id": "0x55e795df0730-Statement", - "statement": "0x55e795df0740-ActionStmt", + "id": "0x56478df3a730-Statement", + "statement": "0x56478df3a740-ActionStmt", "source": "print *, vec(:4)" }, { - "id": "0x55e795df0740-ActionStmt", + "id": "0x56478df3a740-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e795dd9ed0-PrintStmt" + "PrintStmt": "0x56478df23ed0-PrintStmt" }, { - "id": "0x55e795dd9ed0-PrintStmt", - "Format": "0x55e795dd9ee8-Format", + "id": "0x56478df23ed0-PrintStmt", + "Format": "0x56478df23ee8-Format", "OutputItem": [ - "0x55e795dd9df0-OutputItem" + "0x56478df23df0-OutputItem" ] }, { - "id": "0x55e795dd9ee8-Format", + "id": "0x56478df23ee8-Format", "variantKey": "Star", - "Star": "0x55e795dd9ee8-Star" + "Star": "0x56478df23ee8-Star" }, { - "id": "0x55e795dd9ee8-Star" + "id": "0x56478df23ee8-Star" }, { - "id": "0x55e795dd9df0-OutputItem", + "id": "0x56478df23df0-OutputItem", "variantKey": "Expr", - "Expr": "0x55e795dd9df0-Expr" + "Expr": "0x56478df23df0-Expr" }, { - "id": "0x55e795dd9df0-Expr", + "id": "0x56478df23df0-Expr", "variantKey": "Designator", - "Designator": "0x55e795dd9090-Designator" + "Designator": "0x56478df23090-Designator" }, { - "id": "0x55e795dd9090-Designator", + "id": "0x56478df23090-Designator", "variantKey": "DataRef", - "DataRef": "0x55e795dd90a0-DataRef" + "DataRef": "0x56478df230a0-DataRef" }, { - "id": "0x55e795dd90a0-DataRef", + "id": "0x56478df230a0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e795de7200-ArrayElement" + "ArrayElement": "0x56478df31200-ArrayElement" }, { - "id": "0x55e795de7200-ArrayElement", - "base": "0x55e795de7200-DataRef", + "id": "0x56478df31200-ArrayElement", + "base": "0x56478df31200-DataRef", "subscripts": [ - "0x55e795df0850-SectionSubscript" + "0x56478df3a850-SectionSubscript" ] }, { - "id": "0x55e795de7200-DataRef", + "id": "0x56478df31200-DataRef", "variantKey": "Name", - "Name": "0x55e795de7200-Name" + "Name": "0x56478df31200-Name" }, { - "id": "0x55e795de7200-Name", + "id": "0x56478df31200-Name", "source": "vec" }, { - "id": "0x55e795df0850-SectionSubscript", + "id": "0x56478df3a850-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e795df0850-SubscriptTriplet" + "SubscriptTriplet": "0x56478df3a850-SubscriptTriplet" }, { - "id": "0x55e795df0850-SubscriptTriplet", - "Expr": "0x55e795dd9d00-Expr" + "id": "0x56478df3a850-SubscriptTriplet", + "end": "0x56478df23d00-Expr" }, { - "id": "0x55e795dd9d00-Expr", + "id": "0x56478df23d00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dd9d20-LiteralConstant" + "LiteralConstant": "0x56478df23d20-LiteralConstant" }, { - "id": "0x55e795dd9d20-LiteralConstant", + "id": "0x56478df23d20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dd9d20-IntLiteralConstant" + "IntLiteralConstant": "0x56478df23d20-IntLiteralConstant" }, { - "id": "0x55e795dd9d20-IntLiteralConstant", + "id": "0x56478df23d20-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55e795ddab80-ExecutionPartConstruct", + "id": "0x56478df24b80-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e795ddab80-ExecutableConstruct" + "ExecutableConstruct": "0x56478df24b80-ExecutableConstruct" }, { - "id": "0x55e795ddab80-ExecutableConstruct", + "id": "0x56478df24b80-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e795ddab80-Statement" + "Statement": "0x56478df24b80-Statement" }, { - "id": "0x55e795ddab80-Statement", - "statement": "0x55e795ddab90-ActionStmt", + "id": "0x56478df24b80-Statement", + "statement": "0x56478df24b90-ActionStmt", "source": "print *, vec(1:9:2)" }, { - "id": "0x55e795ddab90-ActionStmt", + "id": "0x56478df24b90-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e795ddaa70-PrintStmt" + "PrintStmt": "0x56478df24a70-PrintStmt" }, { - "id": "0x55e795ddaa70-PrintStmt", - "Format": "0x55e795ddaa88-Format", + "id": "0x56478df24a70-PrintStmt", + "Format": "0x56478df24a88-Format", "OutputItem": [ - "0x55e795dda990-OutputItem" + "0x56478df24990-OutputItem" ] }, { - "id": "0x55e795ddaa88-Format", + "id": "0x56478df24a88-Format", "variantKey": "Star", - "Star": "0x55e795ddaa88-Star" + "Star": "0x56478df24a88-Star" }, { - "id": "0x55e795ddaa88-Star" + "id": "0x56478df24a88-Star" }, { - "id": "0x55e795dda990-OutputItem", + "id": "0x56478df24990-OutputItem", "variantKey": "Expr", - "Expr": "0x55e795dda990-Expr" + "Expr": "0x56478df24990-Expr" }, { - "id": "0x55e795dda990-Expr", + "id": "0x56478df24990-Expr", "variantKey": "Designator", - "Designator": "0x55e795dba100-Designator" + "Designator": "0x56478df04100-Designator" }, { - "id": "0x55e795dba100-Designator", + "id": "0x56478df04100-Designator", "variantKey": "DataRef", - "DataRef": "0x55e795dba110-DataRef" + "DataRef": "0x56478df04110-DataRef" }, { - "id": "0x55e795dba110-DataRef", + "id": "0x56478df04110-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e795de7260-ArrayElement" + "ArrayElement": "0x56478df31260-ArrayElement" }, { - "id": "0x55e795de7260-ArrayElement", - "base": "0x55e795de7260-DataRef", + "id": "0x56478df31260-ArrayElement", + "base": "0x56478df31260-DataRef", "subscripts": [ - "0x55e795de3cc0-SectionSubscript" + "0x56478df2dcc0-SectionSubscript" ] }, { - "id": "0x55e795de7260-DataRef", + "id": "0x56478df31260-DataRef", "variantKey": "Name", - "Name": "0x55e795de7260-Name" + "Name": "0x56478df31260-Name" }, { - "id": "0x55e795de7260-Name", + "id": "0x56478df31260-Name", "source": "vec" }, { - "id": "0x55e795de3cc0-SectionSubscript", + "id": "0x56478df2dcc0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e795de3cc0-SubscriptTriplet" + "SubscriptTriplet": "0x56478df2dcc0-SubscriptTriplet" }, { - "id": "0x55e795de3cc0-SubscriptTriplet", - "Expr": "0x55e795dda8a0-Expr" + "id": "0x56478df2dcc0-SubscriptTriplet", + "start": "0x56478df24580-Expr", + "end": "0x56478df247c0-Expr", + "stride": "0x56478df248a0-Expr" }, { - "id": "0x55e795dda580-Expr", + "id": "0x56478df24580-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dda5a0-LiteralConstant" + "LiteralConstant": "0x56478df245a0-LiteralConstant" }, { - "id": "0x55e795dda5a0-LiteralConstant", + "id": "0x56478df245a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dda5a0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df245a0-IntLiteralConstant" }, { - "id": "0x55e795dda5a0-IntLiteralConstant", + "id": "0x56478df245a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55e795dda7c0-Expr", + "id": "0x56478df247c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dda7e0-LiteralConstant" + "LiteralConstant": "0x56478df247e0-LiteralConstant" }, { - "id": "0x55e795dda7e0-LiteralConstant", + "id": "0x56478df247e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dda7e0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df247e0-IntLiteralConstant" }, { - "id": "0x55e795dda7e0-IntLiteralConstant", + "id": "0x56478df247e0-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x55e795dda8a0-Expr", + "id": "0x56478df248a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795dda8c0-LiteralConstant" + "LiteralConstant": "0x56478df248c0-LiteralConstant" }, { - "id": "0x55e795dda8c0-LiteralConstant", + "id": "0x56478df248c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795dda8c0-IntLiteralConstant" + "IntLiteralConstant": "0x56478df248c0-IntLiteralConstant" }, { - "id": "0x55e795dda8c0-IntLiteralConstant", + "id": "0x56478df248c0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55e795ddb000-ExecutionPartConstruct", + "id": "0x56478df25000-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e795ddb000-ExecutableConstruct" + "ExecutableConstruct": "0x56478df25000-ExecutableConstruct" }, { - "id": "0x55e795ddb000-ExecutableConstruct", + "id": "0x56478df25000-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e795ddb000-Statement" + "Statement": "0x56478df25000-Statement" }, { - "id": "0x55e795ddb000-Statement", - "statement": "0x55e795ddb010-ActionStmt", + "id": "0x56478df25000-Statement", + "statement": "0x56478df25010-ActionStmt", "source": "print *, vec(:)" }, { - "id": "0x55e795ddb010-ActionStmt", + "id": "0x56478df25010-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e795ddae80-PrintStmt" + "PrintStmt": "0x56478df24e80-PrintStmt" }, { - "id": "0x55e795ddae80-PrintStmt", - "Format": "0x55e795ddae98-Format", + "id": "0x56478df24e80-PrintStmt", + "Format": "0x56478df24e98-Format", "OutputItem": [ - "0x55e795ddad30-OutputItem" + "0x56478df24d30-OutputItem" ] }, { - "id": "0x55e795ddae98-Format", + "id": "0x56478df24e98-Format", "variantKey": "Star", - "Star": "0x55e795ddae98-Star" + "Star": "0x56478df24e98-Star" }, { - "id": "0x55e795ddae98-Star" + "id": "0x56478df24e98-Star" }, { - "id": "0x55e795ddad30-OutputItem", + "id": "0x56478df24d30-OutputItem", "variantKey": "Expr", - "Expr": "0x55e795ddad30-Expr" + "Expr": "0x56478df24d30-Expr" }, { - "id": "0x55e795ddad30-Expr", + "id": "0x56478df24d30-Expr", "variantKey": "Designator", - "Designator": "0x55e795dba160-Designator" + "Designator": "0x56478df04160-Designator" }, { - "id": "0x55e795dba160-Designator", + "id": "0x56478df04160-Designator", "variantKey": "DataRef", - "DataRef": "0x55e795dba170-DataRef" + "DataRef": "0x56478df04170-DataRef" }, { - "id": "0x55e795dba170-DataRef", + "id": "0x56478df04170-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e795de72a0-ArrayElement" + "ArrayElement": "0x56478df312a0-ArrayElement" }, { - "id": "0x55e795de72a0-ArrayElement", - "base": "0x55e795de72a0-DataRef", + "id": "0x56478df312a0-ArrayElement", + "base": "0x56478df312a0-DataRef", "subscripts": [ - "0x55e795de3ea0-SectionSubscript" + "0x56478df2dea0-SectionSubscript" ] }, { - "id": "0x55e795de72a0-DataRef", + "id": "0x56478df312a0-DataRef", "variantKey": "Name", - "Name": "0x55e795de72a0-Name" + "Name": "0x56478df312a0-Name" }, { - "id": "0x55e795de72a0-Name", + "id": "0x56478df312a0-Name", "source": "vec" }, { - "id": "0x55e795de3ea0-SectionSubscript", + "id": "0x56478df2dea0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e795de3ea0-SubscriptTriplet" + "SubscriptTriplet": "0x56478df2dea0-SubscriptTriplet" }, { - "id": "0x55e795de3ea0-SubscriptTriplet" + "id": "0x56478df2dea0-SubscriptTriplet" }, { - "id": "0x55e795ddb690-ExecutionPartConstruct", + "id": "0x56478df25690-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55e795ddb690-ExecutableConstruct" + "ExecutableConstruct": "0x56478df25690-ExecutableConstruct" }, { - "id": "0x55e795ddb690-ExecutableConstruct", + "id": "0x56478df25690-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55e795ddb690-Statement" + "Statement": "0x56478df25690-Statement" }, { - "id": "0x55e795ddb690-Statement", - "statement": "0x55e795ddb6a0-ActionStmt", + "id": "0x56478df25690-Statement", + "statement": "0x56478df256a0-ActionStmt", "source": "print *, vec(8:3:-2)" }, { - "id": "0x55e795ddb6a0-ActionStmt", + "id": "0x56478df256a0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x55e795ddb580-PrintStmt" + "PrintStmt": "0x56478df25580-PrintStmt" }, { - "id": "0x55e795ddb580-PrintStmt", - "Format": "0x55e795ddb598-Format", + "id": "0x56478df25580-PrintStmt", + "Format": "0x56478df25598-Format", "OutputItem": [ - "0x55e795ddb4a0-OutputItem" + "0x56478df254a0-OutputItem" ] }, { - "id": "0x55e795ddb598-Format", + "id": "0x56478df25598-Format", "variantKey": "Star", - "Star": "0x55e795ddb598-Star" + "Star": "0x56478df25598-Star" }, { - "id": "0x55e795ddb598-Star" + "id": "0x56478df25598-Star" }, { - "id": "0x55e795ddb4a0-OutputItem", + "id": "0x56478df254a0-OutputItem", "variantKey": "Expr", - "Expr": "0x55e795ddb4a0-Expr" + "Expr": "0x56478df254a0-Expr" }, { - "id": "0x55e795ddb4a0-Expr", + "id": "0x56478df254a0-Expr", "variantKey": "Designator", - "Designator": "0x55e795ddb430-Designator" + "Designator": "0x56478df25430-Designator" }, { - "id": "0x55e795ddb430-Designator", + "id": "0x56478df25430-Designator", "variantKey": "DataRef", - "DataRef": "0x55e795ddb440-DataRef" + "DataRef": "0x56478df25440-DataRef" }, { - "id": "0x55e795ddb440-DataRef", + "id": "0x56478df25440-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x55e795de7300-ArrayElement" + "ArrayElement": "0x56478df31300-ArrayElement" }, { - "id": "0x55e795de7300-ArrayElement", - "base": "0x55e795de7300-DataRef", + "id": "0x56478df31300-ArrayElement", + "base": "0x56478df31300-DataRef", "subscripts": [ - "0x55e795de4040-SectionSubscript" + "0x56478df2e040-SectionSubscript" ] }, { - "id": "0x55e795de7300-DataRef", + "id": "0x56478df31300-DataRef", "variantKey": "Name", - "Name": "0x55e795de7300-Name" + "Name": "0x56478df31300-Name" }, { - "id": "0x55e795de7300-Name", + "id": "0x56478df31300-Name", "source": "vec" }, { - "id": "0x55e795de4040-SectionSubscript", + "id": "0x56478df2e040-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x55e795de4040-SubscriptTriplet" + "SubscriptTriplet": "0x56478df2e040-SubscriptTriplet" }, { - "id": "0x55e795de4040-SubscriptTriplet", - "Expr": "0x55e795ddb2f0-Expr" + "id": "0x56478df2e040-SubscriptTriplet", + "start": "0x56478df25050-Expr", + "end": "0x56478df25130-Expr", + "stride": "0x56478df252f0-Expr" }, { - "id": "0x55e795ddb050-Expr", + "id": "0x56478df25050-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795ddb070-LiteralConstant" + "LiteralConstant": "0x56478df25070-LiteralConstant" }, { - "id": "0x55e795ddb070-LiteralConstant", + "id": "0x56478df25070-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795ddb070-IntLiteralConstant" + "IntLiteralConstant": "0x56478df25070-IntLiteralConstant" }, { - "id": "0x55e795ddb070-IntLiteralConstant", + "id": "0x56478df25070-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55e795ddb130-Expr", + "id": "0x56478df25130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795ddb150-LiteralConstant" + "LiteralConstant": "0x56478df25150-LiteralConstant" }, { - "id": "0x55e795ddb150-LiteralConstant", + "id": "0x56478df25150-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795ddb150-IntLiteralConstant" + "IntLiteralConstant": "0x56478df25150-IntLiteralConstant" }, { - "id": "0x55e795ddb150-IntLiteralConstant", + "id": "0x56478df25150-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55e795ddb2f0-Expr", + "id": "0x56478df252f0-Expr", "variantKey": "Negate", - "Negate": "0x55e795ddb310-Negate" + "Negate": "0x56478df25310-Negate" }, { - "id": "0x55e795ddb310-Negate", - "Expr": "0x55e795ddb210-Expr", + "id": "0x56478df25310-Negate", + "Expr": "0x56478df25210-Expr", "op": "NEGATE" }, { - "id": "0x55e795ddb210-Expr", + "id": "0x56478df25210-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55e795ddb230-LiteralConstant" + "LiteralConstant": "0x56478df25230-LiteralConstant" }, { - "id": "0x55e795ddb230-LiteralConstant", + "id": "0x56478df25230-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55e795ddb230-IntLiteralConstant" + "IntLiteralConstant": "0x56478df25230-IntLiteralConstant" }, { - "id": "0x55e795ddb230-IntLiteralConstant", + "id": "0x56478df25230-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55e795dde680-Statement", - "statement": "0x55e795dde690-EndProgramStmt", + "id": "0x56478df28680-Statement", + "statement": "0x56478df28690-EndProgramStmt", "source": "end program SUBSCRIPT_TRIPLET" }, { - "id": "0x55e795dde690-EndProgramStmt", - "Name": "0x55e795dde690-Name" + "id": "0x56478df28690-EndProgramStmt", + "Name": "0x56478df28690-Name" }, { - "id": "0x55e795dde690-Name", + "id": "0x56478df28690-Name", "source": "SUBSCRIPT_TRIPLET" } ], diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json index 14a69a65..34cc3b1c 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json @@ -1,1146 +1,1149 @@ { "nodes": [ { - "id": "0x56196c251f00-Program", + "id": "0x561d88ccaf00-Program", "ProgramUnit": [ - "0x56196c28d810-ProgramUnit" + "0x561d88d06810-ProgramUnit" ] }, { - "id": "0x56196c28d810-ProgramUnit", + "id": "0x561d88d06810-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x56196c285a10-MainProgram" + "MainProgram": "0x561d88cfea10-MainProgram" }, { - "id": "0x56196c285a10-MainProgram", - "SpecificationPart": "0x56196c285ab0-SpecificationPart", - "ExecutionPart": "0x56196c285a98-ExecutionPart", - "Statement": "0x56196c285a10-Statement" + "id": "0x561d88cfea10-MainProgram", + "SpecificationPart": "0x561d88cfeab0-SpecificationPart", + "ExecutionPart": "0x561d88cfea98-ExecutionPart", + "Statement": "0x561d88cfea10-Statement" }, { - "id": "0x56196c285ab0-SpecificationPart", - "ImplicitPart": "0x56196c285ac8-ImplicitPart", + "id": "0x561d88cfeab0-SpecificationPart", + "ImplicitPart": "0x561d88cfeac8-ImplicitPart", "DeclarationConstruct": [ - "0x56196c25eda0-DeclarationConstruct", - "0x56196c25f110-DeclarationConstruct", - "0x56196c27ec00-DeclarationConstruct" + "0x561d88cd7da0-DeclarationConstruct", + "0x561d88cd8110-DeclarationConstruct", + "0x561d88cf7c00-DeclarationConstruct" ] }, { - "id": "0x56196c285ac8-ImplicitPart" + "id": "0x561d88cfeac8-ImplicitPart" }, { - "id": "0x56196c25eda0-DeclarationConstruct", + "id": "0x561d88cd7da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56196c25eda0-SpecificationConstruct" + "SpecificationConstruct": "0x561d88cd7da0-SpecificationConstruct" }, { - "id": "0x56196c25eda0-SpecificationConstruct", + "id": "0x561d88cd7da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56196c25eda0-Statement" + "Statement": "0x561d88cd7da0-Statement" }, { - "id": "0x56196c25eda0-Statement", - "statement": "0x56196c28e860-TypeDeclarationStmt", + "id": "0x561d88cd7da0-Statement", + "statement": "0x561d88d07860-TypeDeclarationStmt", "source": "real,dimension(1:10) :: a" }, { - "id": "0x56196c28e860-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56196c28e890-DeclarationTypeSpec", + "id": "0x561d88d07860-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561d88d07890-DeclarationTypeSpec", "AttrSpec": [ - "0x56196c288250-AttrSpec" + "0x561d88d01250-AttrSpec" ], "EntityDecl": [ - "0x56196c27cb70-EntityDecl" + "0x561d88cf5b70-EntityDecl" ] }, { - "id": "0x56196c28e890-DeclarationTypeSpec", + "id": "0x561d88d07890-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56196c28e890-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x561d88d07890-IntrinsicTypeSpec" }, { - "id": "0x56196c28e890-IntrinsicTypeSpec", + "id": "0x561d88d07890-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x56196c28e890-Real" + "Real": "0x561d88d07890-Real" }, { - "id": "0x56196c28e890-Real" + "id": "0x561d88d07890-Real" }, { - "id": "0x56196c288250-AttrSpec", + "id": "0x561d88d01250-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x56196c288250-ArraySpec" + "ArraySpec": "0x561d88d01250-ArraySpec" }, { - "id": "0x56196c288250-ArraySpec", + "id": "0x561d88d01250-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x56196c28d7b0-ExplicitShapeSpec" + "0x561d88d067b0-ExplicitShapeSpec" ] }, { - "id": "0x56196c28d7b0-ExplicitShapeSpec", - "lower_bound": "0x56196c28d7b8-SpecificationExpr", - "upper_bound": "0x56196c28d7b0-SpecificationExpr" + "id": "0x561d88d067b0-ExplicitShapeSpec", + "lower_bound": "0x561d88d067b8-SpecificationExpr", + "upper_bound": "0x561d88d067b0-SpecificationExpr" }, { - "id": "0x56196c28d7b8-SpecificationExpr", - "Expr": "0x56196c1f1790-Expr" + "id": "0x561d88d067b8-SpecificationExpr", + "Expr": "0x561d88c6a790-Expr" }, { - "id": "0x56196c1f1790-Expr", + "id": "0x561d88c6a790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c1f17b0-LiteralConstant" + "LiteralConstant": "0x561d88c6a7b0-LiteralConstant" }, { - "id": "0x56196c1f17b0-LiteralConstant", + "id": "0x561d88c6a7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c1f17b0-IntLiteralConstant" + "IntLiteralConstant": "0x561d88c6a7b0-IntLiteralConstant" }, { - "id": "0x56196c1f17b0-IntLiteralConstant", + "id": "0x561d88c6a7b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56196c28d7b0-SpecificationExpr", - "Expr": "0x56196c27c780-Expr" + "id": "0x561d88d067b0-SpecificationExpr", + "Expr": "0x561d88cf5780-Expr" }, { - "id": "0x56196c27c780-Expr", + "id": "0x561d88cf5780-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27c7a0-LiteralConstant" + "LiteralConstant": "0x561d88cf57a0-LiteralConstant" }, { - "id": "0x56196c27c7a0-LiteralConstant", + "id": "0x561d88cf57a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27c7a0-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf57a0-IntLiteralConstant" }, { - "id": "0x56196c27c7a0-IntLiteralConstant", + "id": "0x561d88cf57a0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56196c27cb70-EntityDecl", - "Name": "0x56196c27cc28-Name" + "id": "0x561d88cf5b70-EntityDecl", + "Name": "0x561d88cf5c28-Name" }, { - "id": "0x56196c27cc28-Name", + "id": "0x561d88cf5c28-Name", "source": "a" }, { - "id": "0x56196c25f110-DeclarationConstruct", + "id": "0x561d88cd8110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x56196c25f110-SpecificationConstruct" + "SpecificationConstruct": "0x561d88cd8110-SpecificationConstruct" }, { - "id": "0x56196c25f110-SpecificationConstruct", + "id": "0x561d88cd8110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x56196c25f110-Statement" + "Statement": "0x561d88cd8110-Statement" }, { - "id": "0x56196c25f110-Statement", - "statement": "0x56196c27d950-TypeDeclarationStmt", + "id": "0x561d88cd8110-Statement", + "statement": "0x561d88cf6950-TypeDeclarationStmt", "source": "real,parameter :: ans=45." }, { - "id": "0x56196c27d950-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x56196c27d980-DeclarationTypeSpec", + "id": "0x561d88cf6950-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561d88cf6980-DeclarationTypeSpec", "AttrSpec": [ - "0x56196c295850-AttrSpec" + "0x561d88d0e850-AttrSpec" ], "EntityDecl": [ - "0x56196c2954a0-EntityDecl" + "0x561d88d0e4a0-EntityDecl" ] }, { - "id": "0x56196c27d980-DeclarationTypeSpec", + "id": "0x561d88cf6980-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x56196c27d980-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x561d88cf6980-IntrinsicTypeSpec" }, { - "id": "0x56196c27d980-IntrinsicTypeSpec", + "id": "0x561d88cf6980-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x56196c27d980-Real" + "Real": "0x561d88cf6980-Real" }, { - "id": "0x56196c27d980-Real" + "id": "0x561d88cf6980-Real" }, { - "id": "0x56196c295850-AttrSpec", + "id": "0x561d88d0e850-AttrSpec", "variantKey": "Parameter", - "Parameter": "0x56196c295850-Parameter" + "Parameter": "0x561d88d0e850-Parameter" }, { - "id": "0x56196c295850-Parameter", + "id": "0x561d88d0e850-Parameter", "keyword": "Parameter" }, { - "id": "0x56196c2954a0-EntityDecl", - "Name": "0x56196c295558-Name", - "Initialization": "0x56196c2954a0-Initialization" + "id": "0x561d88d0e4a0-EntityDecl", + "Name": "0x561d88d0e558-Name", + "Initialization": "0x561d88d0e4a0-Initialization" }, { - "id": "0x56196c295558-Name", + "id": "0x561d88d0e558-Name", "source": "ans" }, { - "id": "0x56196c2954a0-Initialization", + "id": "0x561d88d0e4a0-Initialization", "variantKey": "Expr", - "Expr": "0x56196c2953b0-Expr" + "Expr": "0x561d88d0e3b0-Expr" }, { - "id": "0x56196c2953b0-Expr", + "id": "0x561d88d0e3b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c2953d0-LiteralConstant" + "LiteralConstant": "0x561d88d0e3d0-LiteralConstant" }, { - "id": "0x56196c2953d0-LiteralConstant", + "id": "0x561d88d0e3d0-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c2953d0-RealLiteralConstant" + "RealLiteralConstant": "0x561d88d0e3d0-RealLiteralConstant" }, { - "id": "0x56196c2953d0-RealLiteralConstant", - "real": "0x56196c2953d0-Real" + "id": "0x561d88d0e3d0-RealLiteralConstant", + "real": "0x561d88d0e3d0-Real" }, { - "id": "0x56196c2953d0-Real", + "id": "0x561d88d0e3d0-Real", "source": "45." }, { - "id": "0x56196c27ec00-DeclarationConstruct", + "id": "0x561d88cf7c00-DeclarationConstruct", "variantKey": "Statement", - "Statement": "0x56196c27ec00-Statement" + "Statement": "0x561d88cf7c00-Statement" }, { - "id": "0x56196c27ec00-Statement", - "statement": "0x56196c28d700-DataStmt", + "id": "0x561d88cf7c00-Statement", + "statement": "0x561d88d06700-DataStmt", "source": "data a/1.,2.,3.,4.,5.,6.,7.,8.,9.,10./" }, { - "id": "0x56196c28d700-DataStmt", + "id": "0x561d88d06700-DataStmt", "DataStmtSet": [ - "0x56196c28e7e0-DataStmtSet" + "0x561d88d077e0-DataStmtSet" ] }, { - "id": "0x56196c28e7e0-DataStmtSet", + "id": "0x561d88d077e0-DataStmtSet", "DataStmtObject": [ - "0x56196c27d720-DataStmtObject" + "0x561d88cf6720-DataStmtObject" ], "DataStmtValue": [ - "0x56196c27e760-DataStmtValue", - "0x56196c28e220-DataStmtValue", - "0x56196c28e4a0-DataStmtValue", - "0x56196c27cf20-DataStmtValue", - "0x56196c27d210-DataStmtValue", - "0x56196c27da60-DataStmtValue", - "0x56196c27dd50-DataStmtValue", - "0x56196c27e040-DataStmtValue", - "0x56196c27e330-DataStmtValue", - "0x56196c27e620-DataStmtValue" + "0x561d88cf7760-DataStmtValue", + "0x561d88d07220-DataStmtValue", + "0x561d88d074a0-DataStmtValue", + "0x561d88cf5f20-DataStmtValue", + "0x561d88cf6210-DataStmtValue", + "0x561d88cf6a60-DataStmtValue", + "0x561d88cf6d50-DataStmtValue", + "0x561d88cf7040-DataStmtValue", + "0x561d88cf7330-DataStmtValue", + "0x561d88cf7620-DataStmtValue" ] }, { - "id": "0x56196c27d720-DataStmtObject", + "id": "0x561d88cf6720-DataStmtObject", "variantKey": "Variable", - "Variable": "0x56196c28d7d0-Variable" + "Variable": "0x561d88d067d0-Variable" }, { - "id": "0x56196c28d7d0-Variable", + "id": "0x561d88d067d0-Variable", "variantKey": "Designator", - "Designator": "0x56196c295680-Designator" + "Designator": "0x561d88d0e680-Designator" }, { - "id": "0x56196c295680-Designator", + "id": "0x561d88d0e680-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c295690-DataRef" + "DataRef": "0x561d88d0e690-DataRef" }, { - "id": "0x56196c295690-DataRef", + "id": "0x561d88d0e690-DataRef", "variantKey": "Name", - "Name": "0x56196c295690-Name" + "Name": "0x561d88d0e690-Name" }, { - "id": "0x56196c295690-Name", + "id": "0x561d88d0e690-Name", "source": "a" }, { - "id": "0x56196c27e760-DataStmtValue", - "DataStmtConstant": "0x56196c27e768-DataStmtConstant" + "id": "0x561d88cf7760-DataStmtValue", + "DataStmtConstant": "0x561d88cf7768-DataStmtConstant" }, { - "id": "0x56196c27e768-DataStmtConstant", + "id": "0x561d88cf7768-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27e788-LiteralConstant" + "LiteralConstant": "0x561d88cf7788-LiteralConstant" }, { - "id": "0x56196c27e788-LiteralConstant", + "id": "0x561d88cf7788-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27e788-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf7788-RealLiteralConstant" }, { - "id": "0x56196c27e788-RealLiteralConstant", - "real": "0x56196c27e788-Real" + "id": "0x561d88cf7788-RealLiteralConstant", + "real": "0x561d88cf7788-Real" }, { - "id": "0x56196c27e788-Real", + "id": "0x561d88cf7788-Real", "source": "1." }, { - "id": "0x56196c28e220-DataStmtValue", - "DataStmtConstant": "0x56196c28e228-DataStmtConstant" + "id": "0x561d88d07220-DataStmtValue", + "DataStmtConstant": "0x561d88d07228-DataStmtConstant" }, { - "id": "0x56196c28e228-DataStmtConstant", + "id": "0x561d88d07228-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c28e248-LiteralConstant" + "LiteralConstant": "0x561d88d07248-LiteralConstant" }, { - "id": "0x56196c28e248-LiteralConstant", + "id": "0x561d88d07248-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c28e248-RealLiteralConstant" + "RealLiteralConstant": "0x561d88d07248-RealLiteralConstant" }, { - "id": "0x56196c28e248-RealLiteralConstant", - "real": "0x56196c28e248-Real" + "id": "0x561d88d07248-RealLiteralConstant", + "real": "0x561d88d07248-Real" }, { - "id": "0x56196c28e248-Real", + "id": "0x561d88d07248-Real", "source": "2." }, { - "id": "0x56196c28e4a0-DataStmtValue", - "DataStmtConstant": "0x56196c28e4a8-DataStmtConstant" + "id": "0x561d88d074a0-DataStmtValue", + "DataStmtConstant": "0x561d88d074a8-DataStmtConstant" }, { - "id": "0x56196c28e4a8-DataStmtConstant", + "id": "0x561d88d074a8-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c28e4c8-LiteralConstant" + "LiteralConstant": "0x561d88d074c8-LiteralConstant" }, { - "id": "0x56196c28e4c8-LiteralConstant", + "id": "0x561d88d074c8-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c28e4c8-RealLiteralConstant" + "RealLiteralConstant": "0x561d88d074c8-RealLiteralConstant" }, { - "id": "0x56196c28e4c8-RealLiteralConstant", - "real": "0x56196c28e4c8-Real" + "id": "0x561d88d074c8-RealLiteralConstant", + "real": "0x561d88d074c8-Real" }, { - "id": "0x56196c28e4c8-Real", + "id": "0x561d88d074c8-Real", "source": "3." }, { - "id": "0x56196c27cf20-DataStmtValue", - "DataStmtConstant": "0x56196c27cf28-DataStmtConstant" + "id": "0x561d88cf5f20-DataStmtValue", + "DataStmtConstant": "0x561d88cf5f28-DataStmtConstant" }, { - "id": "0x56196c27cf28-DataStmtConstant", + "id": "0x561d88cf5f28-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27cf48-LiteralConstant" + "LiteralConstant": "0x561d88cf5f48-LiteralConstant" }, { - "id": "0x56196c27cf48-LiteralConstant", + "id": "0x561d88cf5f48-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27cf48-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf5f48-RealLiteralConstant" }, { - "id": "0x56196c27cf48-RealLiteralConstant", - "real": "0x56196c27cf48-Real" + "id": "0x561d88cf5f48-RealLiteralConstant", + "real": "0x561d88cf5f48-Real" }, { - "id": "0x56196c27cf48-Real", + "id": "0x561d88cf5f48-Real", "source": "4." }, { - "id": "0x56196c27d210-DataStmtValue", - "DataStmtConstant": "0x56196c27d218-DataStmtConstant" + "id": "0x561d88cf6210-DataStmtValue", + "DataStmtConstant": "0x561d88cf6218-DataStmtConstant" }, { - "id": "0x56196c27d218-DataStmtConstant", + "id": "0x561d88cf6218-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27d238-LiteralConstant" + "LiteralConstant": "0x561d88cf6238-LiteralConstant" }, { - "id": "0x56196c27d238-LiteralConstant", + "id": "0x561d88cf6238-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27d238-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf6238-RealLiteralConstant" }, { - "id": "0x56196c27d238-RealLiteralConstant", - "real": "0x56196c27d238-Real" + "id": "0x561d88cf6238-RealLiteralConstant", + "real": "0x561d88cf6238-Real" }, { - "id": "0x56196c27d238-Real", + "id": "0x561d88cf6238-Real", "source": "5." }, { - "id": "0x56196c27da60-DataStmtValue", - "DataStmtConstant": "0x56196c27da68-DataStmtConstant" + "id": "0x561d88cf6a60-DataStmtValue", + "DataStmtConstant": "0x561d88cf6a68-DataStmtConstant" }, { - "id": "0x56196c27da68-DataStmtConstant", + "id": "0x561d88cf6a68-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27da88-LiteralConstant" + "LiteralConstant": "0x561d88cf6a88-LiteralConstant" }, { - "id": "0x56196c27da88-LiteralConstant", + "id": "0x561d88cf6a88-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27da88-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf6a88-RealLiteralConstant" }, { - "id": "0x56196c27da88-RealLiteralConstant", - "real": "0x56196c27da88-Real" + "id": "0x561d88cf6a88-RealLiteralConstant", + "real": "0x561d88cf6a88-Real" }, { - "id": "0x56196c27da88-Real", + "id": "0x561d88cf6a88-Real", "source": "6." }, { - "id": "0x56196c27dd50-DataStmtValue", - "DataStmtConstant": "0x56196c27dd58-DataStmtConstant" + "id": "0x561d88cf6d50-DataStmtValue", + "DataStmtConstant": "0x561d88cf6d58-DataStmtConstant" }, { - "id": "0x56196c27dd58-DataStmtConstant", + "id": "0x561d88cf6d58-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27dd78-LiteralConstant" + "LiteralConstant": "0x561d88cf6d78-LiteralConstant" }, { - "id": "0x56196c27dd78-LiteralConstant", + "id": "0x561d88cf6d78-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27dd78-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf6d78-RealLiteralConstant" }, { - "id": "0x56196c27dd78-RealLiteralConstant", - "real": "0x56196c27dd78-Real" + "id": "0x561d88cf6d78-RealLiteralConstant", + "real": "0x561d88cf6d78-Real" }, { - "id": "0x56196c27dd78-Real", + "id": "0x561d88cf6d78-Real", "source": "7." }, { - "id": "0x56196c27e040-DataStmtValue", - "DataStmtConstant": "0x56196c27e048-DataStmtConstant" + "id": "0x561d88cf7040-DataStmtValue", + "DataStmtConstant": "0x561d88cf7048-DataStmtConstant" }, { - "id": "0x56196c27e048-DataStmtConstant", + "id": "0x561d88cf7048-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27e068-LiteralConstant" + "LiteralConstant": "0x561d88cf7068-LiteralConstant" }, { - "id": "0x56196c27e068-LiteralConstant", + "id": "0x561d88cf7068-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27e068-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf7068-RealLiteralConstant" }, { - "id": "0x56196c27e068-RealLiteralConstant", - "real": "0x56196c27e068-Real" + "id": "0x561d88cf7068-RealLiteralConstant", + "real": "0x561d88cf7068-Real" }, { - "id": "0x56196c27e068-Real", + "id": "0x561d88cf7068-Real", "source": "8." }, { - "id": "0x56196c27e330-DataStmtValue", - "DataStmtConstant": "0x56196c27e338-DataStmtConstant" + "id": "0x561d88cf7330-DataStmtValue", + "DataStmtConstant": "0x561d88cf7338-DataStmtConstant" }, { - "id": "0x56196c27e338-DataStmtConstant", + "id": "0x561d88cf7338-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27e358-LiteralConstant" + "LiteralConstant": "0x561d88cf7358-LiteralConstant" }, { - "id": "0x56196c27e358-LiteralConstant", + "id": "0x561d88cf7358-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27e358-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf7358-RealLiteralConstant" }, { - "id": "0x56196c27e358-RealLiteralConstant", - "real": "0x56196c27e358-Real" + "id": "0x561d88cf7358-RealLiteralConstant", + "real": "0x561d88cf7358-Real" }, { - "id": "0x56196c27e358-Real", + "id": "0x561d88cf7358-Real", "source": "9." }, { - "id": "0x56196c27e620-DataStmtValue", - "DataStmtConstant": "0x56196c27e628-DataStmtConstant" + "id": "0x561d88cf7620-DataStmtValue", + "DataStmtConstant": "0x561d88cf7628-DataStmtConstant" }, { - "id": "0x56196c27e628-DataStmtConstant", + "id": "0x561d88cf7628-DataStmtConstant", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27e648-LiteralConstant" + "LiteralConstant": "0x561d88cf7648-LiteralConstant" }, { - "id": "0x56196c27e648-LiteralConstant", + "id": "0x561d88cf7648-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x56196c27e648-RealLiteralConstant" + "RealLiteralConstant": "0x561d88cf7648-RealLiteralConstant" }, { - "id": "0x56196c27e648-RealLiteralConstant", - "real": "0x56196c27e648-Real" + "id": "0x561d88cf7648-RealLiteralConstant", + "real": "0x561d88cf7648-Real" }, { - "id": "0x56196c27e648-Real", + "id": "0x561d88cf7648-Real", "source": "10." }, { - "id": "0x56196c285a98-ExecutionPart", + "id": "0x561d88cfea98-ExecutionPart", "ExecutionPartConstruct": [ - "0x56196c27eac0-ExecutionPartConstruct", - "0x56196c27fd30-ExecutionPartConstruct", - "0x56196c280780-ExecutionPartConstruct" + "0x561d88cf7ac0-ExecutionPartConstruct", + "0x561d88cf8d30-ExecutionPartConstruct", + "0x561d88cf9780-ExecutionPartConstruct" ] }, { - "id": "0x56196c285a98-ExecutionPartConstruct" + "id": "0x561d88cfea98-ExecutionPartConstruct" }, { - "id": "0x56196c27eac0-ExecutionPartConstruct", + "id": "0x561d88cf7ac0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56196c27eac0-ExecutableConstruct" + "ExecutableConstruct": "0x561d88cf7ac0-ExecutableConstruct" }, { - "id": "0x56196c27eac0-ExecutableConstruct", + "id": "0x561d88cf7ac0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56196c27eac0-Statement" + "Statement": "0x561d88cf7ac0-Statement" }, { - "id": "0x56196c27eac0-Statement", - "statement": "0x56196c27ead0-ActionStmt", + "id": "0x561d88cf7ac0-Statement", + "statement": "0x561d88cf7ad0-ActionStmt", "source": "i=2*2147483648_8-2147483648_8-2147483646_8" }, { - "id": "0x56196c27ead0-ActionStmt", + "id": "0x561d88cf7ad0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x56196c25fcf0-AssignmentStmt" + "AssignmentStmt": "0x561d88cd8cf0-AssignmentStmt" }, { - "id": "0x56196c25fcf0-AssignmentStmt", - "Variable": "0x56196c25fdd0-Variable", - "Expr": "0x56196c25fd00-Expr" + "id": "0x561d88cd8cf0-AssignmentStmt", + "Variable": "0x561d88cd8dd0-Variable", + "Expr": "0x561d88cd8d00-Expr" }, { - "id": "0x56196c25fdd0-Variable", + "id": "0x561d88cd8dd0-Variable", "variantKey": "Designator", - "Designator": "0x56196c27d340-Designator" + "Designator": "0x561d88cf6340-Designator" }, { - "id": "0x56196c27d340-Designator", + "id": "0x561d88cf6340-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c27d350-DataRef" + "DataRef": "0x561d88cf6350-DataRef" }, { - "id": "0x56196c27d350-DataRef", + "id": "0x561d88cf6350-DataRef", "variantKey": "Name", - "Name": "0x56196c27d350-Name" + "Name": "0x561d88cf6350-Name" }, { - "id": "0x56196c27d350-Name", + "id": "0x561d88cf6350-Name", "source": "i" }, { - "id": "0x56196c25fd00-Expr", + "id": "0x561d88cd8d00-Expr", "variantKey": "Subtract", - "Subtract": "0x56196c25fd20-Subtract" + "Subtract": "0x561d88cd8d20-Subtract" }, { - "id": "0x56196c25fd20-Subtract", - "left": "0x56196c27d580-Expr", - "right": "0x56196c27cd80-Expr", + "id": "0x561d88cd8d20-Subtract", + "left": "0x561d88cf6580-Expr", + "right": "0x561d88cf5d80-Expr", "op": "SUBTRACT" }, { - "id": "0x56196c27d580-Expr", + "id": "0x561d88cf6580-Expr", "variantKey": "Subtract", - "Subtract": "0x56196c27d5a0-Subtract" + "Subtract": "0x561d88cf65a0-Subtract" }, { - "id": "0x56196c27d5a0-Subtract", - "left": "0x56196c27f4d0-Expr", - "right": "0x56196c27f3f0-Expr", + "id": "0x561d88cf65a0-Subtract", + "left": "0x561d88cf84d0-Expr", + "right": "0x561d88cf83f0-Expr", "op": "SUBTRACT" }, { - "id": "0x56196c27f4d0-Expr", + "id": "0x561d88cf84d0-Expr", "variantKey": "Multiply", - "Multiply": "0x56196c27f4f0-Multiply" + "Multiply": "0x561d88cf84f0-Multiply" }, { - "id": "0x56196c27f4f0-Multiply", - "left": "0x56196c27edb0-Expr", - "right": "0x56196c27ecd0-Expr", + "id": "0x561d88cf84f0-Multiply", + "left": "0x561d88cf7db0-Expr", + "right": "0x561d88cf7cd0-Expr", "op": "MULTIPLY" }, { - "id": "0x56196c27edb0-Expr", + "id": "0x561d88cf7db0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27edd0-LiteralConstant" + "LiteralConstant": "0x561d88cf7dd0-LiteralConstant" }, { - "id": "0x56196c27edd0-LiteralConstant", + "id": "0x561d88cf7dd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27edd0-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf7dd0-IntLiteralConstant" }, { - "id": "0x56196c27edd0-IntLiteralConstant", + "id": "0x561d88cf7dd0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x56196c27ecd0-Expr", + "id": "0x561d88cf7cd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27ecf0-LiteralConstant" + "LiteralConstant": "0x561d88cf7cf0-LiteralConstant" }, { - "id": "0x56196c27ecf0-LiteralConstant", + "id": "0x561d88cf7cf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27ecf0-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf7cf0-IntLiteralConstant" }, { - "id": "0x56196c27ecf0-IntLiteralConstant", + "id": "0x561d88cf7cf0-IntLiteralConstant", "CharBlock": "2147483648", - "KindParam": "0x56196c27ecf0-KindParam" + "KindParam": "0x561d88cf7cf0-KindParam" }, { - "id": "0x56196c27ecf0-KindParam", + "id": "0x561d88cf7cf0-KindParam", "variantKey": "uint64_t", "uint64_t": "8" }, { - "id": "0x56196c27f3f0-Expr", + "id": "0x561d88cf83f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27f410-LiteralConstant" + "LiteralConstant": "0x561d88cf8410-LiteralConstant" }, { - "id": "0x56196c27f410-LiteralConstant", + "id": "0x561d88cf8410-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27f410-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf8410-IntLiteralConstant" }, { - "id": "0x56196c27f410-IntLiteralConstant", + "id": "0x561d88cf8410-IntLiteralConstant", "CharBlock": "2147483648", - "KindParam": "0x56196c27f410-KindParam" + "KindParam": "0x561d88cf8410-KindParam" }, { - "id": "0x56196c27f410-KindParam", + "id": "0x561d88cf8410-KindParam", "variantKey": "uint64_t", "uint64_t": "8" }, { - "id": "0x56196c27cd80-Expr", + "id": "0x561d88cf5d80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27cda0-LiteralConstant" + "LiteralConstant": "0x561d88cf5da0-LiteralConstant" }, { - "id": "0x56196c27cda0-LiteralConstant", + "id": "0x561d88cf5da0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27cda0-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf5da0-IntLiteralConstant" }, { - "id": "0x56196c27cda0-IntLiteralConstant", + "id": "0x561d88cf5da0-IntLiteralConstant", "CharBlock": "2147483646", - "KindParam": "0x56196c27cda0-KindParam" + "KindParam": "0x561d88cf5da0-KindParam" }, { - "id": "0x56196c27cda0-KindParam", + "id": "0x561d88cf5da0-KindParam", "variantKey": "uint64_t", "uint64_t": "8" }, { - "id": "0x56196c27fd30-ExecutionPartConstruct", + "id": "0x561d88cf8d30-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56196c27fd30-ExecutableConstruct" + "ExecutableConstruct": "0x561d88cf8d30-ExecutableConstruct" }, { - "id": "0x56196c27fd30-ExecutableConstruct", + "id": "0x561d88cf8d30-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56196c27fd30-Statement" + "Statement": "0x561d88cf8d30-Statement" }, { - "id": "0x56196c27fd30-Statement", - "statement": "0x56196c27fd40-ActionStmt", + "id": "0x561d88cf8d30-Statement", + "statement": "0x561d88cf8d40-ActionStmt", "source": "a(1:10:i) = a(1:5)" }, { - "id": "0x56196c27fd40-ActionStmt", + "id": "0x561d88cf8d40-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x56196c27fb40-AssignmentStmt" + "AssignmentStmt": "0x561d88cf8b40-AssignmentStmt" }, { - "id": "0x56196c27fb40-AssignmentStmt", - "Variable": "0x56196c27fc20-Variable", - "Expr": "0x56196c27fb50-Expr" + "id": "0x561d88cf8b40-AssignmentStmt", + "Variable": "0x561d88cf8c20-Variable", + "Expr": "0x561d88cf8b50-Expr" }, { - "id": "0x56196c27fc20-Variable", + "id": "0x561d88cf8c20-Variable", "variantKey": "Designator", - "Designator": "0x56196c27db90-Designator" + "Designator": "0x561d88cf6b90-Designator" }, { - "id": "0x56196c27db90-Designator", + "id": "0x561d88cf6b90-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c27dba0-DataRef" + "DataRef": "0x561d88cf6ba0-DataRef" }, { - "id": "0x56196c27dba0-DataRef", + "id": "0x561d88cf6ba0-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x56196c28c4b0-ArrayElement" + "ArrayElement": "0x561d88d054b0-ArrayElement" }, { - "id": "0x56196c28c4b0-ArrayElement", - "base": "0x56196c28c4b0-DataRef", + "id": "0x561d88d054b0-ArrayElement", + "base": "0x561d88d054b0-DataRef", "subscripts": [ - "0x56196c288cc0-SectionSubscript" + "0x561d88d01cc0-SectionSubscript" ] }, { - "id": "0x56196c28c4b0-DataRef", + "id": "0x561d88d054b0-DataRef", "variantKey": "Name", - "Name": "0x56196c28c4b0-Name" + "Name": "0x561d88d054b0-Name" }, { - "id": "0x56196c28c4b0-Name", + "id": "0x561d88d054b0-Name", "source": "a" }, { - "id": "0x56196c288cc0-SectionSubscript", + "id": "0x561d88d01cc0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x56196c288cc0-SubscriptTriplet" + "SubscriptTriplet": "0x561d88d01cc0-SubscriptTriplet" }, { - "id": "0x56196c288cc0-SubscriptTriplet", - "Expr": "0x56196c27f050-Expr" + "id": "0x561d88d01cc0-SubscriptTriplet", + "start": "0x561d88cf7e90-Expr", + "end": "0x561d88cf7f70-Expr", + "stride": "0x561d88cf8050-Expr" }, { - "id": "0x56196c27ee90-Expr", + "id": "0x561d88cf7e90-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27eeb0-LiteralConstant" + "LiteralConstant": "0x561d88cf7eb0-LiteralConstant" }, { - "id": "0x56196c27eeb0-LiteralConstant", + "id": "0x561d88cf7eb0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27eeb0-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf7eb0-IntLiteralConstant" }, { - "id": "0x56196c27eeb0-IntLiteralConstant", + "id": "0x561d88cf7eb0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56196c27ef70-Expr", + "id": "0x561d88cf7f70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27ef90-LiteralConstant" + "LiteralConstant": "0x561d88cf7f90-LiteralConstant" }, { - "id": "0x56196c27ef90-LiteralConstant", + "id": "0x561d88cf7f90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27ef90-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf7f90-IntLiteralConstant" }, { - "id": "0x56196c27ef90-IntLiteralConstant", + "id": "0x561d88cf7f90-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x56196c27f050-Expr", + "id": "0x561d88cf8050-Expr", "variantKey": "Designator", - "Designator": "0x56196c2504d0-Designator" + "Designator": "0x561d88cc94d0-Designator" }, { - "id": "0x56196c2504d0-Designator", + "id": "0x561d88cc94d0-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c2504e0-DataRef" + "DataRef": "0x561d88cc94e0-DataRef" }, { - "id": "0x56196c2504e0-DataRef", + "id": "0x561d88cc94e0-DataRef", "variantKey": "Name", - "Name": "0x56196c2504e0-Name" + "Name": "0x561d88cc94e0-Name" }, { - "id": "0x56196c2504e0-Name", + "id": "0x561d88cc94e0-Name", "source": "i" }, { - "id": "0x56196c27fb50-Expr", + "id": "0x561d88cf8b50-Expr", "variantKey": "Designator", - "Designator": "0x56196c27fc50-Designator" + "Designator": "0x561d88cf8c50-Designator" }, { - "id": "0x56196c27fc50-Designator", + "id": "0x561d88cf8c50-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c27fc60-DataRef" + "DataRef": "0x561d88cf8c60-DataRef" }, { - "id": "0x56196c27fc60-DataRef", + "id": "0x561d88cf8c60-DataRef", "variantKey": "ArrayElement", - "ArrayElement": "0x56196c28cb90-ArrayElement" + "ArrayElement": "0x561d88d05b90-ArrayElement" }, { - "id": "0x56196c28cb90-ArrayElement", - "base": "0x56196c28cb90-DataRef", + "id": "0x561d88d05b90-ArrayElement", + "base": "0x561d88d05b90-DataRef", "subscripts": [ - "0x56196c288ea0-SectionSubscript" + "0x561d88d01ea0-SectionSubscript" ] }, { - "id": "0x56196c28cb90-DataRef", + "id": "0x561d88d05b90-DataRef", "variantKey": "Name", - "Name": "0x56196c28cb90-Name" + "Name": "0x561d88d05b90-Name" }, { - "id": "0x56196c28cb90-Name", + "id": "0x561d88d05b90-Name", "source": "a" }, { - "id": "0x56196c288ea0-SectionSubscript", + "id": "0x561d88d01ea0-SectionSubscript", "variantKey": "SubscriptTriplet", - "SubscriptTriplet": "0x56196c288ea0-SubscriptTriplet" + "SubscriptTriplet": "0x561d88d01ea0-SubscriptTriplet" }, { - "id": "0x56196c288ea0-SubscriptTriplet", - "Expr": "0x56196c27fa00-Expr" + "id": "0x561d88d01ea0-SubscriptTriplet", + "start": "0x561d88cf8920-Expr", + "end": "0x561d88cf8a00-Expr" }, { - "id": "0x56196c27f920-Expr", + "id": "0x561d88cf8920-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27f940-LiteralConstant" + "LiteralConstant": "0x561d88cf8940-LiteralConstant" }, { - "id": "0x56196c27f940-LiteralConstant", + "id": "0x561d88cf8940-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27f940-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf8940-IntLiteralConstant" }, { - "id": "0x56196c27f940-IntLiteralConstant", + "id": "0x561d88cf8940-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x56196c27fa00-Expr", + "id": "0x561d88cf8a00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c27fa20-LiteralConstant" + "LiteralConstant": "0x561d88cf8a20-LiteralConstant" }, { - "id": "0x56196c27fa20-LiteralConstant", + "id": "0x561d88cf8a20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56196c27fa20-IntLiteralConstant" + "IntLiteralConstant": "0x561d88cf8a20-IntLiteralConstant" }, { - "id": "0x56196c27fa20-IntLiteralConstant", + "id": "0x561d88cf8a20-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x56196c280780-ExecutionPartConstruct", + "id": "0x561d88cf9780-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56196c280780-ExecutableConstruct" + "ExecutableConstruct": "0x561d88cf9780-ExecutableConstruct" }, { - "id": "0x56196c280780-ExecutableConstruct", + "id": "0x561d88cf9780-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x56196c27f6e0-IfConstruct" + "IfConstruct": "0x561d88cf86e0-IfConstruct" }, { - "id": "0x56196c27f6e0-IfConstruct", - "Statement": "0x56196c27f7b0-Statement", + "id": "0x561d88cf86e0-IfConstruct", + "Statement": "0x561d88cf87b0-Statement", "ExecutionPartConstruct": [ - "0x56196c27e180-ExecutionPartConstruct" + "0x561d88cf7180-ExecutionPartConstruct" ], - "ElseBlock": "0x56196c27f720-ElseBlock", - "Statement": "0x56196c27f6e0-Statement" + "ElseBlock": "0x561d88cf8720-ElseBlock", + "Statement": "0x561d88cf86e0-Statement" }, { - "id": "0x56196c27f7b0-Statement", - "statement": "0x56196c27f7c0-IfThenStmt", + "id": "0x561d88cf87b0-Statement", + "statement": "0x561d88cf87c0-IfThenStmt", "source": "if(sum(a) == ans) then" }, { - "id": "0x56196c27f7c0-IfThenStmt", - "Expr": "0x56196c280130-Expr" + "id": "0x561d88cf87c0-IfThenStmt", + "Expr": "0x561d88cf9130-Expr" }, { - "id": "0x56196c280130-Expr", + "id": "0x561d88cf9130-Expr", "variantKey": "EQ", - "EQ": "0x56196c280150-EQ" + "EQ": "0x561d88cf9150-EQ" }, { - "id": "0x56196c280150-EQ", - "left": "0x56196c27fd80-Expr", - "right": "0x56196c280050-Expr", + "id": "0x561d88cf9150-EQ", + "left": "0x561d88cf8d80-Expr", + "right": "0x561d88cf9050-Expr", "op": "EQ" }, { - "id": "0x56196c27fd80-Expr", + "id": "0x561d88cf8d80-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x56196c27e5a0-FunctionReference" + "FunctionReference": "0x561d88cf75a0-FunctionReference" }, { - "id": "0x56196c27e5a0-FunctionReference", - "Call": "0x56196c27e5a0-Call" + "id": "0x561d88cf75a0-FunctionReference", + "Call": "0x561d88cf75a0-Call" }, { - "id": "0x56196c27e5a0-Call", - "ProcedureDesignator": "0x56196c27e5b8-ProcedureDesignator", + "id": "0x561d88cf75a0-Call", + "ProcedureDesignator": "0x561d88cf75b8-ProcedureDesignator", "ActualArgSpec": [ - "0x56196c280220-ActualArgSpec" + "0x561d88cf9220-ActualArgSpec" ] }, { - "id": "0x56196c27e5b8-ProcedureDesignator", + "id": "0x561d88cf75b8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x56196c27e5b8-Name" + "Name": "0x561d88cf75b8-Name" }, { - "id": "0x56196c27e5b8-Name", + "id": "0x561d88cf75b8-Name", "source": "sum" }, { - "id": "0x56196c280220-ActualArgSpec", - "ActualArg": "0x56196c280220-ActualArg" + "id": "0x561d88cf9220-ActualArgSpec", + "ActualArg": "0x561d88cf9220-ActualArg" }, { - "id": "0x56196c280220-ActualArg", + "id": "0x561d88cf9220-ActualArg", "variantKey": "Expr", - "Expr": "0x56196c27ff70-Expr" + "Expr": "0x561d88cf8f70-Expr" }, { - "id": "0x56196c27ff70-Expr", + "id": "0x561d88cf8f70-Expr", "variantKey": "Designator", - "Designator": "0x56196c280550-Designator" + "Designator": "0x561d88cf9550-Designator" }, { - "id": "0x56196c280550-Designator", + "id": "0x561d88cf9550-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c280560-DataRef" + "DataRef": "0x561d88cf9560-DataRef" }, { - "id": "0x56196c280560-DataRef", + "id": "0x561d88cf9560-DataRef", "variantKey": "Name", - "Name": "0x56196c280560-Name" + "Name": "0x561d88cf9560-Name" }, { - "id": "0x56196c280560-Name", + "id": "0x561d88cf9560-Name", "source": "a" }, { - "id": "0x56196c280050-Expr", + "id": "0x561d88cf9050-Expr", "variantKey": "Designator", - "Designator": "0x56196c28e350-Designator" + "Designator": "0x561d88d07350-Designator" }, { - "id": "0x56196c28e350-Designator", + "id": "0x561d88d07350-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c28e360-DataRef" + "DataRef": "0x561d88d07360-DataRef" }, { - "id": "0x56196c28e360-DataRef", + "id": "0x561d88d07360-DataRef", "variantKey": "Name", - "Name": "0x56196c28e360-Name" + "Name": "0x561d88d07360-Name" }, { - "id": "0x56196c28e360-Name", + "id": "0x561d88d07360-Name", "source": "ans" }, { - "id": "0x56196c27f798-ExecutionPartConstruct" + "id": "0x561d88cf8798-ExecutionPartConstruct" }, { - "id": "0x56196c27e180-ExecutionPartConstruct", + "id": "0x561d88cf7180-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56196c27e180-ExecutableConstruct" + "ExecutableConstruct": "0x561d88cf7180-ExecutableConstruct" }, { - "id": "0x56196c27e180-ExecutableConstruct", + "id": "0x561d88cf7180-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56196c27e180-Statement" + "Statement": "0x561d88cf7180-Statement" }, { - "id": "0x56196c27e180-Statement", - "statement": "0x56196c27e190-ActionStmt", + "id": "0x561d88cf7180-Statement", + "statement": "0x561d88cf7190-ActionStmt", "source": "print *,\"OK\"" }, { - "id": "0x56196c27e190-ActionStmt", + "id": "0x561d88cf7190-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56196c2824c0-PrintStmt" + "PrintStmt": "0x561d88cfb4c0-PrintStmt" }, { - "id": "0x56196c2824c0-PrintStmt", - "Format": "0x56196c2824d8-Format", + "id": "0x561d88cfb4c0-PrintStmt", + "Format": "0x561d88cfb4d8-Format", "OutputItem": [ - "0x56196c2823e0-OutputItem" + "0x561d88cfb3e0-OutputItem" ] }, { - "id": "0x56196c2824d8-Format", + "id": "0x561d88cfb4d8-Format", "variantKey": "Star", - "Star": "0x56196c2824d8-Star" + "Star": "0x561d88cfb4d8-Star" }, { - "id": "0x56196c2824d8-Star" + "id": "0x561d88cfb4d8-Star" }, { - "id": "0x56196c2823e0-OutputItem", + "id": "0x561d88cfb3e0-OutputItem", "variantKey": "Expr", - "Expr": "0x56196c2823e0-Expr" + "Expr": "0x561d88cfb3e0-Expr" }, { - "id": "0x56196c2823e0-Expr", + "id": "0x561d88cfb3e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c282400-LiteralConstant" + "LiteralConstant": "0x561d88cfb400-LiteralConstant" }, { - "id": "0x56196c282400-LiteralConstant", + "id": "0x561d88cfb400-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56196c282400-CharLiteralConstant" + "CharLiteralConstant": "0x561d88cfb400-CharLiteralConstant" }, { - "id": "0x56196c282400-CharLiteralConstant", + "id": "0x561d88cfb400-CharLiteralConstant", "string": "OK" }, { - "id": "0x56196c27f720-ElseBlock", - "Statement": "0x56196c27f738-Statement", + "id": "0x561d88cf8720-ElseBlock", + "Statement": "0x561d88cf8738-Statement", "ExecutionPartConstruct": [ - "0x56196c282990-ExecutionPartConstruct" + "0x561d88cfb990-ExecutionPartConstruct" ] }, { - "id": "0x56196c27f738-Statement", - "statement": "0x56196c27f748-ElseStmt", + "id": "0x561d88cf8738-Statement", + "statement": "0x561d88cf8748-ElseStmt", "source": "else" }, { - "id": "0x56196c27f748-ElseStmt" + "id": "0x561d88cf8748-ElseStmt" }, { - "id": "0x56196c27f720-ExecutionPartConstruct" + "id": "0x561d88cf8720-ExecutionPartConstruct" }, { - "id": "0x56196c282990-ExecutionPartConstruct", + "id": "0x561d88cfb990-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56196c282990-ExecutableConstruct" + "ExecutableConstruct": "0x561d88cfb990-ExecutableConstruct" }, { - "id": "0x56196c282990-ExecutableConstruct", + "id": "0x561d88cfb990-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56196c282990-Statement" + "Statement": "0x561d88cfb990-Statement" }, { - "id": "0x56196c282990-Statement", - "statement": "0x56196c2829a0-ActionStmt", + "id": "0x561d88cfb990-Statement", + "statement": "0x561d88cfb9a0-ActionStmt", "source": "print *,\"NG\",sum(a)" }, { - "id": "0x56196c2829a0-ActionStmt", + "id": "0x561d88cfb9a0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56196c282880-PrintStmt" + "PrintStmt": "0x561d88cfb880-PrintStmt" }, { - "id": "0x56196c282880-PrintStmt", - "Format": "0x56196c282898-Format", + "id": "0x561d88cfb880-PrintStmt", + "Format": "0x561d88cfb898-Format", "OutputItem": [ - "0x56196c2827a0-OutputItem", - "0x56196c2826b0-OutputItem" + "0x561d88cfb7a0-OutputItem", + "0x561d88cfb6b0-OutputItem" ] }, { - "id": "0x56196c282898-Format", + "id": "0x561d88cfb898-Format", "variantKey": "Star", - "Star": "0x56196c282898-Star" + "Star": "0x561d88cfb898-Star" }, { - "id": "0x56196c282898-Star" + "id": "0x561d88cfb898-Star" }, { - "id": "0x56196c2827a0-OutputItem", + "id": "0x561d88cfb7a0-OutputItem", "variantKey": "Expr", - "Expr": "0x56196c2827a0-Expr" + "Expr": "0x561d88cfb7a0-Expr" }, { - "id": "0x56196c2827a0-Expr", + "id": "0x561d88cfb7a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56196c2827c0-LiteralConstant" + "LiteralConstant": "0x561d88cfb7c0-LiteralConstant" }, { - "id": "0x56196c2827c0-LiteralConstant", + "id": "0x561d88cfb7c0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56196c2827c0-CharLiteralConstant" + "CharLiteralConstant": "0x561d88cfb7c0-CharLiteralConstant" }, { - "id": "0x56196c2827c0-CharLiteralConstant", + "id": "0x561d88cfb7c0-CharLiteralConstant", "string": "NG" }, { - "id": "0x56196c2826b0-OutputItem", + "id": "0x561d88cfb6b0-OutputItem", "variantKey": "Expr", - "Expr": "0x56196c2826b0-Expr" + "Expr": "0x561d88cfb6b0-Expr" }, { - "id": "0x56196c2826b0-Expr", + "id": "0x561d88cfb6b0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x56196c27dee0-FunctionReference" + "FunctionReference": "0x561d88cf6ee0-FunctionReference" }, { - "id": "0x56196c27dee0-FunctionReference", - "Call": "0x56196c27dee0-Call" + "id": "0x561d88cf6ee0-FunctionReference", + "Call": "0x561d88cf6ee0-Call" }, { - "id": "0x56196c27dee0-Call", - "ProcedureDesignator": "0x56196c27def8-ProcedureDesignator", + "id": "0x561d88cf6ee0-Call", + "ProcedureDesignator": "0x561d88cf6ef8-ProcedureDesignator", "ActualArgSpec": [ - "0x56196c27fe70-ActualArgSpec" + "0x561d88cf8e70-ActualArgSpec" ] }, { - "id": "0x56196c27def8-ProcedureDesignator", + "id": "0x561d88cf6ef8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x56196c27def8-Name" + "Name": "0x561d88cf6ef8-Name" }, { - "id": "0x56196c27def8-Name", + "id": "0x561d88cf6ef8-Name", "source": "sum" }, { - "id": "0x56196c27fe70-ActualArgSpec", - "ActualArg": "0x56196c27fe70-ActualArg" + "id": "0x561d88cf8e70-ActualArgSpec", + "ActualArg": "0x561d88cf8e70-ActualArg" }, { - "id": "0x56196c27fe70-ActualArg", + "id": "0x561d88cf8e70-ActualArg", "variantKey": "Expr", - "Expr": "0x56196c2825c0-Expr" + "Expr": "0x561d88cfb5c0-Expr" }, { - "id": "0x56196c2825c0-Expr", + "id": "0x561d88cfb5c0-Expr", "variantKey": "Designator", - "Designator": "0x56196c27e890-Designator" + "Designator": "0x561d88cf7890-Designator" }, { - "id": "0x56196c27e890-Designator", + "id": "0x561d88cf7890-Designator", "variantKey": "DataRef", - "DataRef": "0x56196c27e8a0-DataRef" + "DataRef": "0x561d88cf78a0-DataRef" }, { - "id": "0x56196c27e8a0-DataRef", + "id": "0x561d88cf78a0-DataRef", "variantKey": "Name", - "Name": "0x56196c27e8a0-Name" + "Name": "0x561d88cf78a0-Name" }, { - "id": "0x56196c27e8a0-Name", + "id": "0x561d88cf78a0-Name", "source": "a" }, { - "id": "0x56196c27f6e0-Statement", - "statement": "0x56196c27f6f0-EndIfStmt", + "id": "0x561d88cf86e0-Statement", + "statement": "0x561d88cf86f0-EndIfStmt", "source": "endif" }, { - "id": "0x56196c27f6f0-EndIfStmt" + "id": "0x561d88cf86f0-EndIfStmt" }, { - "id": "0x56196c285a10-Statement", - "statement": "0x56196c285a20-EndProgramStmt", + "id": "0x561d88cfea10-Statement", + "statement": "0x561d88cfea20-EndProgramStmt", "source": "end" }, { - "id": "0x56196c285a20-EndProgramStmt" + "id": "0x561d88cfea20-EndProgramStmt" } ], "enums": { From b114854e14ca265925440c6db2b0ca6db312f78c Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 01:02:59 +0100 Subject: [PATCH 067/132] Add processing of normal subscripts --- .../src/pt/up/fe/specs/fortran/parser/FlangName.java | 3 +++ .../src/pt/up/fe/specs/fortran/parser/FlangToClass.java | 2 ++ .../fe/specs/fortran/parser/processors/ExprProcessors.java | 5 +++++ .../src/pt/up/fe/specs/fortran/parser/processors/Nodes.java | 2 ++ 4 files changed, 12 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 6f38151a..5e1479b0 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -124,6 +124,9 @@ public enum FlangName implements StringProvider { AC_SPEC, AC_VALUE, ARRAY_ELEMENT, + SECTION_SUBSCRIPT, + SUBSCRIPT, + SUBSCRIPT_TRIPLET, AC_IMPLIED_DO, AC_IMPLIED_DO_CONTROL, 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 9512ed77..77c80f10 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -126,6 +126,8 @@ public class FlangToClass { 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); 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 07ad4309..5a09f9ce 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 @@ -80,6 +80,11 @@ public void arraySubscriptExpr(ArraySubscriptExpr arraySubscriptExpr) { arraySubscriptExpr.addChildren(getChildren(arraySubscriptExpr, "subscripts")); } + public void subscript(Subscript subscript) { + var value = getChild(subscript, FlangName.EXPR); + subscript.addChild(value); + } + public void acImpliedDo(AcImpliedDo acImpliedDo) { acImpliedDo.addChild(getChild(acImpliedDo, "AcImpliedDoControl")); acImpliedDo.addChildren(getChildren(acImpliedDo, "AcValue")); 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 a857ac13..f266d0f5 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 @@ -117,6 +117,8 @@ public Nodes(FortranJsonResult data) { processors.put(ArrayConstructor.class, e::arrayConstructor); processors.put(AcSpecification.class, e::acSpecification); processors.put(ArraySubscriptExpr.class, e::arraySubscriptExpr); + processors.put(Subscript.class, e::subscript); +// processors.put(SubscriptTriplet.class, e::subscriptTriplet); processors.put(Call.class, e::call); processors.put(Argument.class, e::argument); processors.put(AcImpliedDo.class, e::acImpliedDo); From 31178237d5b7cdb46573f5c5e2e4a1f0cca659b7 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 01:28:59 +0100 Subject: [PATCH 068/132] Fix normal array elements --- .../fortran/ast/nodes/expr/Subscript.java | 7 +++++ .../parser/processors/ExprProcessors.java | 30 +++++++++++++++---- .../fortran/parser/processors/Nodes.java | 1 - 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java index fc72d626..f10666d7 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java @@ -13,4 +13,11 @@ public Subscript(DataStore data, Collection children) { public Expr getValue() { return getChild(Expr.class); } + + @Override + public String getCode() { + var value = getValue(); + + return value.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 5a09f9ce..fd1476a1 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 @@ -76,13 +76,33 @@ public void call(Call call) { } public void arraySubscriptExpr(ArraySubscriptExpr arraySubscriptExpr) { - arraySubscriptExpr.addChild(getChild(arraySubscriptExpr, "base")); - arraySubscriptExpr.addChildren(getChildren(arraySubscriptExpr, "subscripts")); + var base = getChild(arraySubscriptExpr, "base"); + arraySubscriptExpr.addChild(base); + + var subscriptIds = attributes(arraySubscriptExpr).getStringList("subscripts"); + var subscripts = subscriptIds.stream() + .map(this::getSectionSubscript) + .toList(); + + arraySubscriptExpr.addChildren(subscripts); } - public void subscript(Subscript subscript) { - var value = getChild(subscript, FlangName.EXPR); - subscript.addChild(value); + public SectionSubscript getSectionSubscript(String id) { + var attrs = attributes().get(id); + + if (attrs.has(FlangName.SUBSCRIPT_TRIPLET)) { + return (SubscriptTriplet) getChild(id); + } + + if (attrs.has(FlangName.EXPR)) { + var subscript = factory().newNode(Subscript.class); + var value = getChild(id); + subscript.addChild(value); + + return subscript; + } + + throw new RuntimeException("Section subscript with id '" + id + "' does not have a valid variant, expected either SubscriptTriplet or Subscript, but got attributes: " + attrs); } public void acImpliedDo(AcImpliedDo acImpliedDo) { 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 f266d0f5..147a3c72 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 @@ -117,7 +117,6 @@ public Nodes(FortranJsonResult data) { processors.put(ArrayConstructor.class, e::arrayConstructor); processors.put(AcSpecification.class, e::acSpecification); processors.put(ArraySubscriptExpr.class, e::arraySubscriptExpr); - processors.put(Subscript.class, e::subscript); // processors.put(SubscriptTriplet.class, e::subscriptTriplet); processors.put(Call.class, e::call); processors.put(Argument.class, e::argument); From 97d828b14f55d8b7be886e3e00200cfb23f7a9ff Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 01:36:32 +0100 Subject: [PATCH 069/132] Fix subscript triplet structure --- .../ast/nodes/expr/SubscriptTriplet.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java index 465fe450..1509c152 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java @@ -1,5 +1,7 @@ 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; @@ -7,21 +9,29 @@ import java.util.Optional; public class SubscriptTriplet extends SectionSubscript { + public static DataKey HAS_START = KeyFactory.bool("hasStart"); + public static DataKey HAS_END = KeyFactory.bool("hasEnd"); + public static DataKey HAS_STRIDE = KeyFactory.bool("hasStride"); + public SubscriptTriplet(DataStore data, Collection children) { super(data, children); } - public Expr getStart() { - return getChild(Expr.class, 0); + public Optional getStart() { + return get(HAS_START) + ? Optional.of(getChild(Expr.class, 0)) + : Optional.empty(); } - public Expr getEnd() { - return getChild(Expr.class, 1); + public Optional getEnd() { + return get(HAS_END) + ? Optional.of(getChild(Expr.class, get(HAS_START) ? 1 : 0)) + : Optional.empty(); } public Optional getStride() { - return getNumChildren() > 2 - ? Optional.of(getChild(Expr.class, 2)) + return get(HAS_STRIDE) + ? Optional.of(getChild(Expr.class, getNumChildren() - 1)) : Optional.empty(); } } From b4e14fcd12365e19fca21b46294c70eddaf32666 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 01:40:05 +0100 Subject: [PATCH 070/132] Add subscript triplet processing --- .../parser/processors/ExprProcessors.java | 22 +++++++++++++++++++ .../fortran/parser/processors/Nodes.java | 2 +- 2 files changed, 23 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 fd1476a1..59972872 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 @@ -105,6 +105,28 @@ public SectionSubscript getSectionSubscript(String id) { throw new RuntimeException("Section subscript with id '" + id + "' does not have a valid variant, expected either SubscriptTriplet or Subscript, but got attributes: " + attrs); } + public void subscriptTriplet(SubscriptTriplet subscriptTriplet) { + var attrs = attributes(subscriptTriplet); + + if (attrs.has("start")) { + var start = getChild(subscriptTriplet, "start"); + subscriptTriplet.addChild(start); + subscriptTriplet.set(SubscriptTriplet.HAS_START, true); + } + + if (attrs.has("end")) { + var end = getChild(subscriptTriplet, "end"); + subscriptTriplet.addChild(end); + subscriptTriplet.set(SubscriptTriplet.HAS_END, true); + } + + if (attrs.has("stride")) { + var stride = getChild(subscriptTriplet, "stride"); + subscriptTriplet.addChild(stride); + subscriptTriplet.set(SubscriptTriplet.HAS_STRIDE, true); + } + } + public void acImpliedDo(AcImpliedDo acImpliedDo) { acImpliedDo.addChild(getChild(acImpliedDo, "AcImpliedDoControl")); acImpliedDo.addChildren(getChildren(acImpliedDo, "AcValue")); 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 147a3c72..3a27ce53 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 @@ -117,7 +117,7 @@ public Nodes(FortranJsonResult data) { processors.put(ArrayConstructor.class, e::arrayConstructor); processors.put(AcSpecification.class, e::acSpecification); processors.put(ArraySubscriptExpr.class, e::arraySubscriptExpr); -// processors.put(SubscriptTriplet.class, e::subscriptTriplet); + processors.put(SubscriptTriplet.class, e::subscriptTriplet); processors.put(Call.class, e::call); processors.put(Argument.class, e::argument); processors.put(AcImpliedDo.class, e::acImpliedDo); From 8f0db065301ec03dbcd9056fa282aab4b7008734 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 01:44:08 +0100 Subject: [PATCH 071/132] Add subscript triplet code generation --- .../fortran/ast/nodes/expr/SubscriptTriplet.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java index 1509c152..dd7ae43d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java @@ -34,4 +34,20 @@ public Optional getStride() { ? Optional.of(getChild(Expr.class, getNumChildren() - 1)) : Optional.empty(); } + + @Override + public String getCode() { + var startOpt = getStart(); + var endOpt = getEnd(); + var strideOpt = getStride(); + + StringBuilder code = new StringBuilder(); + + startOpt.ifPresent(start -> code.append(start.getCode())); + code.append(":"); + endOpt.ifPresent(end -> code.append(end.getCode())); + strideOpt.ifPresent(stride -> code.append(":").append(stride.getCode())); + + return code.toString(); + } } From b50912ccd51755ed6f59d04fefb127af002770b6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 01:56:19 +0100 Subject: [PATCH 072/132] Add one more Fujitsu test case --- .../fujitsu/0000/0000_0030.expected.f90 | 13 + .../fortran/parser/fujitsu/0000/0000_0030.f90 | 13 + .../parser/fujitsu/0000/0000_0030.json | 1459 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 1497 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.json 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 new file mode 100644 index 00000000..f6fd4b67 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.expected.f90 @@ -0,0 +1,13 @@ +REAL, DIMENSION(1:10) :: a +REAL, PARAMETER :: ans = 70. +DATA a / 1., 2., 3., 4., 5., 6., 7., 8., 9., 10. / + +a(1:10:2 * 2147483648_8 - 2147483648_8 - 2147483646_8) = a(6:10) + +IF (sum(a) == ans) THEN + PRINT *, "OK" +ELSE + PRINT *, "NG", sum(a) +END IF + +END \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.f90 new file mode 100644 index 00000000..7686b097 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.f90 @@ -0,0 +1,13 @@ +real,dimension(1:10) :: a +real,parameter :: ans=70. +data a/1.,2.,3.,4.,5.,6.,7.,8.,9.,10./ + +a(1:10:2*2147483648_8-2147483648_8-2147483646_8) = a(6:10) + +if (sum(a) == ans) then + print *, "OK" +else + print *, "NG",sum(a) +endif + +end \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.json new file mode 100644 index 00000000..f7cca08a --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0030.json @@ -0,0 +1,1459 @@ +{ + "nodes": [ + { + "id": "0x558824034f00-Program", + "ProgramUnit": [ + "0x558824070980-ProgramUnit" + ] + }, + { + "id": "0x558824070980-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x558824068650-MainProgram" + }, + { + "id": "0x558824068650-MainProgram", + "SpecificationPart": "0x5588240686f0-SpecificationPart", + "ExecutionPart": "0x5588240686d8-ExecutionPart", + "Statement": "0x558824068650-Statement" + }, + { + "id": "0x5588240686f0-SpecificationPart", + "ImplicitPart": "0x558824068708-ImplicitPart", + "DeclarationConstruct": [ + "0x558824041da0-DeclarationConstruct", + "0x558824042110-DeclarationConstruct", + "0x558824061c70-DeclarationConstruct" + ] + }, + { + "id": "0x558824068708-ImplicitPart" + }, + { + "id": "0x558824041da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558824041da0-SpecificationConstruct" + }, + { + "id": "0x558824041da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558824041da0-Statement" + }, + { + "id": "0x558824041da0-Statement", + "statement": "0x5588240719c0-TypeDeclarationStmt", + "source": "real,dimension(1:10) :: a" + }, + { + "id": "0x5588240719c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5588240719f0-DeclarationTypeSpec", + "AttrSpec": [ + "0x558824072500-AttrSpec" + ], + "EntityDecl": [ + "0x55882405fbe0-EntityDecl" + ] + }, + { + "id": "0x5588240719f0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5588240719f0-IntrinsicTypeSpec" + }, + { + "id": "0x5588240719f0-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x5588240719f0-Real" + }, + { + "id": "0x5588240719f0-Real" + }, + { + "id": "0x558824072500-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x558824072500-ArraySpec" + }, + { + "id": "0x558824072500-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x558824070920-ExplicitShapeSpec" + ] + }, + { + "id": "0x558824070920-ExplicitShapeSpec", + "lower_bound": "0x558824070928-SpecificationExpr", + "upper_bound": "0x558824070920-SpecificationExpr" + }, + { + "id": "0x558824070928-SpecificationExpr", + "Expr": "0x558823fd4790-Expr" + }, + { + "id": "0x558823fd4790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558823fd47b0-LiteralConstant" + }, + { + "id": "0x558823fd47b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558823fd47b0-IntLiteralConstant" + }, + { + "id": "0x558823fd47b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x558824070920-SpecificationExpr", + "Expr": "0x55882405f780-Expr" + }, + { + "id": "0x55882405f780-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55882405f7a0-LiteralConstant" + }, + { + "id": "0x55882405f7a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55882405f7a0-IntLiteralConstant" + }, + { + "id": "0x55882405f7a0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x55882405fbe0-EntityDecl", + "Name": "0x55882405fc98-Name" + }, + { + "id": "0x55882405fc98-Name", + "source": "a" + }, + { + "id": "0x558824042110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558824042110-SpecificationConstruct" + }, + { + "id": "0x558824042110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558824042110-Statement" + }, + { + "id": "0x558824042110-Statement", + "statement": "0x5588240609c0-TypeDeclarationStmt", + "source": "real,parameter :: ans=70." + }, + { + "id": "0x5588240609c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5588240609f0-DeclarationTypeSpec", + "AttrSpec": [ + "0x5588240789b0-AttrSpec" + ], + "EntityDecl": [ + "0x558824078610-EntityDecl" + ] + }, + { + "id": "0x5588240609f0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x5588240609f0-IntrinsicTypeSpec" + }, + { + "id": "0x5588240609f0-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x5588240609f0-Real" + }, + { + "id": "0x5588240609f0-Real" + }, + { + "id": "0x5588240789b0-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x5588240789b0-Parameter" + }, + { + "id": "0x5588240789b0-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x558824078610-EntityDecl", + "Name": "0x5588240786c8-Name", + "Initialization": "0x558824078610-Initialization" + }, + { + "id": "0x5588240786c8-Name", + "source": "ans" + }, + { + "id": "0x558824078610-Initialization", + "variantKey": "Expr", + "Expr": "0x558824078520-Expr" + }, + { + "id": "0x558824078520-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824078540-LiteralConstant" + }, + { + "id": "0x558824078540-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x558824078540-RealLiteralConstant" + }, + { + "id": "0x558824078540-RealLiteralConstant", + "real": "0x558824078540-Real" + }, + { + "id": "0x558824078540-Real", + "source": "70." + }, + { + "id": "0x558824061c70-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x558824061c70-Statement" + }, + { + "id": "0x558824061c70-Statement", + "statement": "0x558824070870-DataStmt", + "source": "data a/1.,2.,3.,4.,5.,6.,7.,8.,9.,10./" + }, + { + "id": "0x558824070870-DataStmt", + "DataStmtSet": [ + "0x558824071940-DataStmtSet" + ] + }, + { + "id": "0x558824071940-DataStmtSet", + "DataStmtObject": [ + "0x558824060790-DataStmtObject" + ], + "DataStmtValue": [ + "0x5588240617d0-DataStmtValue", + "0x5588240713f0-DataStmtValue", + "0x558824071670-DataStmtValue", + "0x55882405ff90-DataStmtValue", + "0x558824060280-DataStmtValue", + "0x558824060ad0-DataStmtValue", + "0x558824060dc0-DataStmtValue", + "0x5588240610b0-DataStmtValue", + "0x5588240613a0-DataStmtValue", + "0x558824061690-DataStmtValue" + ] + }, + { + "id": "0x558824060790-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x558824070940-Variable" + }, + { + "id": "0x558824070940-Variable", + "variantKey": "Designator", + "Designator": "0x558824078870-Designator" + }, + { + "id": "0x558824078870-Designator", + "variantKey": "DataRef", + "DataRef": "0x558824078880-DataRef" + }, + { + "id": "0x558824078880-DataRef", + "variantKey": "Name", + "Name": "0x558824078880-Name" + }, + { + "id": "0x558824078880-Name", + "source": "a" + }, + { + "id": "0x5588240617d0-DataStmtValue", + "DataStmtConstant": "0x5588240617d8-DataStmtConstant" + }, + { + "id": "0x5588240617d8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240617f8-LiteralConstant" + }, + { + "id": "0x5588240617f8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5588240617f8-RealLiteralConstant" + }, + { + "id": "0x5588240617f8-RealLiteralConstant", + "real": "0x5588240617f8-Real" + }, + { + "id": "0x5588240617f8-Real", + "source": "1." + }, + { + "id": "0x5588240713f0-DataStmtValue", + "DataStmtConstant": "0x5588240713f8-DataStmtConstant" + }, + { + "id": "0x5588240713f8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824071418-LiteralConstant" + }, + { + "id": "0x558824071418-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x558824071418-RealLiteralConstant" + }, + { + "id": "0x558824071418-RealLiteralConstant", + "real": "0x558824071418-Real" + }, + { + "id": "0x558824071418-Real", + "source": "2." + }, + { + "id": "0x558824071670-DataStmtValue", + "DataStmtConstant": "0x558824071678-DataStmtConstant" + }, + { + "id": "0x558824071678-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824071698-LiteralConstant" + }, + { + "id": "0x558824071698-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x558824071698-RealLiteralConstant" + }, + { + "id": "0x558824071698-RealLiteralConstant", + "real": "0x558824071698-Real" + }, + { + "id": "0x558824071698-Real", + "source": "3." + }, + { + "id": "0x55882405ff90-DataStmtValue", + "DataStmtConstant": "0x55882405ff98-DataStmtConstant" + }, + { + "id": "0x55882405ff98-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55882405ffb8-LiteralConstant" + }, + { + "id": "0x55882405ffb8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55882405ffb8-RealLiteralConstant" + }, + { + "id": "0x55882405ffb8-RealLiteralConstant", + "real": "0x55882405ffb8-Real" + }, + { + "id": "0x55882405ffb8-Real", + "source": "4." + }, + { + "id": "0x558824060280-DataStmtValue", + "DataStmtConstant": "0x558824060288-DataStmtConstant" + }, + { + "id": "0x558824060288-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240602a8-LiteralConstant" + }, + { + "id": "0x5588240602a8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5588240602a8-RealLiteralConstant" + }, + { + "id": "0x5588240602a8-RealLiteralConstant", + "real": "0x5588240602a8-Real" + }, + { + "id": "0x5588240602a8-Real", + "source": "5." + }, + { + "id": "0x558824060ad0-DataStmtValue", + "DataStmtConstant": "0x558824060ad8-DataStmtConstant" + }, + { + "id": "0x558824060ad8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824060af8-LiteralConstant" + }, + { + "id": "0x558824060af8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x558824060af8-RealLiteralConstant" + }, + { + "id": "0x558824060af8-RealLiteralConstant", + "real": "0x558824060af8-Real" + }, + { + "id": "0x558824060af8-Real", + "source": "6." + }, + { + "id": "0x558824060dc0-DataStmtValue", + "DataStmtConstant": "0x558824060dc8-DataStmtConstant" + }, + { + "id": "0x558824060dc8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824060de8-LiteralConstant" + }, + { + "id": "0x558824060de8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x558824060de8-RealLiteralConstant" + }, + { + "id": "0x558824060de8-RealLiteralConstant", + "real": "0x558824060de8-Real" + }, + { + "id": "0x558824060de8-Real", + "source": "7." + }, + { + "id": "0x5588240610b0-DataStmtValue", + "DataStmtConstant": "0x5588240610b8-DataStmtConstant" + }, + { + "id": "0x5588240610b8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240610d8-LiteralConstant" + }, + { + "id": "0x5588240610d8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5588240610d8-RealLiteralConstant" + }, + { + "id": "0x5588240610d8-RealLiteralConstant", + "real": "0x5588240610d8-Real" + }, + { + "id": "0x5588240610d8-Real", + "source": "8." + }, + { + "id": "0x5588240613a0-DataStmtValue", + "DataStmtConstant": "0x5588240613a8-DataStmtConstant" + }, + { + "id": "0x5588240613a8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240613c8-LiteralConstant" + }, + { + "id": "0x5588240613c8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5588240613c8-RealLiteralConstant" + }, + { + "id": "0x5588240613c8-RealLiteralConstant", + "real": "0x5588240613c8-Real" + }, + { + "id": "0x5588240613c8-Real", + "source": "9." + }, + { + "id": "0x558824061690-DataStmtValue", + "DataStmtConstant": "0x558824061698-DataStmtConstant" + }, + { + "id": "0x558824061698-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240616b8-LiteralConstant" + }, + { + "id": "0x5588240616b8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x5588240616b8-RealLiteralConstant" + }, + { + "id": "0x5588240616b8-RealLiteralConstant", + "real": "0x5588240616b8-Real" + }, + { + "id": "0x5588240616b8-Real", + "source": "10." + }, + { + "id": "0x5588240686d8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x558824062130-ExecutionPartConstruct", + "0x558824061b30-ExecutionPartConstruct" + ] + }, + { + "id": "0x5588240686d8-ExecutionPartConstruct" + }, + { + "id": "0x558824062130-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558824062130-ExecutableConstruct" + }, + { + "id": "0x558824062130-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558824062130-Statement" + }, + { + "id": "0x558824062130-Statement", + "statement": "0x558824062140-ActionStmt", + "source": "a(1:10:2*2147483648_8-2147483648_8-2147483646_8) = a(6:10)" + }, + { + "id": "0x558824062140-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x558824042cf0-AssignmentStmt" + }, + { + "id": "0x558824042cf0-AssignmentStmt", + "Variable": "0x558824042dd0-Variable", + "Expr": "0x558824042d00-Expr" + }, + { + "id": "0x558824042dd0-Variable", + "variantKey": "Designator", + "Designator": "0x5588240614d0-Designator" + }, + { + "id": "0x5588240614d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5588240614e0-DataRef" + }, + { + "id": "0x5588240614e0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55882406fd00-ArrayElement" + }, + { + "id": "0x55882406fd00-ArrayElement", + "base": "0x55882406fd00-DataRef", + "subscripts": [ + "0x55882406bea0-SectionSubscript" + ] + }, + { + "id": "0x55882406fd00-DataRef", + "variantKey": "Name", + "Name": "0x55882406fd00-Name" + }, + { + "id": "0x55882406fd00-Name", + "source": "a" + }, + { + "id": "0x55882406bea0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55882406bea0-SubscriptTriplet" + }, + { + "id": "0x55882406bea0-SubscriptTriplet", + "start": "0x5588240629d0-Expr", + "end": "0x5588240605f0-Expr", + "stride": "0x558824061e80-Expr" + }, + { + "id": "0x5588240629d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240629f0-LiteralConstant" + }, + { + "id": "0x5588240629f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5588240629f0-IntLiteralConstant" + }, + { + "id": "0x5588240629f0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x5588240605f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824060610-LiteralConstant" + }, + { + "id": "0x558824060610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558824060610-IntLiteralConstant" + }, + { + "id": "0x558824060610-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x558824061e80-Expr", + "variantKey": "Subtract", + "Subtract": "0x558824061ea0-Subtract" + }, + { + "id": "0x558824061ea0-Subtract", + "left": "0x55882405fdf0-Expr", + "right": "0x558824062880-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55882405fdf0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55882405fe10-Subtract" + }, + { + "id": "0x55882405fe10-Subtract", + "left": "0x558824061da0-Expr", + "right": "0x558824061cc0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x558824061da0-Expr", + "variantKey": "Multiply", + "Multiply": "0x558824061dc0-Multiply" + }, + { + "id": "0x558824061dc0-Multiply", + "left": "0x5588240624c0-Expr", + "right": "0x5588240623e0-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x5588240624c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240624e0-LiteralConstant" + }, + { + "id": "0x5588240624e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5588240624e0-IntLiteralConstant" + }, + { + "id": "0x5588240624e0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x5588240623e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824062400-LiteralConstant" + }, + { + "id": "0x558824062400-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558824062400-IntLiteralConstant" + }, + { + "id": "0x558824062400-IntLiteralConstant", + "CharBlock": "2147483648", + "KindParam": "0x558824062400-KindParam" + }, + { + "id": "0x558824062400-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x558824061cc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824061ce0-LiteralConstant" + }, + { + "id": "0x558824061ce0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558824061ce0-IntLiteralConstant" + }, + { + "id": "0x558824061ce0-IntLiteralConstant", + "CharBlock": "2147483648", + "KindParam": "0x558824061ce0-KindParam" + }, + { + "id": "0x558824061ce0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x558824062880-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240628a0-LiteralConstant" + }, + { + "id": "0x5588240628a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x5588240628a0-IntLiteralConstant" + }, + { + "id": "0x5588240628a0-IntLiteralConstant", + "CharBlock": "2147483646", + "KindParam": "0x5588240628a0-KindParam" + }, + { + "id": "0x5588240628a0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x558824042d00-Expr", + "variantKey": "Designator", + "Designator": "0x5588240600c0-Designator" + }, + { + "id": "0x5588240600c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x5588240600d0-DataRef" + }, + { + "id": "0x5588240600d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55882406f620-ArrayElement" + }, + { + "id": "0x55882406f620-ArrayElement", + "base": "0x55882406f620-DataRef", + "subscripts": [ + "0x55882406bcc0-SectionSubscript" + ] + }, + { + "id": "0x55882406f620-DataRef", + "variantKey": "Name", + "Name": "0x55882406f620-Name" + }, + { + "id": "0x55882406f620-Name", + "source": "a" + }, + { + "id": "0x55882406bcc0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x55882406bcc0-SubscriptTriplet" + }, + { + "id": "0x55882406bcc0-SubscriptTriplet", + "start": "0x558824061f60-Expr", + "end": "0x558824062040-Expr" + }, + { + "id": "0x558824061f60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824061f80-LiteralConstant" + }, + { + "id": "0x558824061f80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558824061f80-IntLiteralConstant" + }, + { + "id": "0x558824061f80-IntLiteralConstant", + "CharBlock": "6" + }, + { + "id": "0x558824062040-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824062060-LiteralConstant" + }, + { + "id": "0x558824062060-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558824062060-IntLiteralConstant" + }, + { + "id": "0x558824062060-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x558824061b30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558824061b30-ExecutableConstruct" + }, + { + "id": "0x558824061b30-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55882400a780-IfConstruct" + }, + { + "id": "0x55882400a780-IfConstruct", + "Statement": "0x55882400a850-Statement", + "ExecutionPartConstruct": [ + "0x5588240611f0-ExecutionPartConstruct" + ], + "ElseBlock": "0x55882400a7c0-ElseBlock", + "Statement": "0x55882400a780-Statement" + }, + { + "id": "0x55882400a850-Statement", + "statement": "0x55882400a860-IfThenStmt", + "source": "if(sum(a) == ans) then" + }, + { + "id": "0x55882400a860-IfThenStmt", + "Expr": "0x5588240631d0-Expr" + }, + { + "id": "0x5588240631d0-Expr", + "variantKey": "EQ", + "EQ": "0x5588240631f0-EQ" + }, + { + "id": "0x5588240631f0-EQ", + "left": "0x558824062e20-Expr", + "right": "0x5588240630f0-Expr", + "op": "EQ" + }, + { + "id": "0x558824062e20-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x558824061bf0-FunctionReference" + }, + { + "id": "0x558824061bf0-FunctionReference", + "Call": "0x558824061bf0-Call" + }, + { + "id": "0x558824061bf0-Call", + "ProcedureDesignator": "0x558824061c08-ProcedureDesignator", + "ActualArgSpec": [ + "0x5588240632c0-ActualArgSpec" + ] + }, + { + "id": "0x558824061c08-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x558824061c08-Name" + }, + { + "id": "0x558824061c08-Name", + "source": "sum" + }, + { + "id": "0x5588240632c0-ActualArgSpec", + "ActualArg": "0x5588240632c0-ActualArg" + }, + { + "id": "0x5588240632c0-ActualArg", + "variantKey": "Expr", + "Expr": "0x558824063010-Expr" + }, + { + "id": "0x558824063010-Expr", + "variantKey": "Designator", + "Designator": "0x558824071520-Designator" + }, + { + "id": "0x558824071520-Designator", + "variantKey": "DataRef", + "DataRef": "0x558824071530-DataRef" + }, + { + "id": "0x558824071530-DataRef", + "variantKey": "Name", + "Name": "0x558824071530-Name" + }, + { + "id": "0x558824071530-Name", + "source": "a" + }, + { + "id": "0x5588240630f0-Expr", + "variantKey": "Designator", + "Designator": "0x558824042160-Designator" + }, + { + "id": "0x558824042160-Designator", + "variantKey": "DataRef", + "DataRef": "0x558824042170-DataRef" + }, + { + "id": "0x558824042170-DataRef", + "variantKey": "Name", + "Name": "0x558824042170-Name" + }, + { + "id": "0x558824042170-Name", + "source": "ans" + }, + { + "id": "0x55882400a838-ExecutionPartConstruct" + }, + { + "id": "0x5588240611f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x5588240611f0-ExecutableConstruct" + }, + { + "id": "0x5588240611f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x5588240611f0-Statement" + }, + { + "id": "0x5588240611f0-Statement", + "statement": "0x558824061200-ActionStmt", + "source": "print *, \"OK\"" + }, + { + "id": "0x558824061200-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x558824065190-PrintStmt" + }, + { + "id": "0x558824065190-PrintStmt", + "Format": "0x5588240651a8-Format", + "OutputItem": [ + "0x5588240650b0-OutputItem" + ] + }, + { + "id": "0x5588240651a8-Format", + "variantKey": "Star", + "Star": "0x5588240651a8-Star" + }, + { + "id": "0x5588240651a8-Star" + }, + { + "id": "0x5588240650b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x5588240650b0-Expr" + }, + { + "id": "0x5588240650b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x5588240650d0-LiteralConstant" + }, + { + "id": "0x5588240650d0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x5588240650d0-CharLiteralConstant" + }, + { + "id": "0x5588240650d0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55882400a7c0-ElseBlock", + "Statement": "0x55882400a7d8-Statement", + "ExecutionPartConstruct": [ + "0x558824065660-ExecutionPartConstruct" + ] + }, + { + "id": "0x55882400a7d8-Statement", + "statement": "0x55882400a7e8-ElseStmt", + "source": "else" + }, + { + "id": "0x55882400a7e8-ElseStmt" + }, + { + "id": "0x55882400a7c0-ExecutionPartConstruct" + }, + { + "id": "0x558824065660-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558824065660-ExecutableConstruct" + }, + { + "id": "0x558824065660-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558824065660-Statement" + }, + { + "id": "0x558824065660-Statement", + "statement": "0x558824065670-ActionStmt", + "source": "print *, \"NG\",sum(a)" + }, + { + "id": "0x558824065670-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x558824065550-PrintStmt" + }, + { + "id": "0x558824065550-PrintStmt", + "Format": "0x558824065568-Format", + "OutputItem": [ + "0x558824065470-OutputItem", + "0x558824065380-OutputItem" + ] + }, + { + "id": "0x558824065568-Format", + "variantKey": "Star", + "Star": "0x558824065568-Star" + }, + { + "id": "0x558824065568-Star" + }, + { + "id": "0x558824065470-OutputItem", + "variantKey": "Expr", + "Expr": "0x558824065470-Expr" + }, + { + "id": "0x558824065470-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558824065490-LiteralConstant" + }, + { + "id": "0x558824065490-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x558824065490-CharLiteralConstant" + }, + { + "id": "0x558824065490-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x558824065380-OutputItem", + "variantKey": "Expr", + "Expr": "0x558824065380-Expr" + }, + { + "id": "0x558824065380-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x558824060fc0-FunctionReference" + }, + { + "id": "0x558824060fc0-FunctionReference", + "Call": "0x558824060fc0-Call" + }, + { + "id": "0x558824060fc0-Call", + "ProcedureDesignator": "0x558824060fd8-ProcedureDesignator", + "ActualArgSpec": [ + "0x558824062f10-ActualArgSpec" + ] + }, + { + "id": "0x558824060fd8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x558824060fd8-Name" + }, + { + "id": "0x558824060fd8-Name", + "source": "sum" + }, + { + "id": "0x558824062f10-ActualArgSpec", + "ActualArg": "0x558824062f10-ActualArg" + }, + { + "id": "0x558824062f10-ActualArg", + "variantKey": "Expr", + "Expr": "0x558824065290-Expr" + }, + { + "id": "0x558824065290-Expr", + "variantKey": "Designator", + "Designator": "0x55882405f860-Designator" + }, + { + "id": "0x55882405f860-Designator", + "variantKey": "DataRef", + "DataRef": "0x55882405f870-DataRef" + }, + { + "id": "0x55882405f870-DataRef", + "variantKey": "Name", + "Name": "0x55882405f870-Name" + }, + { + "id": "0x55882405f870-Name", + "source": "a" + }, + { + "id": "0x55882400a780-Statement", + "statement": "0x55882400a790-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55882400a790-EndIfStmt" + }, + { + "id": "0x558824068650-Statement", + "statement": "0x558824068660-EndProgramStmt", + "source": "end" + }, + { + "id": "0x558824068660-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 5a8ff0d0..35ce970a 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -628,4 +628,16 @@ void testFujitsu0000_0029Native() { testNative("fujitsu/0000/0000_0029.f90"); } } + + @Test + void testFujitsu0000_0030() { + testJson("fujitsu/0000/0000_0030.json"); + } + + @Test + void testFujitsu0000_0030Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0030.f90"); + } + } } From 99abe1c799792c53ae4a8b3f42c9c9d9fd598246 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 02:04:11 +0100 Subject: [PATCH 073/132] Add one more Fujitsu test case --- .../fujitsu/0000/0000_0033.expected.f90 | 50 + .../fortran/parser/fujitsu/0000/0000_0033.f90 | 50 + .../parser/fujitsu/0000/0000_0033.json | 2915 +++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 3027 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.f90 create mode 100644 FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json 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 new file mode 100644 index 00000000..95eddd06 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.expected.f90 @@ -0,0 +1,50 @@ +COMMON /com/ok +LOGICAL(1) ok +ok = .true. + +CALL test1 +CALL test2 +CALL test3 + +IF (ok) THEN + PRINT *, "OK" +END IF + +STOP +END + +SUBROUTINE test1 + COMMON /com/ok + LOGICAL(1) ok + INTEGER*4 m, d, ans + PARAMETER (m = 19, d = 3, ans = 1) + + IF (mod(m, d) /= ans) THEN + ok = .false. + PRINT *, "TEST1-NG =>", mod(m, d) + END IF +END SUBROUTINE + +SUBROUTINE test2 + COMMON /com/ok + LOGICAL(1) ok + INTEGER*2 m, d, ans + PARAMETER (m = 19, d = 3, ans = 1) + + IF (mod(m, d) /= ans) THEN + ok = .false. + PRINT *, "TEST2-NG =>", mod(m, d) + END IF +END SUBROUTINE + +SUBROUTINE test3 + COMMON /com/ok + LOGICAL(1) ok + INTEGER*1 m, d, ans + PARAMETER (m = 19, d = 3, ans = 1) + + IF (mod(m, d) /= ans) THEN + ok = .false. + PRINT *, "TEST3-NG =>", mod(m, d) + END IF +END SUBROUTINE \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.f90 b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.f90 new file mode 100644 index 00000000..8cc635d0 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.f90 @@ -0,0 +1,50 @@ +common /com/ok +logical(kind=1) ok +ok = .true. + +call test1 +call test2 +call test3 + +if (ok) then + print *,"OK" +endif + +stop +end + +subroutine test1 + common /com/ok + logical(kind=1) ok + integer*4 m,d,ans + parameter (m=19,d=3,ans=1) + + if (mod(m,d) .ne. ans) then + ok = .false. + print *,"TEST1-NG =>",mod(m,d) + endif +end subroutine + +subroutine test2 + common /com/ok + logical(kind=1) ok + integer*2 m,d,ans + parameter (m=19,d=3,ans=1) + + if (mod(m,d) .ne. ans) then + ok = .false. + print *,"TEST2-NG =>",mod(m,d) + endif +end subroutine + +subroutine test3 + common /com/ok + logical(kind=1) ok + integer*1 m,d,ans + parameter (m=19,d=3,ans=1) + + if (mod(m,d) .ne. ans) then + ok = .false. + print *,"TEST3-NG =>",mod(m,d) + endif +end subroutine \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json new file mode 100644 index 00000000..93a66b1f --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json @@ -0,0 +1,2915 @@ +{ + "nodes": [ + { + "id": "0x563b3395cf00-Program", + "ProgramUnit": [ + "0x563b3399ad10-ProgramUnit", + "0x563b3399ad70-ProgramUnit", + "0x563b3399aeb0-ProgramUnit", + "0x563b33997810-ProgramUnit" + ] + }, + { + "id": "0x563b3399ad10-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x563b33999fe0-MainProgram" + }, + { + "id": "0x563b33999fe0-MainProgram", + "SpecificationPart": "0x563b3399a080-SpecificationPart", + "ExecutionPart": "0x563b3399a068-ExecutionPart", + "Statement": "0x563b33999fe0-Statement" + }, + { + "id": "0x563b3399a080-SpecificationPart", + "ImplicitPart": "0x563b3399a098-ImplicitPart", + "DeclarationConstruct": [ + "0x563b3396a170-DeclarationConstruct", + "0x563b33969da0-DeclarationConstruct" + ] + }, + { + "id": "0x563b3399a098-ImplicitPart" + }, + { + "id": "0x563b3396a170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b3396a170-SpecificationConstruct" + }, + { + "id": "0x563b3396a170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b3396a170-Statement" + }, + { + "id": "0x563b3396a170-Statement", + "statement": "0x563b3396a180-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x563b3396a180-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x563b3399acd0-CommonStmt" + }, + { + "id": "0x563b3399acd0-CommonStmt", + "Block": [ + "0x563b33993250-Block" + ] + }, + { + "id": "0x563b33993250-Block", + "Name": "0x563b33993268-Name", + "CommonBlockObject": [ + "0x563b33912270-CommonBlockObject" + ] + }, + { + "id": "0x563b33993268-Name", + "source": "com" + }, + { + "id": "0x563b33912270-CommonBlockObject", + "Name": "0x563b339122a8-Name" + }, + { + "id": "0x563b339122a8-Name", + "source": "ok" + }, + { + "id": "0x563b33969da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33969da0-SpecificationConstruct" + }, + { + "id": "0x563b33969da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33969da0-Statement" + }, + { + "id": "0x563b33969da0-Statement", + "statement": "0x563b33987dd0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x563b33987dd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563b33987e00-DeclarationTypeSpec", + "EntityDecl": [ + "0x563b33988040-EntityDecl" + ] + }, + { + "id": "0x563b33987e00-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563b33987e00-IntrinsicTypeSpec" + }, + { + "id": "0x563b33987e00-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x563b33987e00-Logical" + }, + { + "id": "0x563b33987e00-Logical", + "KindSelector": "0x563b33987e00-KindSelector" + }, + { + "id": "0x563b33987e00-KindSelector", + "variantKey": "Expr", + "Expr": "0x563b338fc790-Expr" + }, + { + "id": "0x563b338fc790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b338fc7b0-LiteralConstant" + }, + { + "id": "0x563b338fc7b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b338fc7b0-IntLiteralConstant" + }, + { + "id": "0x563b338fc7b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x563b33988040-EntityDecl", + "Name": "0x563b339880f8-Name" + }, + { + "id": "0x563b339880f8-Name", + "source": "ok" + }, + { + "id": "0x563b3399a068-ExecutionPart", + "ExecutionPartConstruct": [ + "0x563b339892b0-ExecutionPartConstruct", + "0x563b33989760-ExecutionPartConstruct", + "0x563b33989880-ExecutionPartConstruct", + "0x563b339899a0-ExecutionPartConstruct", + "0x563b3396a110-ExecutionPartConstruct", + "0x563b33989f60-ExecutionPartConstruct" + ] + }, + { + "id": "0x563b3399a068-ExecutionPartConstruct" + }, + { + "id": "0x563b339892b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b339892b0-ExecutableConstruct" + }, + { + "id": "0x563b339892b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b339892b0-Statement" + }, + { + "id": "0x563b339892b0-Statement", + "statement": "0x563b339892c0-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x563b339892c0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x563b3396acf0-AssignmentStmt" + }, + { + "id": "0x563b3396acf0-AssignmentStmt", + "Variable": "0x563b3396add0-Variable", + "Expr": "0x563b3396ad00-Expr" + }, + { + "id": "0x563b3396add0-Variable", + "variantKey": "Designator", + "Designator": "0x563b3395b4d0-Designator" + }, + { + "id": "0x563b3395b4d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3395b4e0-DataRef" + }, + { + "id": "0x563b3395b4e0-DataRef", + "variantKey": "Name", + "Name": "0x563b3395b4e0-Name" + }, + { + "id": "0x563b3395b4e0-Name", + "source": "ok" + }, + { + "id": "0x563b3396ad00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b3396ad20-LiteralConstant" + }, + { + "id": "0x563b3396ad20-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x563b3396ad20-LogicalLiteralConstant" + }, + { + "id": "0x563b3396ad20-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x563b33989760-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b33989760-ExecutableConstruct" + }, + { + "id": "0x563b33989760-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b33989760-Statement" + }, + { + "id": "0x563b33989760-Statement", + "statement": "0x563b33989770-ActionStmt", + "source": "call test1" + }, + { + "id": "0x563b33989770-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x563b33993ee0-CallStmt" + }, + { + "id": "0x563b33993ee0-CallStmt", + "call": "0x563b33993ee0-Call" + }, + { + "id": "0x563b33993ee0-Call", + "ProcedureDesignator": "0x563b33993ef8-ProcedureDesignator" + }, + { + "id": "0x563b33993ef8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b33993ef8-Name" + }, + { + "id": "0x563b33993ef8-Name", + "source": "test1" + }, + { + "id": "0x563b33989880-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b33989880-ExecutableConstruct" + }, + { + "id": "0x563b33989880-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b33989880-Statement" + }, + { + "id": "0x563b33989880-Statement", + "statement": "0x563b33989890-ActionStmt", + "source": "call test2" + }, + { + "id": "0x563b33989890-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x563b339897b0-CallStmt" + }, + { + "id": "0x563b339897b0-CallStmt", + "call": "0x563b339897b0-Call" + }, + { + "id": "0x563b339897b0-Call", + "ProcedureDesignator": "0x563b339897c8-ProcedureDesignator" + }, + { + "id": "0x563b339897c8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b339897c8-Name" + }, + { + "id": "0x563b339897c8-Name", + "source": "test2" + }, + { + "id": "0x563b339899a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b339899a0-ExecutableConstruct" + }, + { + "id": "0x563b339899a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b339899a0-Statement" + }, + { + "id": "0x563b339899a0-Statement", + "statement": "0x563b339899b0-ActionStmt", + "source": "call test3" + }, + { + "id": "0x563b339899b0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x563b339898d0-CallStmt" + }, + { + "id": "0x563b339898d0-CallStmt", + "call": "0x563b339898d0-Call" + }, + { + "id": "0x563b339898d0-Call", + "ProcedureDesignator": "0x563b339898e8-ProcedureDesignator" + }, + { + "id": "0x563b339898e8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b339898e8-Name" + }, + { + "id": "0x563b339898e8-Name", + "source": "test3" + }, + { + "id": "0x563b3396a110-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b3396a110-ExecutableConstruct" + }, + { + "id": "0x563b3396a110-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x563b33932780-IfConstruct" + }, + { + "id": "0x563b33932780-IfConstruct", + "Statement": "0x563b33932850-Statement", + "ExecutionPartConstruct": [ + "0x563b33989020-ExecutionPartConstruct" + ], + "Statement": "0x563b33932780-Statement" + }, + { + "id": "0x563b33932850-Statement", + "statement": "0x563b33932860-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x563b33932860-IfThenStmt", + "Expr": "0x563b339899f0-Expr" + }, + { + "id": "0x563b339899f0-Expr", + "variantKey": "Designator", + "Designator": "0x563b33989300-Designator" + }, + { + "id": "0x563b33989300-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33989310-DataRef" + }, + { + "id": "0x563b33989310-DataRef", + "variantKey": "Name", + "Name": "0x563b33989310-Name" + }, + { + "id": "0x563b33989310-Name", + "source": "ok" + }, + { + "id": "0x563b33932838-ExecutionPartConstruct" + }, + { + "id": "0x563b33989020-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b33989020-ExecutableConstruct" + }, + { + "id": "0x563b33989020-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b33989020-Statement" + }, + { + "id": "0x563b33989020-Statement", + "statement": "0x563b33989030-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x563b33989030-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x563b3398bf30-PrintStmt" + }, + { + "id": "0x563b3398bf30-PrintStmt", + "Format": "0x563b3398bf48-Format", + "OutputItem": [ + "0x563b3398be50-OutputItem" + ] + }, + { + "id": "0x563b3398bf48-Format", + "variantKey": "Star", + "Star": "0x563b3398bf48-Star" + }, + { + "id": "0x563b3398bf48-Star" + }, + { + "id": "0x563b3398be50-OutputItem", + "variantKey": "Expr", + "Expr": "0x563b3398be50-Expr" + }, + { + "id": "0x563b3398be50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b3398be70-LiteralConstant" + }, + { + "id": "0x563b3398be70-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x563b3398be70-CharLiteralConstant" + }, + { + "id": "0x563b3398be70-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x563b33932780-Statement", + "statement": "0x563b33932790-EndIfStmt", + "source": "endif" + }, + { + "id": "0x563b33932790-EndIfStmt" + }, + { + "id": "0x563b33989f60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b33989f60-ExecutableConstruct" + }, + { + "id": "0x563b33989f60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b33989f60-Statement" + }, + { + "id": "0x563b33989f60-Statement", + "statement": "0x563b33989f70-ActionStmt", + "source": "stop" + }, + { + "id": "0x563b33989f70-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x563b3398c030-StopStmt" + }, + { + "id": "0x563b3398c030-StopStmt", + "kind": "0x563b3398c118-Kind = Stop" + }, + { + "id": "0x563b3398c118-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x563b33999fe0-Statement", + "statement": "0x563b33999ff0-EndProgramStmt", + "source": "end" + }, + { + "id": "0x563b33999ff0-EndProgramStmt" + }, + { + "id": "0x563b3399ad70-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x563b339907b0-SubroutineSubprogram" + }, + { + "id": "0x563b339907b0-SubroutineSubprogram", + "Statement": "0x563b339908f8-Statement", + "SpecificationPart": "0x563b33990850-SpecificationPart", + "ExecutionPart": "0x563b33990838-ExecutionPart", + "Statement": "0x563b339907b0-Statement" + }, + { + "id": "0x563b339908f8-Statement", + "statement": "0x563b33990908-SubroutineStmt", + "source": "subroutine test1" + }, + { + "id": "0x563b33990908-SubroutineStmt", + "Name": "0x563b33990940-Name" + }, + { + "id": "0x563b33990940-Name", + "source": "test1" + }, + { + "id": "0x563b33990850-SpecificationPart", + "ImplicitPart": "0x563b33990868-ImplicitPart", + "DeclarationConstruct": [ + "0x563b33988fc0-DeclarationConstruct", + "0x563b33987c40-DeclarationConstruct", + "0x563b33989ae0-DeclarationConstruct", + "0x563b3398c6e0-DeclarationConstruct" + ] + }, + { + "id": "0x563b33990868-ImplicitPart" + }, + { + "id": "0x563b33988fc0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33988fc0-SpecificationConstruct" + }, + { + "id": "0x563b33988fc0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33988fc0-Statement" + }, + { + "id": "0x563b33988fc0-Statement", + "statement": "0x563b33988fd0-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x563b33988fd0-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x563b3399ad30-CommonStmt" + }, + { + "id": "0x563b3399ad30-CommonStmt", + "Block": [ + "0x563b33999dd0-Block" + ] + }, + { + "id": "0x563b33999dd0-Block", + "Name": "0x563b33999de8-Name", + "CommonBlockObject": [ + "0x563b3398ae20-CommonBlockObject" + ] + }, + { + "id": "0x563b33999de8-Name", + "source": "com" + }, + { + "id": "0x563b3398ae20-CommonBlockObject", + "Name": "0x563b3398ae58-Name" + }, + { + "id": "0x563b3398ae58-Name", + "source": "ok" + }, + { + "id": "0x563b33987c40-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33987c40-SpecificationConstruct" + }, + { + "id": "0x563b33987c40-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33987c40-Statement" + }, + { + "id": "0x563b33987c40-Statement", + "statement": "0x563b339937e0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x563b339937e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563b33993810-DeclarationTypeSpec", + "EntityDecl": [ + "0x563b33987b50-EntityDecl" + ] + }, + { + "id": "0x563b33993810-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563b33993810-IntrinsicTypeSpec" + }, + { + "id": "0x563b33993810-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x563b33993810-Logical" + }, + { + "id": "0x563b33993810-Logical", + "KindSelector": "0x563b33993810-KindSelector" + }, + { + "id": "0x563b33993810-KindSelector", + "variantKey": "Expr", + "Expr": "0x563b3398cd10-Expr" + }, + { + "id": "0x563b3398cd10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b3398cd30-LiteralConstant" + }, + { + "id": "0x563b3398cd30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b3398cd30-IntLiteralConstant" + }, + { + "id": "0x563b3398cd30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x563b33987b50-EntityDecl", + "Name": "0x563b33987c08-Name" + }, + { + "id": "0x563b33987c08-Name", + "source": "ok" + }, + { + "id": "0x563b33989ae0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33989ae0-SpecificationConstruct" + }, + { + "id": "0x563b33989ae0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33989ae0-Statement" + }, + { + "id": "0x563b33989ae0-Statement", + "statement": "0x563b33988200-TypeDeclarationStmt", + "source": "integer*4 m,d,ans" + }, + { + "id": "0x563b33988200-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563b33988230-DeclarationTypeSpec", + "EntityDecl": [ + "0x563b3398c510-EntityDecl", + "0x563b3398c1d0-EntityDecl", + "0x563b339120c0-EntityDecl" + ] + }, + { + "id": "0x563b33988230-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563b33988230-IntrinsicTypeSpec" + }, + { + "id": "0x563b33988230-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x563b33988230-IntegerTypeSpec" + }, + { + "id": "0x563b33988230-IntegerTypeSpec", + "KindSelector": "0x563b33988230-KindSelector" + }, + { + "id": "0x563b33988230-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x563b33988230-StarSize" + }, + { + "id": "0x563b33988230-StarSize", + "uint64_t": "4" + }, + { + "id": "0x563b3398c510-EntityDecl", + "Name": "0x563b3398c5c8-Name" + }, + { + "id": "0x563b3398c5c8-Name", + "source": "m" + }, + { + "id": "0x563b3398c1d0-EntityDecl", + "Name": "0x563b3398c288-Name" + }, + { + "id": "0x563b3398c288-Name", + "source": "d" + }, + { + "id": "0x563b339120c0-EntityDecl", + "Name": "0x563b33912178-Name" + }, + { + "id": "0x563b33912178-Name", + "source": "ans" + }, + { + "id": "0x563b3398c6e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b3398c6e0-SpecificationConstruct" + }, + { + "id": "0x563b3398c6e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b3398c6e0-Statement" + }, + { + "id": "0x563b3398c6e0-Statement", + "statement": "0x563b33999710-ParameterStmt", + "source": "parameter(m=19,d=3,ans=1)" + }, + { + "id": "0x563b33999710-ParameterStmt", + "NamedConstantDef": [ + "0x563b33998bd0-NamedConstantDef", + "0x563b33998430-NamedConstantDef", + "0x563b33998b10-NamedConstantDef" + ] + }, + { + "id": "0x563b33998bd0-NamedConstantDef", + "NamedConstant": "0x563b33998bd8-NamedConstant", + "Expr": "0x563b3398c5f0-Expr" + }, + { + "id": "0x563b33998bd8-NamedConstant", + "Name": "0x563b33998bd8-Name" + }, + { + "id": "0x563b33998bd8-Name", + "source": "m" + }, + { + "id": "0x563b3398c5f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b3398c610-LiteralConstant" + }, + { + "id": "0x563b3398c610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b3398c610-IntLiteralConstant" + }, + { + "id": "0x563b3398c610-IntLiteralConstant", + "CharBlock": "19" + }, + { + "id": "0x563b33998430-NamedConstantDef", + "NamedConstant": "0x563b33998438-NamedConstant", + "Expr": "0x563b33988380-Expr" + }, + { + "id": "0x563b33998438-NamedConstant", + "Name": "0x563b33998438-Name" + }, + { + "id": "0x563b33998438-Name", + "source": "d" + }, + { + "id": "0x563b33988380-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b339883a0-LiteralConstant" + }, + { + "id": "0x563b339883a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b339883a0-IntLiteralConstant" + }, + { + "id": "0x563b339883a0-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x563b33998b10-NamedConstantDef", + "NamedConstant": "0x563b33998b18-NamedConstant", + "Expr": "0x563b339884c0-Expr" + }, + { + "id": "0x563b33998b18-NamedConstant", + "Name": "0x563b33998b18-Name" + }, + { + "id": "0x563b33998b18-Name", + "source": "ans" + }, + { + "id": "0x563b339884c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b339884e0-LiteralConstant" + }, + { + "id": "0x563b339884e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b339884e0-IntLiteralConstant" + }, + { + "id": "0x563b339884e0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x563b33990838-ExecutionPart", + "ExecutionPartConstruct": [ + "0x563b3398de20-ExecutionPartConstruct" + ] + }, + { + "id": "0x563b33990838-ExecutionPartConstruct" + }, + { + "id": "0x563b3398de20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b3398de20-ExecutableConstruct" + }, + { + "id": "0x563b3398de20-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x563b3398f7f0-IfConstruct" + }, + { + "id": "0x563b3398f7f0-IfConstruct", + "Statement": "0x563b3398f8c0-Statement", + "ExecutionPartConstruct": [ + "0x563b33993630-ExecutionPartConstruct", + "0x563b3398f7a0-ExecutionPartConstruct" + ], + "Statement": "0x563b3398f7f0-Statement" + }, + { + "id": "0x563b3398f8c0-Statement", + "statement": "0x563b3398f8d0-IfThenStmt", + "source": "if(mod(m,d) .ne. ans) then" + }, + { + "id": "0x563b3398f8d0-IfThenStmt", + "Expr": "0x563b3398dd30-Expr" + }, + { + "id": "0x563b3398dd30-Expr", + "variantKey": "NE", + "NE": "0x563b3398dd50-NE" + }, + { + "id": "0x563b3398dd50-NE", + "left": "0x563b3398db70-Expr", + "right": "0x563b3398e8d0-Expr", + "op": "NE" + }, + { + "id": "0x563b3398db70-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x563b3398a780-FunctionReference" + }, + { + "id": "0x563b3398a780-FunctionReference", + "Call": "0x563b3398a780-Call" + }, + { + "id": "0x563b3398a780-Call", + "ProcedureDesignator": "0x563b3398a798-ProcedureDesignator", + "ActualArgSpec": [ + "0x563b339886e0-ActualArgSpec", + "0x563b3398ea20-ActualArgSpec" + ] + }, + { + "id": "0x563b3398a798-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b3398a798-Name" + }, + { + "id": "0x563b3398a798-Name", + "source": "mod" + }, + { + "id": "0x563b339886e0-ActualArgSpec", + "ActualArg": "0x563b339886e0-ActualArg" + }, + { + "id": "0x563b339886e0-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b3398dc50-Expr" + }, + { + "id": "0x563b3398dc50-Expr", + "variantKey": "Designator", + "Designator": "0x563b339935c0-Designator" + }, + { + "id": "0x563b339935c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b339935d0-DataRef" + }, + { + "id": "0x563b339935d0-DataRef", + "variantKey": "Name", + "Name": "0x563b339935d0-Name" + }, + { + "id": "0x563b339935d0-Name", + "source": "m" + }, + { + "id": "0x563b3398ea20-ActualArgSpec", + "ActualArg": "0x563b3398ea20-ActualArg" + }, + { + "id": "0x563b3398ea20-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b33993480-Expr" + }, + { + "id": "0x563b33993480-Expr", + "variantKey": "Designator", + "Designator": "0x563b3398e9b0-Designator" + }, + { + "id": "0x563b3398e9b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3398e9c0-DataRef" + }, + { + "id": "0x563b3398e9c0-DataRef", + "variantKey": "Name", + "Name": "0x563b3398e9c0-Name" + }, + { + "id": "0x563b3398e9c0-Name", + "source": "d" + }, + { + "id": "0x563b3398e8d0-Expr", + "variantKey": "Designator", + "Designator": "0x563b3398e160-Designator" + }, + { + "id": "0x563b3398e160-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3398e170-DataRef" + }, + { + "id": "0x563b3398e170-DataRef", + "variantKey": "Name", + "Name": "0x563b3398e170-Name" + }, + { + "id": "0x563b3398e170-Name", + "source": "ans" + }, + { + "id": "0x563b3398f8a8-ExecutionPartConstruct" + }, + { + "id": "0x563b33993630-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b33993630-ExecutableConstruct" + }, + { + "id": "0x563b33993630-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b33993630-Statement" + }, + { + "id": "0x563b33993630-Statement", + "statement": "0x563b33993640-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x563b33993640-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x563b33989b30-AssignmentStmt" + }, + { + "id": "0x563b33989b30-AssignmentStmt", + "Variable": "0x563b33989c10-Variable", + "Expr": "0x563b33989b40-Expr" + }, + { + "id": "0x563b33989c10-Variable", + "variantKey": "Designator", + "Designator": "0x563b3398c8d0-Designator" + }, + { + "id": "0x563b3398c8d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3398c8e0-DataRef" + }, + { + "id": "0x563b3398c8e0-DataRef", + "variantKey": "Name", + "Name": "0x563b3398c8e0-Name" + }, + { + "id": "0x563b3398c8e0-Name", + "source": "ok" + }, + { + "id": "0x563b33989b40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33989b60-LiteralConstant" + }, + { + "id": "0x563b33989b60-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x563b33989b60-LogicalLiteralConstant" + }, + { + "id": "0x563b33989b60-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x563b3398f7a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b3398f7a0-ExecutableConstruct" + }, + { + "id": "0x563b3398f7a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b3398f7a0-Statement" + }, + { + "id": "0x563b3398f7a0-Statement", + "statement": "0x563b3398f7b0-ActionStmt", + "source": "print *,\"TEST1-NG =>\",mod(m,d)" + }, + { + "id": "0x563b3398f7b0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x563b3398f690-PrintStmt" + }, + { + "id": "0x563b3398f690-PrintStmt", + "Format": "0x563b3398f6a8-Format", + "OutputItem": [ + "0x563b3398f5b0-OutputItem", + "0x563b3398de80-OutputItem" + ] + }, + { + "id": "0x563b3398f6a8-Format", + "variantKey": "Star", + "Star": "0x563b3398f6a8-Star" + }, + { + "id": "0x563b3398f6a8-Star" + }, + { + "id": "0x563b3398f5b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x563b3398f5b0-Expr" + }, + { + "id": "0x563b3398f5b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b3398f5d0-LiteralConstant" + }, + { + "id": "0x563b3398f5d0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x563b3398f5d0-CharLiteralConstant" + }, + { + "id": "0x563b3398f5d0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x563b3398de80-OutputItem", + "variantKey": "Expr", + "Expr": "0x563b3398de80-Expr" + }, + { + "id": "0x563b3398de80-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x563b3398ed20-FunctionReference" + }, + { + "id": "0x563b3398ed20-FunctionReference", + "Call": "0x563b3398ed20-Call" + }, + { + "id": "0x563b3398ed20-Call", + "ProcedureDesignator": "0x563b3398ed38-ProcedureDesignator", + "ActualArgSpec": [ + "0x563b3398f4a0-ActualArgSpec", + "0x563b3398f390-ActualArgSpec" + ] + }, + { + "id": "0x563b3398ed38-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b3398ed38-Name" + }, + { + "id": "0x563b3398ed38-Name", + "source": "mod" + }, + { + "id": "0x563b3398f4a0-ActualArgSpec", + "ActualArg": "0x563b3398f4a0-ActualArg" + }, + { + "id": "0x563b3398f4a0-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b3398f240-Expr" + }, + { + "id": "0x563b3398f240-Expr", + "variantKey": "Designator", + "Designator": "0x563b33988e50-Designator" + }, + { + "id": "0x563b33988e50-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33988e60-DataRef" + }, + { + "id": "0x563b33988e60-DataRef", + "variantKey": "Name", + "Name": "0x563b33988e60-Name" + }, + { + "id": "0x563b33988e60-Name", + "source": "m" + }, + { + "id": "0x563b3398f390-ActualArgSpec", + "ActualArg": "0x563b3398f390-ActualArg" + }, + { + "id": "0x563b3398f390-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b3398f160-Expr" + }, + { + "id": "0x563b3398f160-Expr", + "variantKey": "Designator", + "Designator": "0x563b339885a0-Designator" + }, + { + "id": "0x563b339885a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b339885b0-DataRef" + }, + { + "id": "0x563b339885b0-DataRef", + "variantKey": "Name", + "Name": "0x563b339885b0-Name" + }, + { + "id": "0x563b339885b0-Name", + "source": "d" + }, + { + "id": "0x563b3398f7f0-Statement", + "statement": "0x563b3398f800-EndIfStmt", + "source": "endif" + }, + { + "id": "0x563b3398f800-EndIfStmt" + }, + { + "id": "0x563b339907b0-Statement", + "statement": "0x563b339907c0-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x563b339907c0-EndSubroutineStmt" + }, + { + "id": "0x563b3399aeb0-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x563b33992770-SubroutineSubprogram" + }, + { + "id": "0x563b33992770-SubroutineSubprogram", + "Statement": "0x563b339928b8-Statement", + "SpecificationPart": "0x563b33992810-SpecificationPart", + "ExecutionPart": "0x563b339927f8-ExecutionPart", + "Statement": "0x563b33992770-Statement" + }, + { + "id": "0x563b339928b8-Statement", + "statement": "0x563b339928c8-SubroutineStmt", + "source": "subroutine test2" + }, + { + "id": "0x563b339928c8-SubroutineStmt", + "Name": "0x563b33992900-Name" + }, + { + "id": "0x563b33992900-Name", + "source": "test2" + }, + { + "id": "0x563b33992810-SpecificationPart", + "ImplicitPart": "0x563b33992828-ImplicitPart", + "DeclarationConstruct": [ + "0x563b33993570-DeclarationConstruct", + "0x563b3398a180-DeclarationConstruct", + "0x563b339887f0-DeclarationConstruct", + "0x563b33988850-DeclarationConstruct" + ] + }, + { + "id": "0x563b33992828-ImplicitPart" + }, + { + "id": "0x563b33993570-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33993570-SpecificationConstruct" + }, + { + "id": "0x563b33993570-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33993570-Statement" + }, + { + "id": "0x563b33993570-Statement", + "statement": "0x563b33993580-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x563b33993580-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x563b3399ae70-CommonStmt" + }, + { + "id": "0x563b3399ae70-CommonStmt", + "Block": [ + "0x563b339a0e40-Block" + ] + }, + { + "id": "0x563b339a0e40-Block", + "Name": "0x563b339a0e58-Name", + "CommonBlockObject": [ + "0x563b3398b360-CommonBlockObject" + ] + }, + { + "id": "0x563b339a0e58-Name", + "source": "com" + }, + { + "id": "0x563b3398b360-CommonBlockObject", + "Name": "0x563b3398b398-Name" + }, + { + "id": "0x563b3398b398-Name", + "source": "ok" + }, + { + "id": "0x563b3398a180-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b3398a180-SpecificationConstruct" + }, + { + "id": "0x563b3398a180-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b3398a180-Statement" + }, + { + "id": "0x563b3398a180-Statement", + "statement": "0x563b33988eb0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x563b33988eb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563b33988ee0-DeclarationTypeSpec", + "EntityDecl": [ + "0x563b339909a0-EntityDecl" + ] + }, + { + "id": "0x563b33988ee0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563b33988ee0-IntrinsicTypeSpec" + }, + { + "id": "0x563b33988ee0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x563b33988ee0-Logical" + }, + { + "id": "0x563b33988ee0-Logical", + "KindSelector": "0x563b33988ee0-KindSelector" + }, + { + "id": "0x563b33988ee0-KindSelector", + "variantKey": "Expr", + "Expr": "0x563b33993680-Expr" + }, + { + "id": "0x563b33993680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b339936a0-LiteralConstant" + }, + { + "id": "0x563b339936a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b339936a0-IntLiteralConstant" + }, + { + "id": "0x563b339936a0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x563b339909a0-EntityDecl", + "Name": "0x563b33990a58-Name" + }, + { + "id": "0x563b33990a58-Name", + "source": "ok" + }, + { + "id": "0x563b339887f0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b339887f0-SpecificationConstruct" + }, + { + "id": "0x563b339887f0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b339887f0-Statement" + }, + { + "id": "0x563b339887f0-Statement", + "statement": "0x563b3398e410-TypeDeclarationStmt", + "source": "integer*2 m,d,ans" + }, + { + "id": "0x563b3398e410-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563b3398e440-DeclarationTypeSpec", + "EntityDecl": [ + "0x563b33990c70-EntityDecl", + "0x563b33990a90-EntityDecl", + "0x563b33990b80-EntityDecl" + ] + }, + { + "id": "0x563b3398e440-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563b3398e440-IntrinsicTypeSpec" + }, + { + "id": "0x563b3398e440-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x563b3398e440-IntegerTypeSpec" + }, + { + "id": "0x563b3398e440-IntegerTypeSpec", + "KindSelector": "0x563b3398e440-KindSelector" + }, + { + "id": "0x563b3398e440-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x563b3398e440-StarSize" + }, + { + "id": "0x563b3398e440-StarSize", + "uint64_t": "2" + }, + { + "id": "0x563b33990c70-EntityDecl", + "Name": "0x563b33990d28-Name" + }, + { + "id": "0x563b33990d28-Name", + "source": "m" + }, + { + "id": "0x563b33990a90-EntityDecl", + "Name": "0x563b33990b48-Name" + }, + { + "id": "0x563b33990b48-Name", + "source": "d" + }, + { + "id": "0x563b33990b80-EntityDecl", + "Name": "0x563b33990c38-Name" + }, + { + "id": "0x563b33990c38-Name", + "source": "ans" + }, + { + "id": "0x563b33988850-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33988850-SpecificationConstruct" + }, + { + "id": "0x563b33988850-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33988850-Statement" + }, + { + "id": "0x563b33988850-Statement", + "statement": "0x563b3399add0-ParameterStmt", + "source": "parameter(m=19,d=3,ans=1)" + }, + { + "id": "0x563b3399add0-ParameterStmt", + "NamedConstantDef": [ + "0x563b3399ae00-NamedConstantDef", + "0x563b33998fd0-NamedConstantDef", + "0x563b3399ada0-NamedConstantDef" + ] + }, + { + "id": "0x563b3399ae00-NamedConstantDef", + "NamedConstant": "0x563b3399ae08-NamedConstant", + "Expr": "0x563b33990d50-Expr" + }, + { + "id": "0x563b3399ae08-NamedConstant", + "Name": "0x563b3399ae08-Name" + }, + { + "id": "0x563b3399ae08-Name", + "source": "m" + }, + { + "id": "0x563b33990d50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33990d70-LiteralConstant" + }, + { + "id": "0x563b33990d70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b33990d70-IntLiteralConstant" + }, + { + "id": "0x563b33990d70-IntLiteralConstant", + "CharBlock": "19" + }, + { + "id": "0x563b33998fd0-NamedConstantDef", + "NamedConstant": "0x563b33998fd8-NamedConstant", + "Expr": "0x563b33990e30-Expr" + }, + { + "id": "0x563b33998fd8-NamedConstant", + "Name": "0x563b33998fd8-Name" + }, + { + "id": "0x563b33998fd8-Name", + "source": "d" + }, + { + "id": "0x563b33990e30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33990e50-LiteralConstant" + }, + { + "id": "0x563b33990e50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b33990e50-IntLiteralConstant" + }, + { + "id": "0x563b33990e50-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x563b3399ada0-NamedConstantDef", + "NamedConstant": "0x563b3399ada8-NamedConstant", + "Expr": "0x563b33990f10-Expr" + }, + { + "id": "0x563b3399ada8-NamedConstant", + "Name": "0x563b3399ada8-Name" + }, + { + "id": "0x563b3399ada8-Name", + "source": "ans" + }, + { + "id": "0x563b33990f10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33990f30-LiteralConstant" + }, + { + "id": "0x563b33990f30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b33990f30-IntLiteralConstant" + }, + { + "id": "0x563b33990f30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x563b339927f8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x563b339900d0-ExecutionPartConstruct" + ] + }, + { + "id": "0x563b339927f8-ExecutionPartConstruct" + }, + { + "id": "0x563b339900d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b339900d0-ExecutableConstruct" + }, + { + "id": "0x563b339900d0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x563b33991840-IfConstruct" + }, + { + "id": "0x563b33991840-IfConstruct", + "Statement": "0x563b33991910-Statement", + "ExecutionPartConstruct": [ + "0x563b339911a0-ExecutionPartConstruct", + "0x563b339917f0-ExecutionPartConstruct" + ], + "Statement": "0x563b33991840-Statement" + }, + { + "id": "0x563b33991910-Statement", + "statement": "0x563b33991920-IfThenStmt", + "source": "if(mod(m,d) .ne. ans) then" + }, + { + "id": "0x563b33991920-IfThenStmt", + "Expr": "0x563b3398ffe0-Expr" + }, + { + "id": "0x563b3398ffe0-Expr", + "variantKey": "NE", + "NE": "0x563b33990000-NE" + }, + { + "id": "0x563b33990000-NE", + "left": "0x563b3398fe20-Expr", + "right": "0x563b3398f910-Expr", + "op": "NE" + }, + { + "id": "0x563b3398fe20-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x563b3398b660-FunctionReference" + }, + { + "id": "0x563b3398b660-FunctionReference", + "Call": "0x563b3398b660-Call" + }, + { + "id": "0x563b3398b660-Call", + "ProcedureDesignator": "0x563b3398b678-ProcedureDesignator", + "ActualArgSpec": [ + "0x563b33990130-ActualArgSpec", + "0x563b3398fb70-ActualArgSpec" + ] + }, + { + "id": "0x563b3398b678-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b3398b678-Name" + }, + { + "id": "0x563b3398b678-Name", + "source": "mod" + }, + { + "id": "0x563b33990130-ActualArgSpec", + "ActualArg": "0x563b33990130-ActualArg" + }, + { + "id": "0x563b33990130-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b3398ff00-Expr" + }, + { + "id": "0x563b3398ff00-Expr", + "variantKey": "Designator", + "Designator": "0x563b33991130-Designator" + }, + { + "id": "0x563b33991130-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33991140-DataRef" + }, + { + "id": "0x563b33991140-DataRef", + "variantKey": "Name", + "Name": "0x563b33991140-Name" + }, + { + "id": "0x563b33991140-Name", + "source": "m" + }, + { + "id": "0x563b3398fb70-ActualArgSpec", + "ActualArg": "0x563b3398fb70-ActualArg" + }, + { + "id": "0x563b3398fb70-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b33990ff0-Expr" + }, + { + "id": "0x563b33990ff0-Expr", + "variantKey": "Designator", + "Designator": "0x563b3398f9f0-Designator" + }, + { + "id": "0x563b3398f9f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3398fa00-DataRef" + }, + { + "id": "0x563b3398fa00-DataRef", + "variantKey": "Name", + "Name": "0x563b3398fa00-Name" + }, + { + "id": "0x563b3398fa00-Name", + "source": "d" + }, + { + "id": "0x563b3398f910-Expr", + "variantKey": "Designator", + "Designator": "0x563b3398fd30-Designator" + }, + { + "id": "0x563b3398fd30-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3398fd40-DataRef" + }, + { + "id": "0x563b3398fd40-DataRef", + "variantKey": "Name", + "Name": "0x563b3398fd40-Name" + }, + { + "id": "0x563b3398fd40-Name", + "source": "ans" + }, + { + "id": "0x563b339918f8-ExecutionPartConstruct" + }, + { + "id": "0x563b339911a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b339911a0-ExecutableConstruct" + }, + { + "id": "0x563b339911a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b339911a0-Statement" + }, + { + "id": "0x563b339911a0-Statement", + "statement": "0x563b339911b0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x563b339911b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x563b3398fa50-AssignmentStmt" + }, + { + "id": "0x563b3398fa50-AssignmentStmt", + "Variable": "0x563b3398fb30-Variable", + "Expr": "0x563b3398fa60-Expr" + }, + { + "id": "0x563b3398fb30-Variable", + "variantKey": "Designator", + "Designator": "0x563b3398fcd0-Designator" + }, + { + "id": "0x563b3398fcd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3398fce0-DataRef" + }, + { + "id": "0x563b3398fce0-DataRef", + "variantKey": "Name", + "Name": "0x563b3398fce0-Name" + }, + { + "id": "0x563b3398fce0-Name", + "source": "ok" + }, + { + "id": "0x563b3398fa60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b3398fa80-LiteralConstant" + }, + { + "id": "0x563b3398fa80-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x563b3398fa80-LogicalLiteralConstant" + }, + { + "id": "0x563b3398fa80-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x563b339917f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b339917f0-ExecutableConstruct" + }, + { + "id": "0x563b339917f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b339917f0-Statement" + }, + { + "id": "0x563b339917f0-Statement", + "statement": "0x563b33991800-ActionStmt", + "source": "print *,\"TEST2-NG =>\",mod(m,d)" + }, + { + "id": "0x563b33991800-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x563b339916e0-PrintStmt" + }, + { + "id": "0x563b339916e0-PrintStmt", + "Format": "0x563b339916f8-Format", + "OutputItem": [ + "0x563b33991600-OutputItem", + "0x563b33991510-OutputItem" + ] + }, + { + "id": "0x563b339916f8-Format", + "variantKey": "Star", + "Star": "0x563b339916f8-Star" + }, + { + "id": "0x563b339916f8-Star" + }, + { + "id": "0x563b33991600-OutputItem", + "variantKey": "Expr", + "Expr": "0x563b33991600-Expr" + }, + { + "id": "0x563b33991600-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33991620-LiteralConstant" + }, + { + "id": "0x563b33991620-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x563b33991620-CharLiteralConstant" + }, + { + "id": "0x563b33991620-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x563b33991510-OutputItem", + "variantKey": "Expr", + "Expr": "0x563b33991510-Expr" + }, + { + "id": "0x563b33991510-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x563b33990360-FunctionReference" + }, + { + "id": "0x563b33990360-FunctionReference", + "Call": "0x563b33990360-Call" + }, + { + "id": "0x563b33990360-Call", + "ProcedureDesignator": "0x563b33990378-ProcedureDesignator", + "ActualArgSpec": [ + "0x563b33991400-ActualArgSpec", + "0x563b33990660-ActualArgSpec" + ] + }, + { + "id": "0x563b33990378-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b33990378-Name" + }, + { + "id": "0x563b33990378-Name", + "source": "mod" + }, + { + "id": "0x563b33991400-ActualArgSpec", + "ActualArg": "0x563b33991400-ActualArg" + }, + { + "id": "0x563b33991400-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b33990510-Expr" + }, + { + "id": "0x563b33990510-Expr", + "variantKey": "Designator", + "Designator": "0x563b339904b0-Designator" + }, + { + "id": "0x563b339904b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b339904c0-DataRef" + }, + { + "id": "0x563b339904c0-DataRef", + "variantKey": "Name", + "Name": "0x563b339904c0-Name" + }, + { + "id": "0x563b339904c0-Name", + "source": "m" + }, + { + "id": "0x563b33990660-ActualArgSpec", + "ActualArg": "0x563b33990660-ActualArg" + }, + { + "id": "0x563b33990660-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b339903d0-Expr" + }, + { + "id": "0x563b339903d0-Expr", + "variantKey": "Designator", + "Designator": "0x563b3398d730-Designator" + }, + { + "id": "0x563b3398d730-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b3398d740-DataRef" + }, + { + "id": "0x563b3398d740-DataRef", + "variantKey": "Name", + "Name": "0x563b3398d740-Name" + }, + { + "id": "0x563b3398d740-Name", + "source": "d" + }, + { + "id": "0x563b33991840-Statement", + "statement": "0x563b33991850-EndIfStmt", + "source": "endif" + }, + { + "id": "0x563b33991850-EndIfStmt" + }, + { + "id": "0x563b33992770-Statement", + "statement": "0x563b33992780-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x563b33992780-EndSubroutineStmt" + }, + { + "id": "0x563b33997810-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x563b339a22c0-SubroutineSubprogram" + }, + { + "id": "0x563b339a22c0-SubroutineSubprogram", + "Statement": "0x563b339a2408-Statement", + "SpecificationPart": "0x563b339a2360-SpecificationPart", + "ExecutionPart": "0x563b339a2348-ExecutionPart", + "Statement": "0x563b339a22c0-Statement" + }, + { + "id": "0x563b339a2408-Statement", + "statement": "0x563b339a2418-SubroutineStmt", + "source": "subroutine test3" + }, + { + "id": "0x563b339a2418-SubroutineStmt", + "Name": "0x563b339a2450-Name" + }, + { + "id": "0x563b339a2450-Name", + "source": "test3" + }, + { + "id": "0x563b339a2360-SpecificationPart", + "ImplicitPart": "0x563b339a2378-ImplicitPart", + "DeclarationConstruct": [ + "0x563b339910e0-DeclarationConstruct", + "0x563b33988470-DeclarationConstruct", + "0x563b33990240-DeclarationConstruct", + "0x563b339902a0-DeclarationConstruct" + ] + }, + { + "id": "0x563b339a2378-ImplicitPart" + }, + { + "id": "0x563b339910e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b339910e0-SpecificationConstruct" + }, + { + "id": "0x563b339910e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b339910e0-Statement" + }, + { + "id": "0x563b339910e0-Statement", + "statement": "0x563b339910f0-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x563b339910f0-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x563b3399aef0-CommonStmt" + }, + { + "id": "0x563b3399aef0-CommonStmt", + "Block": [ + "0x563b33993cc0-Block" + ] + }, + { + "id": "0x563b33993cc0-Block", + "Name": "0x563b33993cd8-Name", + "CommonBlockObject": [ + "0x563b33989080-CommonBlockObject" + ] + }, + { + "id": "0x563b33993cd8-Name", + "source": "com" + }, + { + "id": "0x563b33989080-CommonBlockObject", + "Name": "0x563b339890b8-Name" + }, + { + "id": "0x563b339890b8-Name", + "source": "ok" + }, + { + "id": "0x563b33988470-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33988470-SpecificationConstruct" + }, + { + "id": "0x563b33988470-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33988470-Statement" + }, + { + "id": "0x563b33988470-Statement", + "statement": "0x563b3398dfe0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x563b3398dfe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563b3398e010-DeclarationTypeSpec", + "EntityDecl": [ + "0x563b33992a40-EntityDecl" + ] + }, + { + "id": "0x563b3398e010-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563b3398e010-IntrinsicTypeSpec" + }, + { + "id": "0x563b3398e010-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x563b3398e010-Logical" + }, + { + "id": "0x563b3398e010-Logical", + "KindSelector": "0x563b3398e010-KindSelector" + }, + { + "id": "0x563b3398e010-KindSelector", + "variantKey": "Expr", + "Expr": "0x563b33992950-Expr" + }, + { + "id": "0x563b33992950-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33992970-LiteralConstant" + }, + { + "id": "0x563b33992970-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b33992970-IntLiteralConstant" + }, + { + "id": "0x563b33992970-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x563b33992a40-EntityDecl", + "Name": "0x563b33992af8-Name" + }, + { + "id": "0x563b33992af8-Name", + "source": "ok" + }, + { + "id": "0x563b33990240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b33990240-SpecificationConstruct" + }, + { + "id": "0x563b33990240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b33990240-Statement" + }, + { + "id": "0x563b33990240-Statement", + "statement": "0x563b3398d6b0-TypeDeclarationStmt", + "source": "integer*1 m,d,ans" + }, + { + "id": "0x563b3398d6b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x563b3398d6e0-DeclarationTypeSpec", + "EntityDecl": [ + "0x563b33992d10-EntityDecl", + "0x563b33992b30-EntityDecl", + "0x563b33992c20-EntityDecl" + ] + }, + { + "id": "0x563b3398d6e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x563b3398d6e0-IntrinsicTypeSpec" + }, + { + "id": "0x563b3398d6e0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x563b3398d6e0-IntegerTypeSpec" + }, + { + "id": "0x563b3398d6e0-IntegerTypeSpec", + "KindSelector": "0x563b3398d6e0-KindSelector" + }, + { + "id": "0x563b3398d6e0-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x563b3398d6e0-StarSize" + }, + { + "id": "0x563b3398d6e0-StarSize", + "uint64_t": "1" + }, + { + "id": "0x563b33992d10-EntityDecl", + "Name": "0x563b33992dc8-Name" + }, + { + "id": "0x563b33992dc8-Name", + "source": "m" + }, + { + "id": "0x563b33992b30-EntityDecl", + "Name": "0x563b33992be8-Name" + }, + { + "id": "0x563b33992be8-Name", + "source": "d" + }, + { + "id": "0x563b33992c20-EntityDecl", + "Name": "0x563b33992cd8-Name" + }, + { + "id": "0x563b33992cd8-Name", + "source": "ans" + }, + { + "id": "0x563b339902a0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x563b339902a0-SpecificationConstruct" + }, + { + "id": "0x563b339902a0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x563b339902a0-Statement" + }, + { + "id": "0x563b339902a0-Statement", + "statement": "0x563b339996c0-ParameterStmt", + "source": "parameter(m=19,d=3,ans=1)" + }, + { + "id": "0x563b339996c0-ParameterStmt", + "NamedConstantDef": [ + "0x563b33998180-NamedConstantDef", + "0x563b3399ae40-NamedConstantDef", + "0x563b339983b0-NamedConstantDef" + ] + }, + { + "id": "0x563b33998180-NamedConstantDef", + "NamedConstant": "0x563b33998188-NamedConstant", + "Expr": "0x563b33992df0-Expr" + }, + { + "id": "0x563b33998188-NamedConstant", + "Name": "0x563b33998188-Name" + }, + { + "id": "0x563b33998188-Name", + "source": "m" + }, + { + "id": "0x563b33992df0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33992e10-LiteralConstant" + }, + { + "id": "0x563b33992e10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b33992e10-IntLiteralConstant" + }, + { + "id": "0x563b33992e10-IntLiteralConstant", + "CharBlock": "19" + }, + { + "id": "0x563b3399ae40-NamedConstantDef", + "NamedConstant": "0x563b3399ae48-NamedConstant", + "Expr": "0x563b33992ed0-Expr" + }, + { + "id": "0x563b3399ae48-NamedConstant", + "Name": "0x563b3399ae48-Name" + }, + { + "id": "0x563b3399ae48-Name", + "source": "d" + }, + { + "id": "0x563b33992ed0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33992ef0-LiteralConstant" + }, + { + "id": "0x563b33992ef0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b33992ef0-IntLiteralConstant" + }, + { + "id": "0x563b33992ef0-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x563b339983b0-NamedConstantDef", + "NamedConstant": "0x563b339983b8-NamedConstant", + "Expr": "0x563b33992fb0-Expr" + }, + { + "id": "0x563b339983b8-NamedConstant", + "Name": "0x563b339983b8-Name" + }, + { + "id": "0x563b339983b8-Name", + "source": "ans" + }, + { + "id": "0x563b33992fb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33992fd0-LiteralConstant" + }, + { + "id": "0x563b33992fd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x563b33992fd0-IntLiteralConstant" + }, + { + "id": "0x563b33992fd0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x563b339a2348-ExecutionPart", + "ExecutionPartConstruct": [ + "0x563b33992090-ExecutionPartConstruct" + ] + }, + { + "id": "0x563b339a2348-ExecutionPartConstruct" + }, + { + "id": "0x563b33992090-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b33992090-ExecutableConstruct" + }, + { + "id": "0x563b33992090-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x563b339a1420-IfConstruct" + }, + { + "id": "0x563b339a1420-IfConstruct", + "Statement": "0x563b339a14f0-Statement", + "ExecutionPartConstruct": [ + "0x563b3398fda0-ExecutionPartConstruct", + "0x563b3398d850-ExecutionPartConstruct" + ], + "Statement": "0x563b339a1420-Statement" + }, + { + "id": "0x563b339a14f0-Statement", + "statement": "0x563b339a1500-IfThenStmt", + "source": "if(mod(m,d) .ne. ans) then" + }, + { + "id": "0x563b339a1500-IfThenStmt", + "Expr": "0x563b33991fa0-Expr" + }, + { + "id": "0x563b33991fa0-Expr", + "variantKey": "NE", + "NE": "0x563b33991fc0-NE" + }, + { + "id": "0x563b33991fc0-NE", + "left": "0x563b33991de0-Expr", + "right": "0x563b33991960-Expr", + "op": "NE" + }, + { + "id": "0x563b33991de0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x563b3398ab00-FunctionReference" + }, + { + "id": "0x563b3398ab00-FunctionReference", + "Call": "0x563b3398ab00-Call" + }, + { + "id": "0x563b3398ab00-Call", + "ProcedureDesignator": "0x563b3398ab18-ProcedureDesignator", + "ActualArgSpec": [ + "0x563b339920f0-ActualArgSpec", + "0x563b33991bc0-ActualArgSpec" + ] + }, + { + "id": "0x563b3398ab18-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b3398ab18-Name" + }, + { + "id": "0x563b3398ab18-Name", + "source": "mod" + }, + { + "id": "0x563b339920f0-ActualArgSpec", + "ActualArg": "0x563b339920f0-ActualArg" + }, + { + "id": "0x563b339920f0-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b33991ec0-Expr" + }, + { + "id": "0x563b33991ec0-Expr", + "variantKey": "Designator", + "Designator": "0x563b33991a40-Designator" + }, + { + "id": "0x563b33991a40-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33991a50-DataRef" + }, + { + "id": "0x563b33991a50-DataRef", + "variantKey": "Name", + "Name": "0x563b33991a50-Name" + }, + { + "id": "0x563b33991a50-Name", + "source": "m" + }, + { + "id": "0x563b33991bc0-ActualArgSpec", + "ActualArg": "0x563b33991bc0-ActualArg" + }, + { + "id": "0x563b33991bc0-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b33993090-Expr" + }, + { + "id": "0x563b33993090-Expr", + "variantKey": "Designator", + "Designator": "0x563b33991cc0-Designator" + }, + { + "id": "0x563b33991cc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33991cd0-DataRef" + }, + { + "id": "0x563b33991cd0-DataRef", + "variantKey": "Name", + "Name": "0x563b33991cd0-Name" + }, + { + "id": "0x563b33991cd0-Name", + "source": "d" + }, + { + "id": "0x563b33991960-Expr", + "variantKey": "Designator", + "Designator": "0x563b33991d80-Designator" + }, + { + "id": "0x563b33991d80-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33991d90-DataRef" + }, + { + "id": "0x563b33991d90-DataRef", + "variantKey": "Name", + "Name": "0x563b33991d90-Name" + }, + { + "id": "0x563b33991d90-Name", + "source": "ans" + }, + { + "id": "0x563b339a14d8-ExecutionPartConstruct" + }, + { + "id": "0x563b3398fda0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b3398fda0-ExecutableConstruct" + }, + { + "id": "0x563b3398fda0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b3398fda0-Statement" + }, + { + "id": "0x563b3398fda0-Statement", + "statement": "0x563b3398fdb0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x563b3398fdb0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x563b33991aa0-AssignmentStmt" + }, + { + "id": "0x563b33991aa0-AssignmentStmt", + "Variable": "0x563b33991b80-Variable", + "Expr": "0x563b33991ab0-Expr" + }, + { + "id": "0x563b33991b80-Variable", + "variantKey": "Designator", + "Designator": "0x563b33991d20-Designator" + }, + { + "id": "0x563b33991d20-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33991d30-DataRef" + }, + { + "id": "0x563b33991d30-DataRef", + "variantKey": "Name", + "Name": "0x563b33991d30-Name" + }, + { + "id": "0x563b33991d30-Name", + "source": "ok" + }, + { + "id": "0x563b33991ab0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b33991ad0-LiteralConstant" + }, + { + "id": "0x563b33991ad0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x563b33991ad0-LogicalLiteralConstant" + }, + { + "id": "0x563b33991ad0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x563b3398d850-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x563b3398d850-ExecutableConstruct" + }, + { + "id": "0x563b3398d850-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x563b3398d850-Statement" + }, + { + "id": "0x563b3398d850-Statement", + "statement": "0x563b3398d860-ActionStmt", + "source": "print *,\"TEST3-NG =>\",mod(m,d)" + }, + { + "id": "0x563b3398d860-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x563b339a1320-PrintStmt" + }, + { + "id": "0x563b339a1320-PrintStmt", + "Format": "0x563b339a1338-Format", + "OutputItem": [ + "0x563b339a1240-OutputItem", + "0x563b339a1150-OutputItem" + ] + }, + { + "id": "0x563b339a1338-Format", + "variantKey": "Star", + "Star": "0x563b339a1338-Star" + }, + { + "id": "0x563b339a1338-Star" + }, + { + "id": "0x563b339a1240-OutputItem", + "variantKey": "Expr", + "Expr": "0x563b339a1240-Expr" + }, + { + "id": "0x563b339a1240-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x563b339a1260-LiteralConstant" + }, + { + "id": "0x563b339a1260-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x563b339a1260-CharLiteralConstant" + }, + { + "id": "0x563b339a1260-CharLiteralConstant", + "string": "TEST3-NG =>" + }, + { + "id": "0x563b339a1150-OutputItem", + "variantKey": "Expr", + "Expr": "0x563b339a1150-Expr" + }, + { + "id": "0x563b339a1150-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x563b33992390-FunctionReference" + }, + { + "id": "0x563b33992390-FunctionReference", + "Call": "0x563b33992390-Call" + }, + { + "id": "0x563b33992390-Call", + "ProcedureDesignator": "0x563b339923a8-ProcedureDesignator", + "ActualArgSpec": [ + "0x563b339a1040-ActualArgSpec", + "0x563b339a0f30-ActualArgSpec" + ] + }, + { + "id": "0x563b339923a8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x563b339923a8-Name" + }, + { + "id": "0x563b339923a8-Name", + "source": "mod" + }, + { + "id": "0x563b339a1040-ActualArgSpec", + "ActualArg": "0x563b339a1040-ActualArg" + }, + { + "id": "0x563b339a1040-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b339925a0-Expr" + }, + { + "id": "0x563b339925a0-Expr", + "variantKey": "Designator", + "Designator": "0x563b33992540-Designator" + }, + { + "id": "0x563b33992540-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33992550-DataRef" + }, + { + "id": "0x563b33992550-DataRef", + "variantKey": "Name", + "Name": "0x563b33992550-Name" + }, + { + "id": "0x563b33992550-Name", + "source": "m" + }, + { + "id": "0x563b339a0f30-ActualArgSpec", + "ActualArg": "0x563b339a0f30-ActualArg" + }, + { + "id": "0x563b339a0f30-ActualArg", + "variantKey": "Expr", + "Expr": "0x563b33992460-Expr" + }, + { + "id": "0x563b33992460-Expr", + "variantKey": "Designator", + "Designator": "0x563b33992400-Designator" + }, + { + "id": "0x563b33992400-Designator", + "variantKey": "DataRef", + "DataRef": "0x563b33992410-DataRef" + }, + { + "id": "0x563b33992410-DataRef", + "variantKey": "Name", + "Name": "0x563b33992410-Name" + }, + { + "id": "0x563b33992410-Name", + "source": "d" + }, + { + "id": "0x563b339a1420-Statement", + "statement": "0x563b339a1430-EndIfStmt", + "source": "endif" + }, + { + "id": "0x563b339a1430-EndIfStmt" + }, + { + "id": "0x563b339a22c0-Statement", + "statement": "0x563b339a22d0-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x563b339a22d0-EndSubroutineStmt" + } + ], + "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 35ce970a..025449c8 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -640,4 +640,16 @@ void testFujitsu0000_0030Native() { testNative("fujitsu/0000/0000_0030.f90"); } } + + @Test + void testFujitsu0000_0033() { + testJson("fujitsu/0000/0000_0033.json"); + } + + @Test + void testFujitsu0000_0033Native() { + if (SpecsPlatforms.isLinux()) { + testNative("fujitsu/0000/0000_0033.f90"); + } + } } From a116840bc8cfa4c757ee14ec9dc6c52cd3ba1957 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 13:55:04 +0100 Subject: [PATCH 074/132] Add scope to DataRef --- .../src/pt/up/fe/specs/fortran/ast/nodes/expr/DataRef.java | 5 +++++ 1 file changed, 5 insertions(+) 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 2b94b4ae..bb583a42 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 @@ -15,6 +15,7 @@ public class DataRef extends Designator { */ public final static DataKey NAME = KeyFactory.string("name"); + public final static DataKey SCOPE = KeyFactory.string("scope"); // DATAKEYS END @@ -26,6 +27,10 @@ public String getName() { return get(NAME); } + public String getScope() { + return get(SCOPE); + } + @Override public String getCode() { return get(NAME); From 4fcf18f20329ce6b2b67c612ec6a4e4060e9089d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 13:58:17 +0100 Subject: [PATCH 075/132] Add scoping information to variables --- .../fe/specs/fortran/parser/processors/VariableProcessor.java | 2 ++ 1 file changed, 2 insertions(+) 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..292b8bac 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 @@ -11,7 +11,9 @@ public VariableProcessor(FortranJsonResult data) { public void dataRefProcessor(DataRef dataRef) { String name = attributes(dataRef).getString("source"); + String scope = attributes(dataRef).getString("scope"); dataRef.set(DataRef.NAME, name); + dataRef.set(DataRef.SCOPE, scope); } } From e8bfdff010c1e43857757ee76d39203108d35dec Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 14:06:32 +0100 Subject: [PATCH 076/132] Fix processing for data references without scoping info --- .../src/pt/up/fe/specs/fortran/ast/nodes/expr/DataRef.java | 5 +++-- .../specs/fortran/parser/processors/VariableProcessor.java | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) 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 bb583a42..b2b9eb90 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 @@ -6,6 +6,7 @@ import pt.up.fe.specs.fortran.ast.nodes.FortranNode; import java.util.Collection; +import java.util.Optional; public class DataRef extends Designator { // DATAKEYS BEGIN @@ -15,7 +16,7 @@ public class DataRef extends Designator { */ public final static DataKey NAME = KeyFactory.string("name"); - public final static DataKey SCOPE = KeyFactory.string("scope"); + public final static DataKey> SCOPE = KeyFactory.optional("scope"); // DATAKEYS END @@ -27,7 +28,7 @@ public String getName() { return get(NAME); } - public String getScope() { + public Optional getScope() { return get(SCOPE); } 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 292b8bac..428fac40 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 @@ -10,8 +10,8 @@ public VariableProcessor(FortranJsonResult data) { public void dataRefProcessor(DataRef dataRef) { - String name = attributes(dataRef).getString("source"); - String scope = attributes(dataRef).getString("scope"); + var name = attributes(dataRef).getString("source"); + var scope = attributes(dataRef).getOptionalString("scope"); dataRef.set(DataRef.NAME, name); dataRef.set(DataRef.SCOPE, scope); From 0d5d155d95ca04d48bf6913053f7f768834a5ac2 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 5 Jun 2026 16:35:59 +0100 Subject: [PATCH 077/132] Improve scope identification --- .../specs/fortran/ast/nodes/expr/DataRef.java | 5 ++- .../ast/nodes/expr/enums/ScopeKind.java | 43 +++++++++++++++++++ .../parser/processors/VariableProcessor.java | 5 ++- 3 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/ScopeKind.java 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 b2b9eb90..64393462 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 @@ -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.expr.enums.ScopeKind; import java.util.Collection; import java.util.Optional; @@ -16,7 +17,7 @@ public class DataRef extends Designator { */ public final static DataKey NAME = KeyFactory.string("name"); - public final static DataKey> SCOPE = KeyFactory.optional("scope"); + public final static DataKey> SCOPE = KeyFactory.optional("scope"); // DATAKEYS END @@ -28,7 +29,7 @@ public String getName() { return get(NAME); } - public Optional getScope() { + public Optional getScope() { return get(SCOPE); } diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/ScopeKind.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/ScopeKind.java new file mode 100644 index 00000000..1e0b94b3 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/enums/ScopeKind.java @@ -0,0 +1,43 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr.enums; + +import pt.up.fe.specs.util.SpecsStrings; +import pt.up.fe.specs.util.enums.EnumHelper; +import pt.up.fe.specs.util.lazy.Lazy; + +import java.util.Optional; + +public enum ScopeKind { + GLOBAL, + INTRINSIC_MODULES, + MODULE, + MAIN_PROGRAM, + SUBPROGRAM, + BLOCK_DATA, + DERIVED_TYPE, + BLOCK_CONSTRUCT, + FORALL, + OTHER_CONSTRUCT, + OPEN_ACC_CONSTRUCT("OpenACCConstruct"), + IMPLIED_DOS, + OTHER_CLAUSE; + + private static final Lazy> HELPER = EnumHelper.newLazyHelper(ScopeKind.class); + + final String string; + + ScopeKind() { + this.string = SpecsStrings.toCamelCase(name()); + } + + ScopeKind(String string) { + this.string = string; + } + + public String getString() { + return string; + } + + public static Optional of(String string) { + return HELPER.get().fromNameTry(string); + } +} 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 428fac40..fa2aadb6 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,7 @@ package pt.up.fe.specs.fortran.parser.processors; import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; +import pt.up.fe.specs.fortran.ast.nodes.expr.enums.ScopeKind; import pt.up.fe.specs.fortran.parser.FortranJsonResult; public class VariableProcessor extends ANodeProcessor { @@ -11,7 +12,9 @@ public VariableProcessor(FortranJsonResult data) { public void dataRefProcessor(DataRef dataRef) { var name = attributes(dataRef).getString("source"); - var scope = attributes(dataRef).getOptionalString("scope"); + var scope = attributes(dataRef) + .getOptionalString("scope") + .flatMap(ScopeKind::of); dataRef.set(DataRef.NAME, name); dataRef.set(DataRef.SCOPE, scope); From 4de2802b430a48f63404840747f9d2f89af565a8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 18 Jun 2026 13:31:08 +0100 Subject: [PATCH 078/132] Add nodes for common statement --- .../fortran/ast/nodes/stmt/CommonBlock.java | 26 +++++++++++++++++++ .../fortran/ast/nodes/stmt/CommonStmt.java | 17 ++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java new file mode 100644 index 00000000..7e271b04 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java @@ -0,0 +1,26 @@ +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.ArraySpecification; + +import java.util.Collection; +import java.util.Optional; + +public class CommonBlock extends FortranNode { + public static final DataKey NAME = KeyFactory.string("name"); + + public CommonBlock(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + public Optional getArraySpec() { + return getChildOf(ArraySpecification.class); + } +} 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 new file mode 100644 index 00000000..0338f4bb --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java @@ -0,0 +1,17 @@ +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; +import java.util.List; + +public class CommonStmt extends SpecificationStmt { + public CommonStmt(DataStore data, Collection children) { + super(data, children); + } + + public List getBlocks() { + return getChildren(CommonBlock.class); + } +} From 06afbfbedbb83be55c77e97b6ebbb6f071d0b21f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 18 Jun 2026 14:49:34 +0100 Subject: [PATCH 079/132] Add common statement test --- .../parser/stmt/common_stmt.expected.f90 | 7 + .../fortran/parser/stmt/common_stmt.f90 | 7 + .../fortran/parser/stmt/common_stmt.json | 659 ++++++++++++++++++ .../fortran/parser/FortranParserTest.java | 12 + 4 files changed, 685 insertions(+) create mode 100644 FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/common_stmt.f90 create mode 100644 FortranParser/resources-test/fortran/parser/stmt/common_stmt.json diff --git a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 new file mode 100644 index 00000000..145323c2 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.expected.f90 @@ -0,0 +1,7 @@ +PROGRAM common_stmt + REAL :: x + COMMON /data_block/ x, my_array(5) + INTEGER :: my_array + + x = 42.0 +END PROGRAM common_stmt \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.f90 b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.f90 new file mode 100644 index 00000000..4b70c1cc --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.f90 @@ -0,0 +1,7 @@ +program common_stmt + real :: x + common /DATA_BLOCK/ x, my_array(5) + integer :: my_array + + x = 42.0 +end program common_stmt \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json new file mode 100644 index 00000000..bb0c834d --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json @@ -0,0 +1,659 @@ +{ + "nodes": [ + { + "id": "0x558b14309f00-Program", + "ProgramUnit": [ + "0x558b1433edc0-ProgramUnit" + ] + }, + { + "id": "0x558b1433edc0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x558b143370f0-MainProgram" + }, + { + "id": "0x558b143370f0-MainProgram", + "Statement": "0x558b14337238-Statement", + "SpecificationPart": "0x558b14337190-SpecificationPart", + "ExecutionPart": "0x558b14337178-ExecutionPart", + "Statement": "0x558b143370f0-Statement" + }, + { + "id": "0x558b14337238-Statement", + "statement": "0x558b14337248-ProgramStmt", + "source": "program COMMON_STMT" + }, + { + "id": "0x558b14337248-ProgramStmt", + "Name": "0x558b14337248-Name" + }, + { + "id": "0x558b14337248-Name", + "source": "COMMON_STMT" + }, + { + "id": "0x558b14337190-SpecificationPart", + "ImplicitPart": "0x558b143371a8-ImplicitPart", + "DeclarationConstruct": [ + "0x558b14317170-DeclarationConstruct", + "0x558b14317110-DeclarationConstruct", + "0x558b14316da0-DeclarationConstruct" + ] + }, + { + "id": "0x558b143371a8-ImplicitPart" + }, + { + "id": "0x558b14317170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b14317170-SpecificationConstruct" + }, + { + "id": "0x558b14317170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b14317170-Statement" + }, + { + "id": "0x558b14317170-Statement", + "statement": "0x558b14348fc0-TypeDeclarationStmt", + "source": "real :: x, y" + }, + { + "id": "0x558b14348fc0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b14348ff0-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b143490d0-EntityDecl", + "0x558b14341160-EntityDecl" + ] + }, + { + "id": "0x558b14348ff0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b14348ff0-IntrinsicTypeSpec" + }, + { + "id": "0x558b14348ff0-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x558b14348ff0-Real" + }, + { + "id": "0x558b14348ff0-Real" + }, + { + "id": "0x558b143490d0-EntityDecl", + "Name": "0x558b14349188-Name" + }, + { + "id": "0x558b14349188-Name", + "source": "x" + }, + { + "id": "0x558b14341160-EntityDecl", + "Name": "0x558b14341218-Name" + }, + { + "id": "0x558b14341218-Name", + "source": "y" + }, + { + "id": "0x558b14317110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b14317110-SpecificationConstruct" + }, + { + "id": "0x558b14317110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b14317110-Statement" + }, + { + "id": "0x558b14317110-Statement", + "statement": "0x558b14349040-TypeDeclarationStmt", + "source": "integer :: i" + }, + { + "id": "0x558b14349040-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x558b14349070-DeclarationTypeSpec", + "EntityDecl": [ + "0x558b14349240-EntityDecl" + ] + }, + { + "id": "0x558b14349070-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x558b14349070-IntrinsicTypeSpec" + }, + { + "id": "0x558b14349070-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x558b14349070-IntegerTypeSpec" + }, + { + "id": "0x558b14349070-IntegerTypeSpec" + }, + { + "id": "0x558b14349240-EntityDecl", + "Name": "0x558b143492f8-Name" + }, + { + "id": "0x558b143492f8-Name", + "source": "i" + }, + { + "id": "0x558b14316da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x558b14316da0-SpecificationConstruct" + }, + { + "id": "0x558b14316da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x558b14316da0-Statement" + }, + { + "id": "0x558b14316da0-Statement", + "statement": "0x558b14316db0-OtherSpecificationStmt", + "source": "common /my_data/ x, y, i" + }, + { + "id": "0x558b14316db0-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x558b1433ed80-CommonStmt" + }, + { + "id": "0x558b1433ed80-CommonStmt", + "Block": [ + "0x558b14346040-Block" + ] + }, + { + "id": "0x558b14346040-Block", + "Name": "0x558b14346058-Name", + "CommonBlockObject": [ + "0x558b14348ef0-CommonBlockObject", + "0x558b142bf270-CommonBlockObject", + "0x558b14348f60-CommonBlockObject" + ] + }, + { + "id": "0x558b14346058-Name", + "source": "my_data" + }, + { + "id": "0x558b14348ef0-CommonBlockObject", + "Name": "0x558b14348f28-Name" + }, + { + "id": "0x558b14348f28-Name", + "source": "x" + }, + { + "id": "0x558b142bf270-CommonBlockObject", + "Name": "0x558b142bf2a8-Name" + }, + { + "id": "0x558b142bf2a8-Name", + "source": "y" + }, + { + "id": "0x558b14348f60-CommonBlockObject", + "Name": "0x558b14348f98-Name" + }, + { + "id": "0x558b14348f98-Name", + "source": "i" + }, + { + "id": "0x558b14337178-ExecutionPart", + "ExecutionPartConstruct": [ + "0x558b1434a920-ExecutionPartConstruct" + ] + }, + { + "id": "0x558b14337178-ExecutionPartConstruct" + }, + { + "id": "0x558b1434a920-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x558b1434a920-ExecutableConstruct" + }, + { + "id": "0x558b1434a920-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x558b1434a920-Statement" + }, + { + "id": "0x558b1434a920-Statement", + "statement": "0x558b1434a930-ActionStmt", + "source": "i = 42" + }, + { + "id": "0x558b1434a930-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x558b14317ce0-AssignmentStmt" + }, + { + "id": "0x558b14317ce0-AssignmentStmt", + "Variable": "0x558b14317dc0-Variable", + "Expr": "0x558b14317cf0-Expr" + }, + { + "id": "0x558b14317dc0-Variable", + "variantKey": "Designator", + "Designator": "0x558b1434a470-Designator" + }, + { + "id": "0x558b1434a470-Designator", + "variantKey": "DataRef", + "DataRef": "0x558b1434a480-DataRef" + }, + { + "id": "0x558b1434a480-DataRef", + "variantKey": "Name", + "Name": "0x558b1434a480-Name" + }, + { + "id": "0x558b1434a480-Name", + "source": "i" + }, + { + "id": "0x558b14317cf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x558b14317d10-LiteralConstant" + }, + { + "id": "0x558b14317d10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x558b14317d10-IntLiteralConstant" + }, + { + "id": "0x558b14317d10-IntLiteralConstant", + "CharBlock": "42" + }, + { + "id": "0x558b143370f0-Statement", + "statement": "0x558b14337100-EndProgramStmt", + "source": "end program COMMON_STMT" + }, + { + "id": "0x558b14337100-EndProgramStmt", + "Name": "0x558b14337100-Name" + }, + { + "id": "0x558b14337100-Name", + "source": "COMMON_STMT" + } + ], + "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 025449c8..8e7af8e4 100644 --- a/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java +++ b/FortranParser/test/pt/up/fe/specs/fortran/parser/FortranParserTest.java @@ -508,6 +508,18 @@ void testSubscriptTripletNative() { } } + @Test + void testCommonStmt() { + testJson("stmt/common_stmt.json"); + } + + @Test + void testCommonStmtNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/common_stmt.f90"); + } + } + @Test void testFujitsu0000_0000() { testJson("fujitsu/0000/0000_0000.json"); From ae5a4f9e00b15c9d65014c87524d21115f5478e9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 18 Jun 2026 14:49:47 +0100 Subject: [PATCH 080/132] Fix AST common statement structure --- .../fortran/ast/nodes/stmt/CommonBlock.java | 7 +++-- .../ast/nodes/stmt/CommonBlockObject.java | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlockObject.java diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java index 7e271b04..2f5b0f4d 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java @@ -4,10 +4,9 @@ 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; -import java.util.Optional; +import java.util.List; public class CommonBlock extends FortranNode { public static final DataKey NAME = KeyFactory.string("name"); @@ -20,7 +19,7 @@ public String getName() { return get(NAME); } - public Optional getArraySpec() { - return getChildOf(ArraySpecification.class); + public List getObjects() { + return getChildren(CommonBlockObject.class); } } 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 new file mode 100644 index 00000000..5c5b841c --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlockObject.java @@ -0,0 +1,27 @@ +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.ArraySpecification; + +import java.util.Collection; +import java.util.Optional; + +public class CommonBlockObject extends FortranNode { + public static final DataKey NAME = KeyFactory.string("name"); + + public CommonBlockObject(DataStore data, Collection children) { + super(data, children); + } + + public String getName() { + return get(NAME); + } + + public Optional getArraySpec() { + return getChildOf(ArraySpecification.class); + } +} From 266e0fca297ccd20c3b8d92ec19b8274a75e82f5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 13:19:11 +0100 Subject: [PATCH 081/132] Fix common statement test --- .../parser/stmt/common_stmt.expected.f90 | 4 +- .../fortran/parser/stmt/common_stmt.json | 294 +++++++++--------- 2 files changed, 157 insertions(+), 141 deletions(-) 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 145323c2..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 +PROGRAM COMMON_STMT REAL :: x COMMON /data_block/ x, my_array(5) INTEGER :: my_array x = 42.0 -END PROGRAM common_stmt \ No newline at end of file +END PROGRAM COMMON_STMT \ No newline at end of file diff --git a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json index bb0c834d..b53ffbb9 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json @@ -1,284 +1,300 @@ { "nodes": [ { - "id": "0x558b14309f00-Program", + "id": "0x559d7b4f7f00-Program", "ProgramUnit": [ - "0x558b1433edc0-ProgramUnit" + "0x559d7b52cd60-ProgramUnit" ] }, { - "id": "0x558b1433edc0-ProgramUnit", + "id": "0x559d7b52cd60-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x558b143370f0-MainProgram" + "MainProgram": "0x559d7b524f70-MainProgram" }, { - "id": "0x558b143370f0-MainProgram", - "Statement": "0x558b14337238-Statement", - "SpecificationPart": "0x558b14337190-SpecificationPart", - "ExecutionPart": "0x558b14337178-ExecutionPart", - "Statement": "0x558b143370f0-Statement" + "id": "0x559d7b524f70-MainProgram", + "Statement": "0x559d7b5250b8-Statement", + "SpecificationPart": "0x559d7b525010-SpecificationPart", + "ExecutionPart": "0x559d7b524ff8-ExecutionPart", + "Statement": "0x559d7b524f70-Statement" }, { - "id": "0x558b14337238-Statement", - "statement": "0x558b14337248-ProgramStmt", + "id": "0x559d7b5250b8-Statement", + "statement": "0x559d7b5250c8-ProgramStmt", "source": "program COMMON_STMT" }, { - "id": "0x558b14337248-ProgramStmt", - "Name": "0x558b14337248-Name" + "id": "0x559d7b5250c8-ProgramStmt", + "Name": "0x559d7b5250c8-Name" }, { - "id": "0x558b14337248-Name", + "id": "0x559d7b5250c8-Name", "source": "COMMON_STMT" }, { - "id": "0x558b14337190-SpecificationPart", - "ImplicitPart": "0x558b143371a8-ImplicitPart", + "id": "0x559d7b525010-SpecificationPart", + "ImplicitPart": "0x559d7b525028-ImplicitPart", "DeclarationConstruct": [ - "0x558b14317170-DeclarationConstruct", - "0x558b14317110-DeclarationConstruct", - "0x558b14316da0-DeclarationConstruct" + "0x559d7b505170-DeclarationConstruct", + "0x559d7b504da0-DeclarationConstruct", + "0x559d7b505110-DeclarationConstruct" ] }, { - "id": "0x558b143371a8-ImplicitPart" + "id": "0x559d7b525028-ImplicitPart" }, { - "id": "0x558b14317170-DeclarationConstruct", + "id": "0x559d7b505170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b14317170-SpecificationConstruct" + "SpecificationConstruct": "0x559d7b505170-SpecificationConstruct" }, { - "id": "0x558b14317170-SpecificationConstruct", + "id": "0x559d7b505170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x558b14317170-Statement" + "Statement": "0x559d7b505170-Statement" }, { - "id": "0x558b14317170-Statement", - "statement": "0x558b14348fc0-TypeDeclarationStmt", - "source": "real :: x, y" + "id": "0x559d7b505170-Statement", + "statement": "0x559d7b537030-TypeDeclarationStmt", + "source": "real :: x" }, { - "id": "0x558b14348fc0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b14348ff0-DeclarationTypeSpec", + "id": "0x559d7b537030-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x559d7b537060-DeclarationTypeSpec", "EntityDecl": [ - "0x558b143490d0-EntityDecl", - "0x558b14341160-EntityDecl" + "0x559d7b537140-EntityDecl" ] }, { - "id": "0x558b14348ff0-DeclarationTypeSpec", + "id": "0x559d7b537060-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b14348ff0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x559d7b537060-IntrinsicTypeSpec" }, { - "id": "0x558b14348ff0-IntrinsicTypeSpec", + "id": "0x559d7b537060-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x558b14348ff0-Real" + "Real": "0x559d7b537060-Real" }, { - "id": "0x558b14348ff0-Real" + "id": "0x559d7b537060-Real" }, { - "id": "0x558b143490d0-EntityDecl", - "Name": "0x558b14349188-Name" + "id": "0x559d7b537140-EntityDecl", + "Name": "0x559d7b5371f8-Name" }, { - "id": "0x558b14349188-Name", + "id": "0x559d7b5371f8-Name", "source": "x" }, { - "id": "0x558b14341160-EntityDecl", - "Name": "0x558b14341218-Name" + "id": "0x559d7b504da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x559d7b504da0-SpecificationConstruct" }, { - "id": "0x558b14341218-Name", - "source": "y" + "id": "0x559d7b504da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x559d7b504da0-Statement" }, { - "id": "0x558b14317110-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b14317110-SpecificationConstruct" + "id": "0x559d7b504da0-Statement", + "statement": "0x559d7b504db0-OtherSpecificationStmt", + "source": "common /data_block/ x, my_array(5)" }, { - "id": "0x558b14317110-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x558b14317110-Statement" + "id": "0x559d7b504db0-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x559d7b52cd20-CommonStmt" }, { - "id": "0x558b14317110-Statement", - "statement": "0x558b14349040-TypeDeclarationStmt", - "source": "integer :: i" + "id": "0x559d7b52cd20-CommonStmt", + "Block": [ + "0x559d7b52c460-Block" + ] }, { - "id": "0x558b14349040-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x558b14349070-DeclarationTypeSpec", - "EntityDecl": [ - "0x558b14349240-EntityDecl" + "id": "0x559d7b52c460-Block", + "Name": "0x559d7b52c478-Name", + "CommonBlockObject": [ + "0x559d7b537390-CommonBlockObject", + "0x559d7b537320-CommonBlockObject" ] }, { - "id": "0x558b14349070-DeclarationTypeSpec", - "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x558b14349070-IntrinsicTypeSpec" + "id": "0x559d7b52c478-Name", + "source": "data_block" }, { - "id": "0x558b14349070-IntrinsicTypeSpec", - "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x558b14349070-IntegerTypeSpec" + "id": "0x559d7b537390-CommonBlockObject", + "Name": "0x559d7b5373c8-Name" }, { - "id": "0x558b14349070-IntegerTypeSpec" + "id": "0x559d7b5373c8-Name", + "source": "x" }, { - "id": "0x558b14349240-EntityDecl", - "Name": "0x558b143492f8-Name" + "id": "0x559d7b537320-CommonBlockObject", + "Name": "0x559d7b537358-Name", + "ArraySpec": "0x559d7b537320-ArraySpec" }, { - "id": "0x558b143492f8-Name", - "source": "i" + "id": "0x559d7b537358-Name", + "source": "my_array" }, { - "id": "0x558b14316da0-DeclarationConstruct", - "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x558b14316da0-SpecificationConstruct" + "id": "0x559d7b537320-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x559d7b52cd00-ExplicitShapeSpec" + ] }, { - "id": "0x558b14316da0-SpecificationConstruct", - "variantKey": "Statement", - "Statement": "0x558b14316da0-Statement" + "id": "0x559d7b52cd00-ExplicitShapeSpec", + "upper_bound": "0x559d7b52cd00-SpecificationExpr" }, { - "id": "0x558b14316da0-Statement", - "statement": "0x558b14316db0-OtherSpecificationStmt", - "source": "common /my_data/ x, y, i" + "id": "0x559d7b52cd00-SpecificationExpr", + "Expr": "0x559d7b497790-Expr" }, { - "id": "0x558b14316db0-OtherSpecificationStmt", - "variantKey": "CommonStmt", - "CommonStmt": "0x558b1433ed80-CommonStmt" + "id": "0x559d7b497790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x559d7b4977b0-LiteralConstant" }, { - "id": "0x558b1433ed80-CommonStmt", - "Block": [ - "0x558b14346040-Block" - ] + "id": "0x559d7b4977b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x559d7b4977b0-IntLiteralConstant" }, { - "id": "0x558b14346040-Block", - "Name": "0x558b14346058-Name", - "CommonBlockObject": [ - "0x558b14348ef0-CommonBlockObject", - "0x558b142bf270-CommonBlockObject", - "0x558b14348f60-CommonBlockObject" - ] + "id": "0x559d7b4977b0-IntLiteralConstant", + "CharBlock": "5" }, { - "id": "0x558b14346058-Name", - "source": "my_data" + "id": "0x559d7b505110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x559d7b505110-SpecificationConstruct" }, { - "id": "0x558b14348ef0-CommonBlockObject", - "Name": "0x558b14348f28-Name" + "id": "0x559d7b505110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x559d7b505110-Statement" }, { - "id": "0x558b14348f28-Name", - "source": "x" + "id": "0x559d7b505110-Statement", + "statement": "0x559d7b5370b0-TypeDeclarationStmt", + "source": "integer :: my_array" + }, + { + "id": "0x559d7b5370b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x559d7b5370e0-DeclarationTypeSpec", + "EntityDecl": [ + "0x559d7b5374e0-EntityDecl" + ] }, { - "id": "0x558b142bf270-CommonBlockObject", - "Name": "0x558b142bf2a8-Name" + "id": "0x559d7b5370e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x559d7b5370e0-IntrinsicTypeSpec" + }, + { + "id": "0x559d7b5370e0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x559d7b5370e0-IntegerTypeSpec" }, { - "id": "0x558b142bf2a8-Name", - "source": "y" + "id": "0x559d7b5370e0-IntegerTypeSpec" }, { - "id": "0x558b14348f60-CommonBlockObject", - "Name": "0x558b14348f98-Name" + "id": "0x559d7b5374e0-EntityDecl", + "Name": "0x559d7b537598-Name" }, { - "id": "0x558b14348f98-Name", - "source": "i" + "id": "0x559d7b537598-Name", + "source": "my_array" }, { - "id": "0x558b14337178-ExecutionPart", + "id": "0x559d7b524ff8-ExecutionPart", "ExecutionPartConstruct": [ - "0x558b1434a920-ExecutionPartConstruct" + "0x559d7b535250-ExecutionPartConstruct" ] }, { - "id": "0x558b14337178-ExecutionPartConstruct" + "id": "0x559d7b524ff8-ExecutionPartConstruct" }, { - "id": "0x558b1434a920-ExecutionPartConstruct", + "id": "0x559d7b535250-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x558b1434a920-ExecutableConstruct" + "ExecutableConstruct": "0x559d7b535250-ExecutableConstruct" }, { - "id": "0x558b1434a920-ExecutableConstruct", + "id": "0x559d7b535250-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x558b1434a920-Statement" + "Statement": "0x559d7b535250-Statement" }, { - "id": "0x558b1434a920-Statement", - "statement": "0x558b1434a930-ActionStmt", - "source": "i = 42" + "id": "0x559d7b535250-Statement", + "statement": "0x559d7b535260-ActionStmt", + "source": "x = 42.0" }, { - "id": "0x558b1434a930-ActionStmt", + "id": "0x559d7b535260-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x558b14317ce0-AssignmentStmt" + "AssignmentStmt": "0x559d7b505ce0-AssignmentStmt" }, { - "id": "0x558b14317ce0-AssignmentStmt", - "Variable": "0x558b14317dc0-Variable", - "Expr": "0x558b14317cf0-Expr" + "id": "0x559d7b505ce0-AssignmentStmt", + "Variable": "0x559d7b505dc0-Variable", + "Expr": "0x559d7b505cf0-Expr" }, { - "id": "0x558b14317dc0-Variable", + "id": "0x559d7b505dc0-Variable", "variantKey": "Designator", - "Designator": "0x558b1434a470-Designator" + "Designator": "0x559d7b4ad1d0-Designator" }, { - "id": "0x558b1434a470-Designator", + "id": "0x559d7b4ad1d0-Designator", "variantKey": "DataRef", - "DataRef": "0x558b1434a480-DataRef" + "DataRef": "0x559d7b4ad1e0-DataRef" }, { - "id": "0x558b1434a480-DataRef", + "id": "0x559d7b4ad1e0-DataRef", "variantKey": "Name", - "Name": "0x558b1434a480-Name" + "Name": "0x559d7b4ad1e0-Name" }, { - "id": "0x558b1434a480-Name", - "source": "i" + "id": "0x559d7b4ad1e0-Name", + "source": "x" }, { - "id": "0x558b14317cf0-Expr", + "id": "0x559d7b505cf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x558b14317d10-LiteralConstant" + "LiteralConstant": "0x559d7b505d10-LiteralConstant" }, { - "id": "0x558b14317d10-LiteralConstant", - "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x558b14317d10-IntLiteralConstant" + "id": "0x559d7b505d10-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x559d7b505d10-RealLiteralConstant" + }, + { + "id": "0x559d7b505d10-RealLiteralConstant", + "real": "0x559d7b505d10-Real" }, { - "id": "0x558b14317d10-IntLiteralConstant", - "CharBlock": "42" + "id": "0x559d7b505d10-Real", + "source": "42.0" }, { - "id": "0x558b143370f0-Statement", - "statement": "0x558b14337100-EndProgramStmt", + "id": "0x559d7b524f70-Statement", + "statement": "0x559d7b524f80-EndProgramStmt", "source": "end program COMMON_STMT" }, { - "id": "0x558b14337100-EndProgramStmt", - "Name": "0x558b14337100-Name" + "id": "0x559d7b524f80-EndProgramStmt", + "Name": "0x559d7b524f80-Name" }, { - "id": "0x558b14337100-Name", + "id": "0x559d7b524f80-Name", "source": "COMMON_STMT" } ], From 8ae57f97d84f298dbbbcff327b39bfa43f4bd06a Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 13:50:58 +0100 Subject: [PATCH 082/132] Regenerate dumps --- .../parser/fujitsu/0000/0000_0033.json | 2078 ++++++++--------- .../fortran/parser/stmt/common_stmt.json | 242 +- 2 files changed, 1160 insertions(+), 1160 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json index 93a66b1f..b4a2b9c0 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json @@ -1,2541 +1,2541 @@ { "nodes": [ { - "id": "0x563b3395cf00-Program", + "id": "0x55cfa2cf8f00-Program", "ProgramUnit": [ - "0x563b3399ad10-ProgramUnit", - "0x563b3399ad70-ProgramUnit", - "0x563b3399aeb0-ProgramUnit", - "0x563b33997810-ProgramUnit" + "0x55cfa2d36d10-ProgramUnit", + "0x55cfa2d36d70-ProgramUnit", + "0x55cfa2d36eb0-ProgramUnit", + "0x55cfa2d33810-ProgramUnit" ] }, { - "id": "0x563b3399ad10-ProgramUnit", + "id": "0x55cfa2d36d10-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x563b33999fe0-MainProgram" + "MainProgram": "0x55cfa2d35fe0-MainProgram" }, { - "id": "0x563b33999fe0-MainProgram", - "SpecificationPart": "0x563b3399a080-SpecificationPart", - "ExecutionPart": "0x563b3399a068-ExecutionPart", - "Statement": "0x563b33999fe0-Statement" + "id": "0x55cfa2d35fe0-MainProgram", + "SpecificationPart": "0x55cfa2d36080-SpecificationPart", + "ExecutionPart": "0x55cfa2d36068-ExecutionPart", + "Statement": "0x55cfa2d35fe0-Statement" }, { - "id": "0x563b3399a080-SpecificationPart", - "ImplicitPart": "0x563b3399a098-ImplicitPart", + "id": "0x55cfa2d36080-SpecificationPart", + "ImplicitPart": "0x55cfa2d36098-ImplicitPart", "DeclarationConstruct": [ - "0x563b3396a170-DeclarationConstruct", - "0x563b33969da0-DeclarationConstruct" + "0x55cfa2d06170-DeclarationConstruct", + "0x55cfa2d05da0-DeclarationConstruct" ] }, { - "id": "0x563b3399a098-ImplicitPart" + "id": "0x55cfa2d36098-ImplicitPart" }, { - "id": "0x563b3396a170-DeclarationConstruct", + "id": "0x55cfa2d06170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b3396a170-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d06170-SpecificationConstruct" }, { - "id": "0x563b3396a170-SpecificationConstruct", + "id": "0x55cfa2d06170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b3396a170-Statement" + "Statement": "0x55cfa2d06170-Statement" }, { - "id": "0x563b3396a170-Statement", - "statement": "0x563b3396a180-OtherSpecificationStmt", + "id": "0x55cfa2d06170-Statement", + "statement": "0x55cfa2d06180-OtherSpecificationStmt", "source": "common /com/ok" }, { - "id": "0x563b3396a180-OtherSpecificationStmt", + "id": "0x55cfa2d06180-OtherSpecificationStmt", "variantKey": "CommonStmt", - "CommonStmt": "0x563b3399acd0-CommonStmt" + "CommonStmt": "0x55cfa2d36cd0-CommonStmt" }, { - "id": "0x563b3399acd0-CommonStmt", - "Block": [ - "0x563b33993250-Block" + "id": "0x55cfa2d36cd0-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d2f250-CommonStmtBlock" ] }, { - "id": "0x563b33993250-Block", - "Name": "0x563b33993268-Name", + "id": "0x55cfa2d2f250-CommonStmtBlock", + "Name": "0x55cfa2d2f268-Name", "CommonBlockObject": [ - "0x563b33912270-CommonBlockObject" + "0x55cfa2cae270-CommonBlockObject" ] }, { - "id": "0x563b33993268-Name", + "id": "0x55cfa2d2f268-Name", "source": "com" }, { - "id": "0x563b33912270-CommonBlockObject", - "Name": "0x563b339122a8-Name" + "id": "0x55cfa2cae270-CommonBlockObject", + "Name": "0x55cfa2cae2a8-Name" }, { - "id": "0x563b339122a8-Name", + "id": "0x55cfa2cae2a8-Name", "source": "ok" }, { - "id": "0x563b33969da0-DeclarationConstruct", + "id": "0x55cfa2d05da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33969da0-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d05da0-SpecificationConstruct" }, { - "id": "0x563b33969da0-SpecificationConstruct", + "id": "0x55cfa2d05da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33969da0-Statement" + "Statement": "0x55cfa2d05da0-Statement" }, { - "id": "0x563b33969da0-Statement", - "statement": "0x563b33987dd0-TypeDeclarationStmt", + "id": "0x55cfa2d05da0-Statement", + "statement": "0x55cfa2d23dd0-TypeDeclarationStmt", "source": "logical(kind=1) ok" }, { - "id": "0x563b33987dd0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563b33987e00-DeclarationTypeSpec", + "id": "0x55cfa2d23dd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d23e00-DeclarationTypeSpec", "EntityDecl": [ - "0x563b33988040-EntityDecl" + "0x55cfa2d24040-EntityDecl" ] }, { - "id": "0x563b33987e00-DeclarationTypeSpec", + "id": "0x55cfa2d23e00-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563b33987e00-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55cfa2d23e00-IntrinsicTypeSpec" }, { - "id": "0x563b33987e00-IntrinsicTypeSpec", + "id": "0x55cfa2d23e00-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x563b33987e00-Logical" + "Logical": "0x55cfa2d23e00-Logical" }, { - "id": "0x563b33987e00-Logical", - "KindSelector": "0x563b33987e00-KindSelector" + "id": "0x55cfa2d23e00-Logical", + "KindSelector": "0x55cfa2d23e00-KindSelector" }, { - "id": "0x563b33987e00-KindSelector", + "id": "0x55cfa2d23e00-KindSelector", "variantKey": "Expr", - "Expr": "0x563b338fc790-Expr" + "Expr": "0x55cfa2c98790-Expr" }, { - "id": "0x563b338fc790-Expr", + "id": "0x55cfa2c98790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b338fc7b0-LiteralConstant" + "LiteralConstant": "0x55cfa2c987b0-LiteralConstant" }, { - "id": "0x563b338fc7b0-LiteralConstant", + "id": "0x55cfa2c987b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b338fc7b0-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2c987b0-IntLiteralConstant" }, { - "id": "0x563b338fc7b0-IntLiteralConstant", + "id": "0x55cfa2c987b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563b33988040-EntityDecl", - "Name": "0x563b339880f8-Name" + "id": "0x55cfa2d24040-EntityDecl", + "Name": "0x55cfa2d240f8-Name" }, { - "id": "0x563b339880f8-Name", + "id": "0x55cfa2d240f8-Name", "source": "ok" }, { - "id": "0x563b3399a068-ExecutionPart", + "id": "0x55cfa2d36068-ExecutionPart", "ExecutionPartConstruct": [ - "0x563b339892b0-ExecutionPartConstruct", - "0x563b33989760-ExecutionPartConstruct", - "0x563b33989880-ExecutionPartConstruct", - "0x563b339899a0-ExecutionPartConstruct", - "0x563b3396a110-ExecutionPartConstruct", - "0x563b33989f60-ExecutionPartConstruct" + "0x55cfa2d252b0-ExecutionPartConstruct", + "0x55cfa2d25760-ExecutionPartConstruct", + "0x55cfa2d25880-ExecutionPartConstruct", + "0x55cfa2d259a0-ExecutionPartConstruct", + "0x55cfa2d06110-ExecutionPartConstruct", + "0x55cfa2d25f60-ExecutionPartConstruct" ] }, { - "id": "0x563b3399a068-ExecutionPartConstruct" + "id": "0x55cfa2d36068-ExecutionPartConstruct" }, { - "id": "0x563b339892b0-ExecutionPartConstruct", + "id": "0x55cfa2d252b0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b339892b0-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d252b0-ExecutableConstruct" }, { - "id": "0x563b339892b0-ExecutableConstruct", + "id": "0x55cfa2d252b0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b339892b0-Statement" + "Statement": "0x55cfa2d252b0-Statement" }, { - "id": "0x563b339892b0-Statement", - "statement": "0x563b339892c0-ActionStmt", + "id": "0x55cfa2d252b0-Statement", + "statement": "0x55cfa2d252c0-ActionStmt", "source": "ok = .true." }, { - "id": "0x563b339892c0-ActionStmt", + "id": "0x55cfa2d252c0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563b3396acf0-AssignmentStmt" + "AssignmentStmt": "0x55cfa2d06cf0-AssignmentStmt" }, { - "id": "0x563b3396acf0-AssignmentStmt", - "Variable": "0x563b3396add0-Variable", - "Expr": "0x563b3396ad00-Expr" + "id": "0x55cfa2d06cf0-AssignmentStmt", + "Variable": "0x55cfa2d06dd0-Variable", + "Expr": "0x55cfa2d06d00-Expr" }, { - "id": "0x563b3396add0-Variable", + "id": "0x55cfa2d06dd0-Variable", "variantKey": "Designator", - "Designator": "0x563b3395b4d0-Designator" + "Designator": "0x55cfa2cf74d0-Designator" }, { - "id": "0x563b3395b4d0-Designator", + "id": "0x55cfa2cf74d0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3395b4e0-DataRef" + "DataRef": "0x55cfa2cf74e0-DataRef" }, { - "id": "0x563b3395b4e0-DataRef", + "id": "0x55cfa2cf74e0-DataRef", "variantKey": "Name", - "Name": "0x563b3395b4e0-Name" + "Name": "0x55cfa2cf74e0-Name" }, { - "id": "0x563b3395b4e0-Name", + "id": "0x55cfa2cf74e0-Name", "source": "ok" }, { - "id": "0x563b3396ad00-Expr", + "id": "0x55cfa2d06d00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b3396ad20-LiteralConstant" + "LiteralConstant": "0x55cfa2d06d20-LiteralConstant" }, { - "id": "0x563b3396ad20-LiteralConstant", + "id": "0x55cfa2d06d20-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x563b3396ad20-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55cfa2d06d20-LogicalLiteralConstant" }, { - "id": "0x563b3396ad20-LogicalLiteralConstant", + "id": "0x55cfa2d06d20-LogicalLiteralConstant", "bool": "1" }, { - "id": "0x563b33989760-ExecutionPartConstruct", + "id": "0x55cfa2d25760-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b33989760-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d25760-ExecutableConstruct" }, { - "id": "0x563b33989760-ExecutableConstruct", + "id": "0x55cfa2d25760-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b33989760-Statement" + "Statement": "0x55cfa2d25760-Statement" }, { - "id": "0x563b33989760-Statement", - "statement": "0x563b33989770-ActionStmt", + "id": "0x55cfa2d25760-Statement", + "statement": "0x55cfa2d25770-ActionStmt", "source": "call test1" }, { - "id": "0x563b33989770-ActionStmt", + "id": "0x55cfa2d25770-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x563b33993ee0-CallStmt" + "CallStmt": "0x55cfa2d2fee0-CallStmt" }, { - "id": "0x563b33993ee0-CallStmt", - "call": "0x563b33993ee0-Call" + "id": "0x55cfa2d2fee0-CallStmt", + "call": "0x55cfa2d2fee0-Call" }, { - "id": "0x563b33993ee0-Call", - "ProcedureDesignator": "0x563b33993ef8-ProcedureDesignator" + "id": "0x55cfa2d2fee0-Call", + "ProcedureDesignator": "0x55cfa2d2fef8-ProcedureDesignator" }, { - "id": "0x563b33993ef8-ProcedureDesignator", + "id": "0x55cfa2d2fef8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b33993ef8-Name" + "Name": "0x55cfa2d2fef8-Name" }, { - "id": "0x563b33993ef8-Name", + "id": "0x55cfa2d2fef8-Name", "source": "test1" }, { - "id": "0x563b33989880-ExecutionPartConstruct", + "id": "0x55cfa2d25880-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b33989880-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d25880-ExecutableConstruct" }, { - "id": "0x563b33989880-ExecutableConstruct", + "id": "0x55cfa2d25880-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b33989880-Statement" + "Statement": "0x55cfa2d25880-Statement" }, { - "id": "0x563b33989880-Statement", - "statement": "0x563b33989890-ActionStmt", + "id": "0x55cfa2d25880-Statement", + "statement": "0x55cfa2d25890-ActionStmt", "source": "call test2" }, { - "id": "0x563b33989890-ActionStmt", + "id": "0x55cfa2d25890-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x563b339897b0-CallStmt" + "CallStmt": "0x55cfa2d257b0-CallStmt" }, { - "id": "0x563b339897b0-CallStmt", - "call": "0x563b339897b0-Call" + "id": "0x55cfa2d257b0-CallStmt", + "call": "0x55cfa2d257b0-Call" }, { - "id": "0x563b339897b0-Call", - "ProcedureDesignator": "0x563b339897c8-ProcedureDesignator" + "id": "0x55cfa2d257b0-Call", + "ProcedureDesignator": "0x55cfa2d257c8-ProcedureDesignator" }, { - "id": "0x563b339897c8-ProcedureDesignator", + "id": "0x55cfa2d257c8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b339897c8-Name" + "Name": "0x55cfa2d257c8-Name" }, { - "id": "0x563b339897c8-Name", + "id": "0x55cfa2d257c8-Name", "source": "test2" }, { - "id": "0x563b339899a0-ExecutionPartConstruct", + "id": "0x55cfa2d259a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b339899a0-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d259a0-ExecutableConstruct" }, { - "id": "0x563b339899a0-ExecutableConstruct", + "id": "0x55cfa2d259a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b339899a0-Statement" + "Statement": "0x55cfa2d259a0-Statement" }, { - "id": "0x563b339899a0-Statement", - "statement": "0x563b339899b0-ActionStmt", + "id": "0x55cfa2d259a0-Statement", + "statement": "0x55cfa2d259b0-ActionStmt", "source": "call test3" }, { - "id": "0x563b339899b0-ActionStmt", + "id": "0x55cfa2d259b0-ActionStmt", "variantKey": "CallStmt", - "CallStmt": "0x563b339898d0-CallStmt" + "CallStmt": "0x55cfa2d258d0-CallStmt" }, { - "id": "0x563b339898d0-CallStmt", - "call": "0x563b339898d0-Call" + "id": "0x55cfa2d258d0-CallStmt", + "call": "0x55cfa2d258d0-Call" }, { - "id": "0x563b339898d0-Call", - "ProcedureDesignator": "0x563b339898e8-ProcedureDesignator" + "id": "0x55cfa2d258d0-Call", + "ProcedureDesignator": "0x55cfa2d258e8-ProcedureDesignator" }, { - "id": "0x563b339898e8-ProcedureDesignator", + "id": "0x55cfa2d258e8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b339898e8-Name" + "Name": "0x55cfa2d258e8-Name" }, { - "id": "0x563b339898e8-Name", + "id": "0x55cfa2d258e8-Name", "source": "test3" }, { - "id": "0x563b3396a110-ExecutionPartConstruct", + "id": "0x55cfa2d06110-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b3396a110-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d06110-ExecutableConstruct" }, { - "id": "0x563b3396a110-ExecutableConstruct", + "id": "0x55cfa2d06110-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x563b33932780-IfConstruct" + "IfConstruct": "0x55cfa2cce780-IfConstruct" }, { - "id": "0x563b33932780-IfConstruct", - "Statement": "0x563b33932850-Statement", + "id": "0x55cfa2cce780-IfConstruct", + "Statement": "0x55cfa2cce850-Statement", "ExecutionPartConstruct": [ - "0x563b33989020-ExecutionPartConstruct" + "0x55cfa2d25020-ExecutionPartConstruct" ], - "Statement": "0x563b33932780-Statement" + "Statement": "0x55cfa2cce780-Statement" }, { - "id": "0x563b33932850-Statement", - "statement": "0x563b33932860-IfThenStmt", + "id": "0x55cfa2cce850-Statement", + "statement": "0x55cfa2cce860-IfThenStmt", "source": "if(ok) then" }, { - "id": "0x563b33932860-IfThenStmt", - "Expr": "0x563b339899f0-Expr" + "id": "0x55cfa2cce860-IfThenStmt", + "Expr": "0x55cfa2d259f0-Expr" }, { - "id": "0x563b339899f0-Expr", + "id": "0x55cfa2d259f0-Expr", "variantKey": "Designator", - "Designator": "0x563b33989300-Designator" + "Designator": "0x55cfa2d25300-Designator" }, { - "id": "0x563b33989300-Designator", + "id": "0x55cfa2d25300-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33989310-DataRef" + "DataRef": "0x55cfa2d25310-DataRef" }, { - "id": "0x563b33989310-DataRef", + "id": "0x55cfa2d25310-DataRef", "variantKey": "Name", - "Name": "0x563b33989310-Name" + "Name": "0x55cfa2d25310-Name" }, { - "id": "0x563b33989310-Name", + "id": "0x55cfa2d25310-Name", "source": "ok" }, { - "id": "0x563b33932838-ExecutionPartConstruct" + "id": "0x55cfa2cce838-ExecutionPartConstruct" }, { - "id": "0x563b33989020-ExecutionPartConstruct", + "id": "0x55cfa2d25020-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b33989020-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d25020-ExecutableConstruct" }, { - "id": "0x563b33989020-ExecutableConstruct", + "id": "0x55cfa2d25020-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b33989020-Statement" + "Statement": "0x55cfa2d25020-Statement" }, { - "id": "0x563b33989020-Statement", - "statement": "0x563b33989030-ActionStmt", + "id": "0x55cfa2d25020-Statement", + "statement": "0x55cfa2d25030-ActionStmt", "source": "print *,\"OK\"" }, { - "id": "0x563b33989030-ActionStmt", + "id": "0x55cfa2d25030-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x563b3398bf30-PrintStmt" + "PrintStmt": "0x55cfa2d27f30-PrintStmt" }, { - "id": "0x563b3398bf30-PrintStmt", - "Format": "0x563b3398bf48-Format", + "id": "0x55cfa2d27f30-PrintStmt", + "Format": "0x55cfa2d27f48-Format", "OutputItem": [ - "0x563b3398be50-OutputItem" + "0x55cfa2d27e50-OutputItem" ] }, { - "id": "0x563b3398bf48-Format", + "id": "0x55cfa2d27f48-Format", "variantKey": "Star", - "Star": "0x563b3398bf48-Star" + "Star": "0x55cfa2d27f48-Star" }, { - "id": "0x563b3398bf48-Star" + "id": "0x55cfa2d27f48-Star" }, { - "id": "0x563b3398be50-OutputItem", + "id": "0x55cfa2d27e50-OutputItem", "variantKey": "Expr", - "Expr": "0x563b3398be50-Expr" + "Expr": "0x55cfa2d27e50-Expr" }, { - "id": "0x563b3398be50-Expr", + "id": "0x55cfa2d27e50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b3398be70-LiteralConstant" + "LiteralConstant": "0x55cfa2d27e70-LiteralConstant" }, { - "id": "0x563b3398be70-LiteralConstant", + "id": "0x55cfa2d27e70-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x563b3398be70-CharLiteralConstant" + "CharLiteralConstant": "0x55cfa2d27e70-CharLiteralConstant" }, { - "id": "0x563b3398be70-CharLiteralConstant", + "id": "0x55cfa2d27e70-CharLiteralConstant", "string": "OK" }, { - "id": "0x563b33932780-Statement", - "statement": "0x563b33932790-EndIfStmt", + "id": "0x55cfa2cce780-Statement", + "statement": "0x55cfa2cce790-EndIfStmt", "source": "endif" }, { - "id": "0x563b33932790-EndIfStmt" + "id": "0x55cfa2cce790-EndIfStmt" }, { - "id": "0x563b33989f60-ExecutionPartConstruct", + "id": "0x55cfa2d25f60-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b33989f60-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d25f60-ExecutableConstruct" }, { - "id": "0x563b33989f60-ExecutableConstruct", + "id": "0x55cfa2d25f60-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b33989f60-Statement" + "Statement": "0x55cfa2d25f60-Statement" }, { - "id": "0x563b33989f60-Statement", - "statement": "0x563b33989f70-ActionStmt", + "id": "0x55cfa2d25f60-Statement", + "statement": "0x55cfa2d25f70-ActionStmt", "source": "stop" }, { - "id": "0x563b33989f70-ActionStmt", + "id": "0x55cfa2d25f70-ActionStmt", "variantKey": "StopStmt", - "StopStmt": "0x563b3398c030-StopStmt" + "StopStmt": "0x55cfa2d28030-StopStmt" }, { - "id": "0x563b3398c030-StopStmt", - "kind": "0x563b3398c118-Kind = Stop" + "id": "0x55cfa2d28030-StopStmt", + "kind": "0x55cfa2d28118-Kind = Stop" }, { - "id": "0x563b3398c118-Kind = Stop", + "id": "0x55cfa2d28118-Kind = Stop", "disambiguation": "Fortran::parser::StopStmt::Kind", "value": "Stop" }, { - "id": "0x563b33999fe0-Statement", - "statement": "0x563b33999ff0-EndProgramStmt", + "id": "0x55cfa2d35fe0-Statement", + "statement": "0x55cfa2d35ff0-EndProgramStmt", "source": "end" }, { - "id": "0x563b33999ff0-EndProgramStmt" + "id": "0x55cfa2d35ff0-EndProgramStmt" }, { - "id": "0x563b3399ad70-ProgramUnit", + "id": "0x55cfa2d36d70-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x563b339907b0-SubroutineSubprogram" + "SubroutineSubprogram": "0x55cfa2d2c7b0-SubroutineSubprogram" }, { - "id": "0x563b339907b0-SubroutineSubprogram", - "Statement": "0x563b339908f8-Statement", - "SpecificationPart": "0x563b33990850-SpecificationPart", - "ExecutionPart": "0x563b33990838-ExecutionPart", - "Statement": "0x563b339907b0-Statement" + "id": "0x55cfa2d2c7b0-SubroutineSubprogram", + "Statement": "0x55cfa2d2c8f8-Statement", + "SpecificationPart": "0x55cfa2d2c850-SpecificationPart", + "ExecutionPart": "0x55cfa2d2c838-ExecutionPart", + "Statement": "0x55cfa2d2c7b0-Statement" }, { - "id": "0x563b339908f8-Statement", - "statement": "0x563b33990908-SubroutineStmt", + "id": "0x55cfa2d2c8f8-Statement", + "statement": "0x55cfa2d2c908-SubroutineStmt", "source": "subroutine test1" }, { - "id": "0x563b33990908-SubroutineStmt", - "Name": "0x563b33990940-Name" + "id": "0x55cfa2d2c908-SubroutineStmt", + "Name": "0x55cfa2d2c940-Name" }, { - "id": "0x563b33990940-Name", + "id": "0x55cfa2d2c940-Name", "source": "test1" }, { - "id": "0x563b33990850-SpecificationPart", - "ImplicitPart": "0x563b33990868-ImplicitPart", + "id": "0x55cfa2d2c850-SpecificationPart", + "ImplicitPart": "0x55cfa2d2c868-ImplicitPart", "DeclarationConstruct": [ - "0x563b33988fc0-DeclarationConstruct", - "0x563b33987c40-DeclarationConstruct", - "0x563b33989ae0-DeclarationConstruct", - "0x563b3398c6e0-DeclarationConstruct" + "0x55cfa2d24fc0-DeclarationConstruct", + "0x55cfa2d23c40-DeclarationConstruct", + "0x55cfa2d25ae0-DeclarationConstruct", + "0x55cfa2d286e0-DeclarationConstruct" ] }, { - "id": "0x563b33990868-ImplicitPart" + "id": "0x55cfa2d2c868-ImplicitPart" }, { - "id": "0x563b33988fc0-DeclarationConstruct", + "id": "0x55cfa2d24fc0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33988fc0-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d24fc0-SpecificationConstruct" }, { - "id": "0x563b33988fc0-SpecificationConstruct", + "id": "0x55cfa2d24fc0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33988fc0-Statement" + "Statement": "0x55cfa2d24fc0-Statement" }, { - "id": "0x563b33988fc0-Statement", - "statement": "0x563b33988fd0-OtherSpecificationStmt", + "id": "0x55cfa2d24fc0-Statement", + "statement": "0x55cfa2d24fd0-OtherSpecificationStmt", "source": "common /com/ok" }, { - "id": "0x563b33988fd0-OtherSpecificationStmt", + "id": "0x55cfa2d24fd0-OtherSpecificationStmt", "variantKey": "CommonStmt", - "CommonStmt": "0x563b3399ad30-CommonStmt" + "CommonStmt": "0x55cfa2d36d30-CommonStmt" }, { - "id": "0x563b3399ad30-CommonStmt", - "Block": [ - "0x563b33999dd0-Block" + "id": "0x55cfa2d36d30-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d35dd0-CommonStmtBlock" ] }, { - "id": "0x563b33999dd0-Block", - "Name": "0x563b33999de8-Name", + "id": "0x55cfa2d35dd0-CommonStmtBlock", + "Name": "0x55cfa2d35de8-Name", "CommonBlockObject": [ - "0x563b3398ae20-CommonBlockObject" + "0x55cfa2d26e20-CommonBlockObject" ] }, { - "id": "0x563b33999de8-Name", + "id": "0x55cfa2d35de8-Name", "source": "com" }, { - "id": "0x563b3398ae20-CommonBlockObject", - "Name": "0x563b3398ae58-Name" + "id": "0x55cfa2d26e20-CommonBlockObject", + "Name": "0x55cfa2d26e58-Name" }, { - "id": "0x563b3398ae58-Name", + "id": "0x55cfa2d26e58-Name", "source": "ok" }, { - "id": "0x563b33987c40-DeclarationConstruct", + "id": "0x55cfa2d23c40-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33987c40-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d23c40-SpecificationConstruct" }, { - "id": "0x563b33987c40-SpecificationConstruct", + "id": "0x55cfa2d23c40-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33987c40-Statement" + "Statement": "0x55cfa2d23c40-Statement" }, { - "id": "0x563b33987c40-Statement", - "statement": "0x563b339937e0-TypeDeclarationStmt", + "id": "0x55cfa2d23c40-Statement", + "statement": "0x55cfa2d2f7e0-TypeDeclarationStmt", "source": "logical(kind=1) ok" }, { - "id": "0x563b339937e0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563b33993810-DeclarationTypeSpec", + "id": "0x55cfa2d2f7e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d2f810-DeclarationTypeSpec", "EntityDecl": [ - "0x563b33987b50-EntityDecl" + "0x55cfa2d23b50-EntityDecl" ] }, { - "id": "0x563b33993810-DeclarationTypeSpec", + "id": "0x55cfa2d2f810-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563b33993810-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55cfa2d2f810-IntrinsicTypeSpec" }, { - "id": "0x563b33993810-IntrinsicTypeSpec", + "id": "0x55cfa2d2f810-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x563b33993810-Logical" + "Logical": "0x55cfa2d2f810-Logical" }, { - "id": "0x563b33993810-Logical", - "KindSelector": "0x563b33993810-KindSelector" + "id": "0x55cfa2d2f810-Logical", + "KindSelector": "0x55cfa2d2f810-KindSelector" }, { - "id": "0x563b33993810-KindSelector", + "id": "0x55cfa2d2f810-KindSelector", "variantKey": "Expr", - "Expr": "0x563b3398cd10-Expr" + "Expr": "0x55cfa2d28d10-Expr" }, { - "id": "0x563b3398cd10-Expr", + "id": "0x55cfa2d28d10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b3398cd30-LiteralConstant" + "LiteralConstant": "0x55cfa2d28d30-LiteralConstant" }, { - "id": "0x563b3398cd30-LiteralConstant", + "id": "0x55cfa2d28d30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b3398cd30-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d28d30-IntLiteralConstant" }, { - "id": "0x563b3398cd30-IntLiteralConstant", + "id": "0x55cfa2d28d30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563b33987b50-EntityDecl", - "Name": "0x563b33987c08-Name" + "id": "0x55cfa2d23b50-EntityDecl", + "Name": "0x55cfa2d23c08-Name" }, { - "id": "0x563b33987c08-Name", + "id": "0x55cfa2d23c08-Name", "source": "ok" }, { - "id": "0x563b33989ae0-DeclarationConstruct", + "id": "0x55cfa2d25ae0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33989ae0-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d25ae0-SpecificationConstruct" }, { - "id": "0x563b33989ae0-SpecificationConstruct", + "id": "0x55cfa2d25ae0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33989ae0-Statement" + "Statement": "0x55cfa2d25ae0-Statement" }, { - "id": "0x563b33989ae0-Statement", - "statement": "0x563b33988200-TypeDeclarationStmt", + "id": "0x55cfa2d25ae0-Statement", + "statement": "0x55cfa2d24200-TypeDeclarationStmt", "source": "integer*4 m,d,ans" }, { - "id": "0x563b33988200-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563b33988230-DeclarationTypeSpec", + "id": "0x55cfa2d24200-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d24230-DeclarationTypeSpec", "EntityDecl": [ - "0x563b3398c510-EntityDecl", - "0x563b3398c1d0-EntityDecl", - "0x563b339120c0-EntityDecl" + "0x55cfa2d28510-EntityDecl", + "0x55cfa2d281d0-EntityDecl", + "0x55cfa2cae0c0-EntityDecl" ] }, { - "id": "0x563b33988230-DeclarationTypeSpec", + "id": "0x55cfa2d24230-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563b33988230-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55cfa2d24230-IntrinsicTypeSpec" }, { - "id": "0x563b33988230-IntrinsicTypeSpec", + "id": "0x55cfa2d24230-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x563b33988230-IntegerTypeSpec" + "IntegerTypeSpec": "0x55cfa2d24230-IntegerTypeSpec" }, { - "id": "0x563b33988230-IntegerTypeSpec", - "KindSelector": "0x563b33988230-KindSelector" + "id": "0x55cfa2d24230-IntegerTypeSpec", + "KindSelector": "0x55cfa2d24230-KindSelector" }, { - "id": "0x563b33988230-KindSelector", + "id": "0x55cfa2d24230-KindSelector", "variantKey": "StarSize", - "StarSize": "0x563b33988230-StarSize" + "StarSize": "0x55cfa2d24230-StarSize" }, { - "id": "0x563b33988230-StarSize", + "id": "0x55cfa2d24230-StarSize", "uint64_t": "4" }, { - "id": "0x563b3398c510-EntityDecl", - "Name": "0x563b3398c5c8-Name" + "id": "0x55cfa2d28510-EntityDecl", + "Name": "0x55cfa2d285c8-Name" }, { - "id": "0x563b3398c5c8-Name", + "id": "0x55cfa2d285c8-Name", "source": "m" }, { - "id": "0x563b3398c1d0-EntityDecl", - "Name": "0x563b3398c288-Name" + "id": "0x55cfa2d281d0-EntityDecl", + "Name": "0x55cfa2d28288-Name" }, { - "id": "0x563b3398c288-Name", + "id": "0x55cfa2d28288-Name", "source": "d" }, { - "id": "0x563b339120c0-EntityDecl", - "Name": "0x563b33912178-Name" + "id": "0x55cfa2cae0c0-EntityDecl", + "Name": "0x55cfa2cae178-Name" }, { - "id": "0x563b33912178-Name", + "id": "0x55cfa2cae178-Name", "source": "ans" }, { - "id": "0x563b3398c6e0-DeclarationConstruct", + "id": "0x55cfa2d286e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b3398c6e0-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d286e0-SpecificationConstruct" }, { - "id": "0x563b3398c6e0-SpecificationConstruct", + "id": "0x55cfa2d286e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b3398c6e0-Statement" + "Statement": "0x55cfa2d286e0-Statement" }, { - "id": "0x563b3398c6e0-Statement", - "statement": "0x563b33999710-ParameterStmt", + "id": "0x55cfa2d286e0-Statement", + "statement": "0x55cfa2d35710-ParameterStmt", "source": "parameter(m=19,d=3,ans=1)" }, { - "id": "0x563b33999710-ParameterStmt", + "id": "0x55cfa2d35710-ParameterStmt", "NamedConstantDef": [ - "0x563b33998bd0-NamedConstantDef", - "0x563b33998430-NamedConstantDef", - "0x563b33998b10-NamedConstantDef" + "0x55cfa2d34bd0-NamedConstantDef", + "0x55cfa2d34430-NamedConstantDef", + "0x55cfa2d34b10-NamedConstantDef" ] }, { - "id": "0x563b33998bd0-NamedConstantDef", - "NamedConstant": "0x563b33998bd8-NamedConstant", - "Expr": "0x563b3398c5f0-Expr" + "id": "0x55cfa2d34bd0-NamedConstantDef", + "NamedConstant": "0x55cfa2d34bd8-NamedConstant", + "Expr": "0x55cfa2d285f0-Expr" }, { - "id": "0x563b33998bd8-NamedConstant", - "Name": "0x563b33998bd8-Name" + "id": "0x55cfa2d34bd8-NamedConstant", + "Name": "0x55cfa2d34bd8-Name" }, { - "id": "0x563b33998bd8-Name", + "id": "0x55cfa2d34bd8-Name", "source": "m" }, { - "id": "0x563b3398c5f0-Expr", + "id": "0x55cfa2d285f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b3398c610-LiteralConstant" + "LiteralConstant": "0x55cfa2d28610-LiteralConstant" }, { - "id": "0x563b3398c610-LiteralConstant", + "id": "0x55cfa2d28610-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b3398c610-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d28610-IntLiteralConstant" }, { - "id": "0x563b3398c610-IntLiteralConstant", + "id": "0x55cfa2d28610-IntLiteralConstant", "CharBlock": "19" }, { - "id": "0x563b33998430-NamedConstantDef", - "NamedConstant": "0x563b33998438-NamedConstant", - "Expr": "0x563b33988380-Expr" + "id": "0x55cfa2d34430-NamedConstantDef", + "NamedConstant": "0x55cfa2d34438-NamedConstant", + "Expr": "0x55cfa2d24380-Expr" }, { - "id": "0x563b33998438-NamedConstant", - "Name": "0x563b33998438-Name" + "id": "0x55cfa2d34438-NamedConstant", + "Name": "0x55cfa2d34438-Name" }, { - "id": "0x563b33998438-Name", + "id": "0x55cfa2d34438-Name", "source": "d" }, { - "id": "0x563b33988380-Expr", + "id": "0x55cfa2d24380-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b339883a0-LiteralConstant" + "LiteralConstant": "0x55cfa2d243a0-LiteralConstant" }, { - "id": "0x563b339883a0-LiteralConstant", + "id": "0x55cfa2d243a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b339883a0-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d243a0-IntLiteralConstant" }, { - "id": "0x563b339883a0-IntLiteralConstant", + "id": "0x55cfa2d243a0-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x563b33998b10-NamedConstantDef", - "NamedConstant": "0x563b33998b18-NamedConstant", - "Expr": "0x563b339884c0-Expr" + "id": "0x55cfa2d34b10-NamedConstantDef", + "NamedConstant": "0x55cfa2d34b18-NamedConstant", + "Expr": "0x55cfa2d244c0-Expr" }, { - "id": "0x563b33998b18-NamedConstant", - "Name": "0x563b33998b18-Name" + "id": "0x55cfa2d34b18-NamedConstant", + "Name": "0x55cfa2d34b18-Name" }, { - "id": "0x563b33998b18-Name", + "id": "0x55cfa2d34b18-Name", "source": "ans" }, { - "id": "0x563b339884c0-Expr", + "id": "0x55cfa2d244c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b339884e0-LiteralConstant" + "LiteralConstant": "0x55cfa2d244e0-LiteralConstant" }, { - "id": "0x563b339884e0-LiteralConstant", + "id": "0x55cfa2d244e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b339884e0-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d244e0-IntLiteralConstant" }, { - "id": "0x563b339884e0-IntLiteralConstant", + "id": "0x55cfa2d244e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563b33990838-ExecutionPart", + "id": "0x55cfa2d2c838-ExecutionPart", "ExecutionPartConstruct": [ - "0x563b3398de20-ExecutionPartConstruct" + "0x55cfa2d29e20-ExecutionPartConstruct" ] }, { - "id": "0x563b33990838-ExecutionPartConstruct" + "id": "0x55cfa2d2c838-ExecutionPartConstruct" }, { - "id": "0x563b3398de20-ExecutionPartConstruct", + "id": "0x55cfa2d29e20-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b3398de20-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d29e20-ExecutableConstruct" }, { - "id": "0x563b3398de20-ExecutableConstruct", + "id": "0x55cfa2d29e20-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x563b3398f7f0-IfConstruct" + "IfConstruct": "0x55cfa2d2b7f0-IfConstruct" }, { - "id": "0x563b3398f7f0-IfConstruct", - "Statement": "0x563b3398f8c0-Statement", + "id": "0x55cfa2d2b7f0-IfConstruct", + "Statement": "0x55cfa2d2b8c0-Statement", "ExecutionPartConstruct": [ - "0x563b33993630-ExecutionPartConstruct", - "0x563b3398f7a0-ExecutionPartConstruct" + "0x55cfa2d2f630-ExecutionPartConstruct", + "0x55cfa2d2b7a0-ExecutionPartConstruct" ], - "Statement": "0x563b3398f7f0-Statement" + "Statement": "0x55cfa2d2b7f0-Statement" }, { - "id": "0x563b3398f8c0-Statement", - "statement": "0x563b3398f8d0-IfThenStmt", + "id": "0x55cfa2d2b8c0-Statement", + "statement": "0x55cfa2d2b8d0-IfThenStmt", "source": "if(mod(m,d) .ne. ans) then" }, { - "id": "0x563b3398f8d0-IfThenStmt", - "Expr": "0x563b3398dd30-Expr" + "id": "0x55cfa2d2b8d0-IfThenStmt", + "Expr": "0x55cfa2d29d30-Expr" }, { - "id": "0x563b3398dd30-Expr", + "id": "0x55cfa2d29d30-Expr", "variantKey": "NE", - "NE": "0x563b3398dd50-NE" + "NE": "0x55cfa2d29d50-NE" }, { - "id": "0x563b3398dd50-NE", - "left": "0x563b3398db70-Expr", - "right": "0x563b3398e8d0-Expr", + "id": "0x55cfa2d29d50-NE", + "left": "0x55cfa2d29b70-Expr", + "right": "0x55cfa2d2a8d0-Expr", "op": "NE" }, { - "id": "0x563b3398db70-Expr", + "id": "0x55cfa2d29b70-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x563b3398a780-FunctionReference" + "FunctionReference": "0x55cfa2d26780-FunctionReference" }, { - "id": "0x563b3398a780-FunctionReference", - "Call": "0x563b3398a780-Call" + "id": "0x55cfa2d26780-FunctionReference", + "Call": "0x55cfa2d26780-Call" }, { - "id": "0x563b3398a780-Call", - "ProcedureDesignator": "0x563b3398a798-ProcedureDesignator", + "id": "0x55cfa2d26780-Call", + "ProcedureDesignator": "0x55cfa2d26798-ProcedureDesignator", "ActualArgSpec": [ - "0x563b339886e0-ActualArgSpec", - "0x563b3398ea20-ActualArgSpec" + "0x55cfa2d246e0-ActualArgSpec", + "0x55cfa2d2aa20-ActualArgSpec" ] }, { - "id": "0x563b3398a798-ProcedureDesignator", + "id": "0x55cfa2d26798-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b3398a798-Name" + "Name": "0x55cfa2d26798-Name" }, { - "id": "0x563b3398a798-Name", + "id": "0x55cfa2d26798-Name", "source": "mod" }, { - "id": "0x563b339886e0-ActualArgSpec", - "ActualArg": "0x563b339886e0-ActualArg" + "id": "0x55cfa2d246e0-ActualArgSpec", + "ActualArg": "0x55cfa2d246e0-ActualArg" }, { - "id": "0x563b339886e0-ActualArg", + "id": "0x55cfa2d246e0-ActualArg", "variantKey": "Expr", - "Expr": "0x563b3398dc50-Expr" + "Expr": "0x55cfa2d29c50-Expr" }, { - "id": "0x563b3398dc50-Expr", + "id": "0x55cfa2d29c50-Expr", "variantKey": "Designator", - "Designator": "0x563b339935c0-Designator" + "Designator": "0x55cfa2d2f5c0-Designator" }, { - "id": "0x563b339935c0-Designator", + "id": "0x55cfa2d2f5c0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b339935d0-DataRef" + "DataRef": "0x55cfa2d2f5d0-DataRef" }, { - "id": "0x563b339935d0-DataRef", + "id": "0x55cfa2d2f5d0-DataRef", "variantKey": "Name", - "Name": "0x563b339935d0-Name" + "Name": "0x55cfa2d2f5d0-Name" }, { - "id": "0x563b339935d0-Name", + "id": "0x55cfa2d2f5d0-Name", "source": "m" }, { - "id": "0x563b3398ea20-ActualArgSpec", - "ActualArg": "0x563b3398ea20-ActualArg" + "id": "0x55cfa2d2aa20-ActualArgSpec", + "ActualArg": "0x55cfa2d2aa20-ActualArg" }, { - "id": "0x563b3398ea20-ActualArg", + "id": "0x55cfa2d2aa20-ActualArg", "variantKey": "Expr", - "Expr": "0x563b33993480-Expr" + "Expr": "0x55cfa2d2f480-Expr" }, { - "id": "0x563b33993480-Expr", + "id": "0x55cfa2d2f480-Expr", "variantKey": "Designator", - "Designator": "0x563b3398e9b0-Designator" + "Designator": "0x55cfa2d2a9b0-Designator" }, { - "id": "0x563b3398e9b0-Designator", + "id": "0x55cfa2d2a9b0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3398e9c0-DataRef" + "DataRef": "0x55cfa2d2a9c0-DataRef" }, { - "id": "0x563b3398e9c0-DataRef", + "id": "0x55cfa2d2a9c0-DataRef", "variantKey": "Name", - "Name": "0x563b3398e9c0-Name" + "Name": "0x55cfa2d2a9c0-Name" }, { - "id": "0x563b3398e9c0-Name", + "id": "0x55cfa2d2a9c0-Name", "source": "d" }, { - "id": "0x563b3398e8d0-Expr", + "id": "0x55cfa2d2a8d0-Expr", "variantKey": "Designator", - "Designator": "0x563b3398e160-Designator" + "Designator": "0x55cfa2d2a160-Designator" }, { - "id": "0x563b3398e160-Designator", + "id": "0x55cfa2d2a160-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3398e170-DataRef" + "DataRef": "0x55cfa2d2a170-DataRef" }, { - "id": "0x563b3398e170-DataRef", + "id": "0x55cfa2d2a170-DataRef", "variantKey": "Name", - "Name": "0x563b3398e170-Name" + "Name": "0x55cfa2d2a170-Name" }, { - "id": "0x563b3398e170-Name", + "id": "0x55cfa2d2a170-Name", "source": "ans" }, { - "id": "0x563b3398f8a8-ExecutionPartConstruct" + "id": "0x55cfa2d2b8a8-ExecutionPartConstruct" }, { - "id": "0x563b33993630-ExecutionPartConstruct", + "id": "0x55cfa2d2f630-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b33993630-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d2f630-ExecutableConstruct" }, { - "id": "0x563b33993630-ExecutableConstruct", + "id": "0x55cfa2d2f630-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b33993630-Statement" + "Statement": "0x55cfa2d2f630-Statement" }, { - "id": "0x563b33993630-Statement", - "statement": "0x563b33993640-ActionStmt", + "id": "0x55cfa2d2f630-Statement", + "statement": "0x55cfa2d2f640-ActionStmt", "source": "ok = .false." }, { - "id": "0x563b33993640-ActionStmt", + "id": "0x55cfa2d2f640-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563b33989b30-AssignmentStmt" + "AssignmentStmt": "0x55cfa2d25b30-AssignmentStmt" }, { - "id": "0x563b33989b30-AssignmentStmt", - "Variable": "0x563b33989c10-Variable", - "Expr": "0x563b33989b40-Expr" + "id": "0x55cfa2d25b30-AssignmentStmt", + "Variable": "0x55cfa2d25c10-Variable", + "Expr": "0x55cfa2d25b40-Expr" }, { - "id": "0x563b33989c10-Variable", + "id": "0x55cfa2d25c10-Variable", "variantKey": "Designator", - "Designator": "0x563b3398c8d0-Designator" + "Designator": "0x55cfa2d288d0-Designator" }, { - "id": "0x563b3398c8d0-Designator", + "id": "0x55cfa2d288d0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3398c8e0-DataRef" + "DataRef": "0x55cfa2d288e0-DataRef" }, { - "id": "0x563b3398c8e0-DataRef", + "id": "0x55cfa2d288e0-DataRef", "variantKey": "Name", - "Name": "0x563b3398c8e0-Name" + "Name": "0x55cfa2d288e0-Name" }, { - "id": "0x563b3398c8e0-Name", + "id": "0x55cfa2d288e0-Name", "source": "ok" }, { - "id": "0x563b33989b40-Expr", + "id": "0x55cfa2d25b40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33989b60-LiteralConstant" + "LiteralConstant": "0x55cfa2d25b60-LiteralConstant" }, { - "id": "0x563b33989b60-LiteralConstant", + "id": "0x55cfa2d25b60-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x563b33989b60-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55cfa2d25b60-LogicalLiteralConstant" }, { - "id": "0x563b33989b60-LogicalLiteralConstant", + "id": "0x55cfa2d25b60-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x563b3398f7a0-ExecutionPartConstruct", + "id": "0x55cfa2d2b7a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b3398f7a0-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d2b7a0-ExecutableConstruct" }, { - "id": "0x563b3398f7a0-ExecutableConstruct", + "id": "0x55cfa2d2b7a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b3398f7a0-Statement" + "Statement": "0x55cfa2d2b7a0-Statement" }, { - "id": "0x563b3398f7a0-Statement", - "statement": "0x563b3398f7b0-ActionStmt", + "id": "0x55cfa2d2b7a0-Statement", + "statement": "0x55cfa2d2b7b0-ActionStmt", "source": "print *,\"TEST1-NG =>\",mod(m,d)" }, { - "id": "0x563b3398f7b0-ActionStmt", + "id": "0x55cfa2d2b7b0-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x563b3398f690-PrintStmt" + "PrintStmt": "0x55cfa2d2b690-PrintStmt" }, { - "id": "0x563b3398f690-PrintStmt", - "Format": "0x563b3398f6a8-Format", + "id": "0x55cfa2d2b690-PrintStmt", + "Format": "0x55cfa2d2b6a8-Format", "OutputItem": [ - "0x563b3398f5b0-OutputItem", - "0x563b3398de80-OutputItem" + "0x55cfa2d2b5b0-OutputItem", + "0x55cfa2d29e80-OutputItem" ] }, { - "id": "0x563b3398f6a8-Format", + "id": "0x55cfa2d2b6a8-Format", "variantKey": "Star", - "Star": "0x563b3398f6a8-Star" + "Star": "0x55cfa2d2b6a8-Star" }, { - "id": "0x563b3398f6a8-Star" + "id": "0x55cfa2d2b6a8-Star" }, { - "id": "0x563b3398f5b0-OutputItem", + "id": "0x55cfa2d2b5b0-OutputItem", "variantKey": "Expr", - "Expr": "0x563b3398f5b0-Expr" + "Expr": "0x55cfa2d2b5b0-Expr" }, { - "id": "0x563b3398f5b0-Expr", + "id": "0x55cfa2d2b5b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b3398f5d0-LiteralConstant" + "LiteralConstant": "0x55cfa2d2b5d0-LiteralConstant" }, { - "id": "0x563b3398f5d0-LiteralConstant", + "id": "0x55cfa2d2b5d0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x563b3398f5d0-CharLiteralConstant" + "CharLiteralConstant": "0x55cfa2d2b5d0-CharLiteralConstant" }, { - "id": "0x563b3398f5d0-CharLiteralConstant", + "id": "0x55cfa2d2b5d0-CharLiteralConstant", "string": "TEST1-NG =>" }, { - "id": "0x563b3398de80-OutputItem", + "id": "0x55cfa2d29e80-OutputItem", "variantKey": "Expr", - "Expr": "0x563b3398de80-Expr" + "Expr": "0x55cfa2d29e80-Expr" }, { - "id": "0x563b3398de80-Expr", + "id": "0x55cfa2d29e80-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x563b3398ed20-FunctionReference" + "FunctionReference": "0x55cfa2d2ad20-FunctionReference" }, { - "id": "0x563b3398ed20-FunctionReference", - "Call": "0x563b3398ed20-Call" + "id": "0x55cfa2d2ad20-FunctionReference", + "Call": "0x55cfa2d2ad20-Call" }, { - "id": "0x563b3398ed20-Call", - "ProcedureDesignator": "0x563b3398ed38-ProcedureDesignator", + "id": "0x55cfa2d2ad20-Call", + "ProcedureDesignator": "0x55cfa2d2ad38-ProcedureDesignator", "ActualArgSpec": [ - "0x563b3398f4a0-ActualArgSpec", - "0x563b3398f390-ActualArgSpec" + "0x55cfa2d2b4a0-ActualArgSpec", + "0x55cfa2d2b390-ActualArgSpec" ] }, { - "id": "0x563b3398ed38-ProcedureDesignator", + "id": "0x55cfa2d2ad38-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b3398ed38-Name" + "Name": "0x55cfa2d2ad38-Name" }, { - "id": "0x563b3398ed38-Name", + "id": "0x55cfa2d2ad38-Name", "source": "mod" }, { - "id": "0x563b3398f4a0-ActualArgSpec", - "ActualArg": "0x563b3398f4a0-ActualArg" + "id": "0x55cfa2d2b4a0-ActualArgSpec", + "ActualArg": "0x55cfa2d2b4a0-ActualArg" }, { - "id": "0x563b3398f4a0-ActualArg", + "id": "0x55cfa2d2b4a0-ActualArg", "variantKey": "Expr", - "Expr": "0x563b3398f240-Expr" + "Expr": "0x55cfa2d2b240-Expr" }, { - "id": "0x563b3398f240-Expr", + "id": "0x55cfa2d2b240-Expr", "variantKey": "Designator", - "Designator": "0x563b33988e50-Designator" + "Designator": "0x55cfa2d24e50-Designator" }, { - "id": "0x563b33988e50-Designator", + "id": "0x55cfa2d24e50-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33988e60-DataRef" + "DataRef": "0x55cfa2d24e60-DataRef" }, { - "id": "0x563b33988e60-DataRef", + "id": "0x55cfa2d24e60-DataRef", "variantKey": "Name", - "Name": "0x563b33988e60-Name" + "Name": "0x55cfa2d24e60-Name" }, { - "id": "0x563b33988e60-Name", + "id": "0x55cfa2d24e60-Name", "source": "m" }, { - "id": "0x563b3398f390-ActualArgSpec", - "ActualArg": "0x563b3398f390-ActualArg" + "id": "0x55cfa2d2b390-ActualArgSpec", + "ActualArg": "0x55cfa2d2b390-ActualArg" }, { - "id": "0x563b3398f390-ActualArg", + "id": "0x55cfa2d2b390-ActualArg", "variantKey": "Expr", - "Expr": "0x563b3398f160-Expr" + "Expr": "0x55cfa2d2b160-Expr" }, { - "id": "0x563b3398f160-Expr", + "id": "0x55cfa2d2b160-Expr", "variantKey": "Designator", - "Designator": "0x563b339885a0-Designator" + "Designator": "0x55cfa2d245a0-Designator" }, { - "id": "0x563b339885a0-Designator", + "id": "0x55cfa2d245a0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b339885b0-DataRef" + "DataRef": "0x55cfa2d245b0-DataRef" }, { - "id": "0x563b339885b0-DataRef", + "id": "0x55cfa2d245b0-DataRef", "variantKey": "Name", - "Name": "0x563b339885b0-Name" + "Name": "0x55cfa2d245b0-Name" }, { - "id": "0x563b339885b0-Name", + "id": "0x55cfa2d245b0-Name", "source": "d" }, { - "id": "0x563b3398f7f0-Statement", - "statement": "0x563b3398f800-EndIfStmt", + "id": "0x55cfa2d2b7f0-Statement", + "statement": "0x55cfa2d2b800-EndIfStmt", "source": "endif" }, { - "id": "0x563b3398f800-EndIfStmt" + "id": "0x55cfa2d2b800-EndIfStmt" }, { - "id": "0x563b339907b0-Statement", - "statement": "0x563b339907c0-EndSubroutineStmt", + "id": "0x55cfa2d2c7b0-Statement", + "statement": "0x55cfa2d2c7c0-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x563b339907c0-EndSubroutineStmt" + "id": "0x55cfa2d2c7c0-EndSubroutineStmt" }, { - "id": "0x563b3399aeb0-ProgramUnit", + "id": "0x55cfa2d36eb0-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x563b33992770-SubroutineSubprogram" + "SubroutineSubprogram": "0x55cfa2d2e770-SubroutineSubprogram" }, { - "id": "0x563b33992770-SubroutineSubprogram", - "Statement": "0x563b339928b8-Statement", - "SpecificationPart": "0x563b33992810-SpecificationPart", - "ExecutionPart": "0x563b339927f8-ExecutionPart", - "Statement": "0x563b33992770-Statement" + "id": "0x55cfa2d2e770-SubroutineSubprogram", + "Statement": "0x55cfa2d2e8b8-Statement", + "SpecificationPart": "0x55cfa2d2e810-SpecificationPart", + "ExecutionPart": "0x55cfa2d2e7f8-ExecutionPart", + "Statement": "0x55cfa2d2e770-Statement" }, { - "id": "0x563b339928b8-Statement", - "statement": "0x563b339928c8-SubroutineStmt", + "id": "0x55cfa2d2e8b8-Statement", + "statement": "0x55cfa2d2e8c8-SubroutineStmt", "source": "subroutine test2" }, { - "id": "0x563b339928c8-SubroutineStmt", - "Name": "0x563b33992900-Name" + "id": "0x55cfa2d2e8c8-SubroutineStmt", + "Name": "0x55cfa2d2e900-Name" }, { - "id": "0x563b33992900-Name", + "id": "0x55cfa2d2e900-Name", "source": "test2" }, { - "id": "0x563b33992810-SpecificationPart", - "ImplicitPart": "0x563b33992828-ImplicitPart", + "id": "0x55cfa2d2e810-SpecificationPart", + "ImplicitPart": "0x55cfa2d2e828-ImplicitPart", "DeclarationConstruct": [ - "0x563b33993570-DeclarationConstruct", - "0x563b3398a180-DeclarationConstruct", - "0x563b339887f0-DeclarationConstruct", - "0x563b33988850-DeclarationConstruct" + "0x55cfa2d2f570-DeclarationConstruct", + "0x55cfa2d26180-DeclarationConstruct", + "0x55cfa2d247f0-DeclarationConstruct", + "0x55cfa2d24850-DeclarationConstruct" ] }, { - "id": "0x563b33992828-ImplicitPart" + "id": "0x55cfa2d2e828-ImplicitPart" }, { - "id": "0x563b33993570-DeclarationConstruct", + "id": "0x55cfa2d2f570-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33993570-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d2f570-SpecificationConstruct" }, { - "id": "0x563b33993570-SpecificationConstruct", + "id": "0x55cfa2d2f570-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33993570-Statement" + "Statement": "0x55cfa2d2f570-Statement" }, { - "id": "0x563b33993570-Statement", - "statement": "0x563b33993580-OtherSpecificationStmt", + "id": "0x55cfa2d2f570-Statement", + "statement": "0x55cfa2d2f580-OtherSpecificationStmt", "source": "common /com/ok" }, { - "id": "0x563b33993580-OtherSpecificationStmt", + "id": "0x55cfa2d2f580-OtherSpecificationStmt", "variantKey": "CommonStmt", - "CommonStmt": "0x563b3399ae70-CommonStmt" + "CommonStmt": "0x55cfa2d36e70-CommonStmt" }, { - "id": "0x563b3399ae70-CommonStmt", - "Block": [ - "0x563b339a0e40-Block" + "id": "0x55cfa2d36e70-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d3ce40-CommonStmtBlock" ] }, { - "id": "0x563b339a0e40-Block", - "Name": "0x563b339a0e58-Name", + "id": "0x55cfa2d3ce40-CommonStmtBlock", + "Name": "0x55cfa2d3ce58-Name", "CommonBlockObject": [ - "0x563b3398b360-CommonBlockObject" + "0x55cfa2d27360-CommonBlockObject" ] }, { - "id": "0x563b339a0e58-Name", + "id": "0x55cfa2d3ce58-Name", "source": "com" }, { - "id": "0x563b3398b360-CommonBlockObject", - "Name": "0x563b3398b398-Name" + "id": "0x55cfa2d27360-CommonBlockObject", + "Name": "0x55cfa2d27398-Name" }, { - "id": "0x563b3398b398-Name", + "id": "0x55cfa2d27398-Name", "source": "ok" }, { - "id": "0x563b3398a180-DeclarationConstruct", + "id": "0x55cfa2d26180-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b3398a180-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d26180-SpecificationConstruct" }, { - "id": "0x563b3398a180-SpecificationConstruct", + "id": "0x55cfa2d26180-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b3398a180-Statement" + "Statement": "0x55cfa2d26180-Statement" }, { - "id": "0x563b3398a180-Statement", - "statement": "0x563b33988eb0-TypeDeclarationStmt", + "id": "0x55cfa2d26180-Statement", + "statement": "0x55cfa2d24eb0-TypeDeclarationStmt", "source": "logical(kind=1) ok" }, { - "id": "0x563b33988eb0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563b33988ee0-DeclarationTypeSpec", + "id": "0x55cfa2d24eb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d24ee0-DeclarationTypeSpec", "EntityDecl": [ - "0x563b339909a0-EntityDecl" + "0x55cfa2d2c9a0-EntityDecl" ] }, { - "id": "0x563b33988ee0-DeclarationTypeSpec", + "id": "0x55cfa2d24ee0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563b33988ee0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55cfa2d24ee0-IntrinsicTypeSpec" }, { - "id": "0x563b33988ee0-IntrinsicTypeSpec", + "id": "0x55cfa2d24ee0-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x563b33988ee0-Logical" + "Logical": "0x55cfa2d24ee0-Logical" }, { - "id": "0x563b33988ee0-Logical", - "KindSelector": "0x563b33988ee0-KindSelector" + "id": "0x55cfa2d24ee0-Logical", + "KindSelector": "0x55cfa2d24ee0-KindSelector" }, { - "id": "0x563b33988ee0-KindSelector", + "id": "0x55cfa2d24ee0-KindSelector", "variantKey": "Expr", - "Expr": "0x563b33993680-Expr" + "Expr": "0x55cfa2d2f680-Expr" }, { - "id": "0x563b33993680-Expr", + "id": "0x55cfa2d2f680-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b339936a0-LiteralConstant" + "LiteralConstant": "0x55cfa2d2f6a0-LiteralConstant" }, { - "id": "0x563b339936a0-LiteralConstant", + "id": "0x55cfa2d2f6a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b339936a0-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2f6a0-IntLiteralConstant" }, { - "id": "0x563b339936a0-IntLiteralConstant", + "id": "0x55cfa2d2f6a0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563b339909a0-EntityDecl", - "Name": "0x563b33990a58-Name" + "id": "0x55cfa2d2c9a0-EntityDecl", + "Name": "0x55cfa2d2ca58-Name" }, { - "id": "0x563b33990a58-Name", + "id": "0x55cfa2d2ca58-Name", "source": "ok" }, { - "id": "0x563b339887f0-DeclarationConstruct", + "id": "0x55cfa2d247f0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b339887f0-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d247f0-SpecificationConstruct" }, { - "id": "0x563b339887f0-SpecificationConstruct", + "id": "0x55cfa2d247f0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b339887f0-Statement" + "Statement": "0x55cfa2d247f0-Statement" }, { - "id": "0x563b339887f0-Statement", - "statement": "0x563b3398e410-TypeDeclarationStmt", + "id": "0x55cfa2d247f0-Statement", + "statement": "0x55cfa2d2a410-TypeDeclarationStmt", "source": "integer*2 m,d,ans" }, { - "id": "0x563b3398e410-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563b3398e440-DeclarationTypeSpec", + "id": "0x55cfa2d2a410-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d2a440-DeclarationTypeSpec", "EntityDecl": [ - "0x563b33990c70-EntityDecl", - "0x563b33990a90-EntityDecl", - "0x563b33990b80-EntityDecl" + "0x55cfa2d2cc70-EntityDecl", + "0x55cfa2d2ca90-EntityDecl", + "0x55cfa2d2cb80-EntityDecl" ] }, { - "id": "0x563b3398e440-DeclarationTypeSpec", + "id": "0x55cfa2d2a440-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563b3398e440-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55cfa2d2a440-IntrinsicTypeSpec" }, { - "id": "0x563b3398e440-IntrinsicTypeSpec", + "id": "0x55cfa2d2a440-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x563b3398e440-IntegerTypeSpec" + "IntegerTypeSpec": "0x55cfa2d2a440-IntegerTypeSpec" }, { - "id": "0x563b3398e440-IntegerTypeSpec", - "KindSelector": "0x563b3398e440-KindSelector" + "id": "0x55cfa2d2a440-IntegerTypeSpec", + "KindSelector": "0x55cfa2d2a440-KindSelector" }, { - "id": "0x563b3398e440-KindSelector", + "id": "0x55cfa2d2a440-KindSelector", "variantKey": "StarSize", - "StarSize": "0x563b3398e440-StarSize" + "StarSize": "0x55cfa2d2a440-StarSize" }, { - "id": "0x563b3398e440-StarSize", + "id": "0x55cfa2d2a440-StarSize", "uint64_t": "2" }, { - "id": "0x563b33990c70-EntityDecl", - "Name": "0x563b33990d28-Name" + "id": "0x55cfa2d2cc70-EntityDecl", + "Name": "0x55cfa2d2cd28-Name" }, { - "id": "0x563b33990d28-Name", + "id": "0x55cfa2d2cd28-Name", "source": "m" }, { - "id": "0x563b33990a90-EntityDecl", - "Name": "0x563b33990b48-Name" + "id": "0x55cfa2d2ca90-EntityDecl", + "Name": "0x55cfa2d2cb48-Name" }, { - "id": "0x563b33990b48-Name", + "id": "0x55cfa2d2cb48-Name", "source": "d" }, { - "id": "0x563b33990b80-EntityDecl", - "Name": "0x563b33990c38-Name" + "id": "0x55cfa2d2cb80-EntityDecl", + "Name": "0x55cfa2d2cc38-Name" }, { - "id": "0x563b33990c38-Name", + "id": "0x55cfa2d2cc38-Name", "source": "ans" }, { - "id": "0x563b33988850-DeclarationConstruct", + "id": "0x55cfa2d24850-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33988850-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d24850-SpecificationConstruct" }, { - "id": "0x563b33988850-SpecificationConstruct", + "id": "0x55cfa2d24850-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33988850-Statement" + "Statement": "0x55cfa2d24850-Statement" }, { - "id": "0x563b33988850-Statement", - "statement": "0x563b3399add0-ParameterStmt", + "id": "0x55cfa2d24850-Statement", + "statement": "0x55cfa2d36dd0-ParameterStmt", "source": "parameter(m=19,d=3,ans=1)" }, { - "id": "0x563b3399add0-ParameterStmt", + "id": "0x55cfa2d36dd0-ParameterStmt", "NamedConstantDef": [ - "0x563b3399ae00-NamedConstantDef", - "0x563b33998fd0-NamedConstantDef", - "0x563b3399ada0-NamedConstantDef" + "0x55cfa2d36e00-NamedConstantDef", + "0x55cfa2d34fd0-NamedConstantDef", + "0x55cfa2d36da0-NamedConstantDef" ] }, { - "id": "0x563b3399ae00-NamedConstantDef", - "NamedConstant": "0x563b3399ae08-NamedConstant", - "Expr": "0x563b33990d50-Expr" + "id": "0x55cfa2d36e00-NamedConstantDef", + "NamedConstant": "0x55cfa2d36e08-NamedConstant", + "Expr": "0x55cfa2d2cd50-Expr" }, { - "id": "0x563b3399ae08-NamedConstant", - "Name": "0x563b3399ae08-Name" + "id": "0x55cfa2d36e08-NamedConstant", + "Name": "0x55cfa2d36e08-Name" }, { - "id": "0x563b3399ae08-Name", + "id": "0x55cfa2d36e08-Name", "source": "m" }, { - "id": "0x563b33990d50-Expr", + "id": "0x55cfa2d2cd50-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33990d70-LiteralConstant" + "LiteralConstant": "0x55cfa2d2cd70-LiteralConstant" }, { - "id": "0x563b33990d70-LiteralConstant", + "id": "0x55cfa2d2cd70-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b33990d70-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2cd70-IntLiteralConstant" }, { - "id": "0x563b33990d70-IntLiteralConstant", + "id": "0x55cfa2d2cd70-IntLiteralConstant", "CharBlock": "19" }, { - "id": "0x563b33998fd0-NamedConstantDef", - "NamedConstant": "0x563b33998fd8-NamedConstant", - "Expr": "0x563b33990e30-Expr" + "id": "0x55cfa2d34fd0-NamedConstantDef", + "NamedConstant": "0x55cfa2d34fd8-NamedConstant", + "Expr": "0x55cfa2d2ce30-Expr" }, { - "id": "0x563b33998fd8-NamedConstant", - "Name": "0x563b33998fd8-Name" + "id": "0x55cfa2d34fd8-NamedConstant", + "Name": "0x55cfa2d34fd8-Name" }, { - "id": "0x563b33998fd8-Name", + "id": "0x55cfa2d34fd8-Name", "source": "d" }, { - "id": "0x563b33990e30-Expr", + "id": "0x55cfa2d2ce30-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33990e50-LiteralConstant" + "LiteralConstant": "0x55cfa2d2ce50-LiteralConstant" }, { - "id": "0x563b33990e50-LiteralConstant", + "id": "0x55cfa2d2ce50-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b33990e50-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2ce50-IntLiteralConstant" }, { - "id": "0x563b33990e50-IntLiteralConstant", + "id": "0x55cfa2d2ce50-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x563b3399ada0-NamedConstantDef", - "NamedConstant": "0x563b3399ada8-NamedConstant", - "Expr": "0x563b33990f10-Expr" + "id": "0x55cfa2d36da0-NamedConstantDef", + "NamedConstant": "0x55cfa2d36da8-NamedConstant", + "Expr": "0x55cfa2d2cf10-Expr" }, { - "id": "0x563b3399ada8-NamedConstant", - "Name": "0x563b3399ada8-Name" + "id": "0x55cfa2d36da8-NamedConstant", + "Name": "0x55cfa2d36da8-Name" }, { - "id": "0x563b3399ada8-Name", + "id": "0x55cfa2d36da8-Name", "source": "ans" }, { - "id": "0x563b33990f10-Expr", + "id": "0x55cfa2d2cf10-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33990f30-LiteralConstant" + "LiteralConstant": "0x55cfa2d2cf30-LiteralConstant" }, { - "id": "0x563b33990f30-LiteralConstant", + "id": "0x55cfa2d2cf30-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b33990f30-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2cf30-IntLiteralConstant" }, { - "id": "0x563b33990f30-IntLiteralConstant", + "id": "0x55cfa2d2cf30-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563b339927f8-ExecutionPart", + "id": "0x55cfa2d2e7f8-ExecutionPart", "ExecutionPartConstruct": [ - "0x563b339900d0-ExecutionPartConstruct" + "0x55cfa2d2c0d0-ExecutionPartConstruct" ] }, { - "id": "0x563b339927f8-ExecutionPartConstruct" + "id": "0x55cfa2d2e7f8-ExecutionPartConstruct" }, { - "id": "0x563b339900d0-ExecutionPartConstruct", + "id": "0x55cfa2d2c0d0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b339900d0-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d2c0d0-ExecutableConstruct" }, { - "id": "0x563b339900d0-ExecutableConstruct", + "id": "0x55cfa2d2c0d0-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x563b33991840-IfConstruct" + "IfConstruct": "0x55cfa2d2d840-IfConstruct" }, { - "id": "0x563b33991840-IfConstruct", - "Statement": "0x563b33991910-Statement", + "id": "0x55cfa2d2d840-IfConstruct", + "Statement": "0x55cfa2d2d910-Statement", "ExecutionPartConstruct": [ - "0x563b339911a0-ExecutionPartConstruct", - "0x563b339917f0-ExecutionPartConstruct" + "0x55cfa2d2d1a0-ExecutionPartConstruct", + "0x55cfa2d2d7f0-ExecutionPartConstruct" ], - "Statement": "0x563b33991840-Statement" + "Statement": "0x55cfa2d2d840-Statement" }, { - "id": "0x563b33991910-Statement", - "statement": "0x563b33991920-IfThenStmt", + "id": "0x55cfa2d2d910-Statement", + "statement": "0x55cfa2d2d920-IfThenStmt", "source": "if(mod(m,d) .ne. ans) then" }, { - "id": "0x563b33991920-IfThenStmt", - "Expr": "0x563b3398ffe0-Expr" + "id": "0x55cfa2d2d920-IfThenStmt", + "Expr": "0x55cfa2d2bfe0-Expr" }, { - "id": "0x563b3398ffe0-Expr", + "id": "0x55cfa2d2bfe0-Expr", "variantKey": "NE", - "NE": "0x563b33990000-NE" + "NE": "0x55cfa2d2c000-NE" }, { - "id": "0x563b33990000-NE", - "left": "0x563b3398fe20-Expr", - "right": "0x563b3398f910-Expr", + "id": "0x55cfa2d2c000-NE", + "left": "0x55cfa2d2be20-Expr", + "right": "0x55cfa2d2b910-Expr", "op": "NE" }, { - "id": "0x563b3398fe20-Expr", + "id": "0x55cfa2d2be20-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x563b3398b660-FunctionReference" + "FunctionReference": "0x55cfa2d27660-FunctionReference" }, { - "id": "0x563b3398b660-FunctionReference", - "Call": "0x563b3398b660-Call" + "id": "0x55cfa2d27660-FunctionReference", + "Call": "0x55cfa2d27660-Call" }, { - "id": "0x563b3398b660-Call", - "ProcedureDesignator": "0x563b3398b678-ProcedureDesignator", + "id": "0x55cfa2d27660-Call", + "ProcedureDesignator": "0x55cfa2d27678-ProcedureDesignator", "ActualArgSpec": [ - "0x563b33990130-ActualArgSpec", - "0x563b3398fb70-ActualArgSpec" + "0x55cfa2d2c130-ActualArgSpec", + "0x55cfa2d2bb70-ActualArgSpec" ] }, { - "id": "0x563b3398b678-ProcedureDesignator", + "id": "0x55cfa2d27678-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b3398b678-Name" + "Name": "0x55cfa2d27678-Name" }, { - "id": "0x563b3398b678-Name", + "id": "0x55cfa2d27678-Name", "source": "mod" }, { - "id": "0x563b33990130-ActualArgSpec", - "ActualArg": "0x563b33990130-ActualArg" + "id": "0x55cfa2d2c130-ActualArgSpec", + "ActualArg": "0x55cfa2d2c130-ActualArg" }, { - "id": "0x563b33990130-ActualArg", + "id": "0x55cfa2d2c130-ActualArg", "variantKey": "Expr", - "Expr": "0x563b3398ff00-Expr" + "Expr": "0x55cfa2d2bf00-Expr" }, { - "id": "0x563b3398ff00-Expr", + "id": "0x55cfa2d2bf00-Expr", "variantKey": "Designator", - "Designator": "0x563b33991130-Designator" + "Designator": "0x55cfa2d2d130-Designator" }, { - "id": "0x563b33991130-Designator", + "id": "0x55cfa2d2d130-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33991140-DataRef" + "DataRef": "0x55cfa2d2d140-DataRef" }, { - "id": "0x563b33991140-DataRef", + "id": "0x55cfa2d2d140-DataRef", "variantKey": "Name", - "Name": "0x563b33991140-Name" + "Name": "0x55cfa2d2d140-Name" }, { - "id": "0x563b33991140-Name", + "id": "0x55cfa2d2d140-Name", "source": "m" }, { - "id": "0x563b3398fb70-ActualArgSpec", - "ActualArg": "0x563b3398fb70-ActualArg" + "id": "0x55cfa2d2bb70-ActualArgSpec", + "ActualArg": "0x55cfa2d2bb70-ActualArg" }, { - "id": "0x563b3398fb70-ActualArg", + "id": "0x55cfa2d2bb70-ActualArg", "variantKey": "Expr", - "Expr": "0x563b33990ff0-Expr" + "Expr": "0x55cfa2d2cff0-Expr" }, { - "id": "0x563b33990ff0-Expr", + "id": "0x55cfa2d2cff0-Expr", "variantKey": "Designator", - "Designator": "0x563b3398f9f0-Designator" + "Designator": "0x55cfa2d2b9f0-Designator" }, { - "id": "0x563b3398f9f0-Designator", + "id": "0x55cfa2d2b9f0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3398fa00-DataRef" + "DataRef": "0x55cfa2d2ba00-DataRef" }, { - "id": "0x563b3398fa00-DataRef", + "id": "0x55cfa2d2ba00-DataRef", "variantKey": "Name", - "Name": "0x563b3398fa00-Name" + "Name": "0x55cfa2d2ba00-Name" }, { - "id": "0x563b3398fa00-Name", + "id": "0x55cfa2d2ba00-Name", "source": "d" }, { - "id": "0x563b3398f910-Expr", + "id": "0x55cfa2d2b910-Expr", "variantKey": "Designator", - "Designator": "0x563b3398fd30-Designator" + "Designator": "0x55cfa2d2bd30-Designator" }, { - "id": "0x563b3398fd30-Designator", + "id": "0x55cfa2d2bd30-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3398fd40-DataRef" + "DataRef": "0x55cfa2d2bd40-DataRef" }, { - "id": "0x563b3398fd40-DataRef", + "id": "0x55cfa2d2bd40-DataRef", "variantKey": "Name", - "Name": "0x563b3398fd40-Name" + "Name": "0x55cfa2d2bd40-Name" }, { - "id": "0x563b3398fd40-Name", + "id": "0x55cfa2d2bd40-Name", "source": "ans" }, { - "id": "0x563b339918f8-ExecutionPartConstruct" + "id": "0x55cfa2d2d8f8-ExecutionPartConstruct" }, { - "id": "0x563b339911a0-ExecutionPartConstruct", + "id": "0x55cfa2d2d1a0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b339911a0-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d2d1a0-ExecutableConstruct" }, { - "id": "0x563b339911a0-ExecutableConstruct", + "id": "0x55cfa2d2d1a0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b339911a0-Statement" + "Statement": "0x55cfa2d2d1a0-Statement" }, { - "id": "0x563b339911a0-Statement", - "statement": "0x563b339911b0-ActionStmt", + "id": "0x55cfa2d2d1a0-Statement", + "statement": "0x55cfa2d2d1b0-ActionStmt", "source": "ok = .false." }, { - "id": "0x563b339911b0-ActionStmt", + "id": "0x55cfa2d2d1b0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563b3398fa50-AssignmentStmt" + "AssignmentStmt": "0x55cfa2d2ba50-AssignmentStmt" }, { - "id": "0x563b3398fa50-AssignmentStmt", - "Variable": "0x563b3398fb30-Variable", - "Expr": "0x563b3398fa60-Expr" + "id": "0x55cfa2d2ba50-AssignmentStmt", + "Variable": "0x55cfa2d2bb30-Variable", + "Expr": "0x55cfa2d2ba60-Expr" }, { - "id": "0x563b3398fb30-Variable", + "id": "0x55cfa2d2bb30-Variable", "variantKey": "Designator", - "Designator": "0x563b3398fcd0-Designator" + "Designator": "0x55cfa2d2bcd0-Designator" }, { - "id": "0x563b3398fcd0-Designator", + "id": "0x55cfa2d2bcd0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3398fce0-DataRef" + "DataRef": "0x55cfa2d2bce0-DataRef" }, { - "id": "0x563b3398fce0-DataRef", + "id": "0x55cfa2d2bce0-DataRef", "variantKey": "Name", - "Name": "0x563b3398fce0-Name" + "Name": "0x55cfa2d2bce0-Name" }, { - "id": "0x563b3398fce0-Name", + "id": "0x55cfa2d2bce0-Name", "source": "ok" }, { - "id": "0x563b3398fa60-Expr", + "id": "0x55cfa2d2ba60-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b3398fa80-LiteralConstant" + "LiteralConstant": "0x55cfa2d2ba80-LiteralConstant" }, { - "id": "0x563b3398fa80-LiteralConstant", + "id": "0x55cfa2d2ba80-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x563b3398fa80-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55cfa2d2ba80-LogicalLiteralConstant" }, { - "id": "0x563b3398fa80-LogicalLiteralConstant", + "id": "0x55cfa2d2ba80-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x563b339917f0-ExecutionPartConstruct", + "id": "0x55cfa2d2d7f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b339917f0-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d2d7f0-ExecutableConstruct" }, { - "id": "0x563b339917f0-ExecutableConstruct", + "id": "0x55cfa2d2d7f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b339917f0-Statement" + "Statement": "0x55cfa2d2d7f0-Statement" }, { - "id": "0x563b339917f0-Statement", - "statement": "0x563b33991800-ActionStmt", + "id": "0x55cfa2d2d7f0-Statement", + "statement": "0x55cfa2d2d800-ActionStmt", "source": "print *,\"TEST2-NG =>\",mod(m,d)" }, { - "id": "0x563b33991800-ActionStmt", + "id": "0x55cfa2d2d800-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x563b339916e0-PrintStmt" + "PrintStmt": "0x55cfa2d2d6e0-PrintStmt" }, { - "id": "0x563b339916e0-PrintStmt", - "Format": "0x563b339916f8-Format", + "id": "0x55cfa2d2d6e0-PrintStmt", + "Format": "0x55cfa2d2d6f8-Format", "OutputItem": [ - "0x563b33991600-OutputItem", - "0x563b33991510-OutputItem" + "0x55cfa2d2d600-OutputItem", + "0x55cfa2d2d510-OutputItem" ] }, { - "id": "0x563b339916f8-Format", + "id": "0x55cfa2d2d6f8-Format", "variantKey": "Star", - "Star": "0x563b339916f8-Star" + "Star": "0x55cfa2d2d6f8-Star" }, { - "id": "0x563b339916f8-Star" + "id": "0x55cfa2d2d6f8-Star" }, { - "id": "0x563b33991600-OutputItem", + "id": "0x55cfa2d2d600-OutputItem", "variantKey": "Expr", - "Expr": "0x563b33991600-Expr" + "Expr": "0x55cfa2d2d600-Expr" }, { - "id": "0x563b33991600-Expr", + "id": "0x55cfa2d2d600-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33991620-LiteralConstant" + "LiteralConstant": "0x55cfa2d2d620-LiteralConstant" }, { - "id": "0x563b33991620-LiteralConstant", + "id": "0x55cfa2d2d620-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x563b33991620-CharLiteralConstant" + "CharLiteralConstant": "0x55cfa2d2d620-CharLiteralConstant" }, { - "id": "0x563b33991620-CharLiteralConstant", + "id": "0x55cfa2d2d620-CharLiteralConstant", "string": "TEST2-NG =>" }, { - "id": "0x563b33991510-OutputItem", + "id": "0x55cfa2d2d510-OutputItem", "variantKey": "Expr", - "Expr": "0x563b33991510-Expr" + "Expr": "0x55cfa2d2d510-Expr" }, { - "id": "0x563b33991510-Expr", + "id": "0x55cfa2d2d510-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x563b33990360-FunctionReference" + "FunctionReference": "0x55cfa2d2c360-FunctionReference" }, { - "id": "0x563b33990360-FunctionReference", - "Call": "0x563b33990360-Call" + "id": "0x55cfa2d2c360-FunctionReference", + "Call": "0x55cfa2d2c360-Call" }, { - "id": "0x563b33990360-Call", - "ProcedureDesignator": "0x563b33990378-ProcedureDesignator", + "id": "0x55cfa2d2c360-Call", + "ProcedureDesignator": "0x55cfa2d2c378-ProcedureDesignator", "ActualArgSpec": [ - "0x563b33991400-ActualArgSpec", - "0x563b33990660-ActualArgSpec" + "0x55cfa2d2d400-ActualArgSpec", + "0x55cfa2d2c660-ActualArgSpec" ] }, { - "id": "0x563b33990378-ProcedureDesignator", + "id": "0x55cfa2d2c378-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b33990378-Name" + "Name": "0x55cfa2d2c378-Name" }, { - "id": "0x563b33990378-Name", + "id": "0x55cfa2d2c378-Name", "source": "mod" }, { - "id": "0x563b33991400-ActualArgSpec", - "ActualArg": "0x563b33991400-ActualArg" + "id": "0x55cfa2d2d400-ActualArgSpec", + "ActualArg": "0x55cfa2d2d400-ActualArg" }, { - "id": "0x563b33991400-ActualArg", + "id": "0x55cfa2d2d400-ActualArg", "variantKey": "Expr", - "Expr": "0x563b33990510-Expr" + "Expr": "0x55cfa2d2c510-Expr" }, { - "id": "0x563b33990510-Expr", + "id": "0x55cfa2d2c510-Expr", "variantKey": "Designator", - "Designator": "0x563b339904b0-Designator" + "Designator": "0x55cfa2d2c4b0-Designator" }, { - "id": "0x563b339904b0-Designator", + "id": "0x55cfa2d2c4b0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b339904c0-DataRef" + "DataRef": "0x55cfa2d2c4c0-DataRef" }, { - "id": "0x563b339904c0-DataRef", + "id": "0x55cfa2d2c4c0-DataRef", "variantKey": "Name", - "Name": "0x563b339904c0-Name" + "Name": "0x55cfa2d2c4c0-Name" }, { - "id": "0x563b339904c0-Name", + "id": "0x55cfa2d2c4c0-Name", "source": "m" }, { - "id": "0x563b33990660-ActualArgSpec", - "ActualArg": "0x563b33990660-ActualArg" + "id": "0x55cfa2d2c660-ActualArgSpec", + "ActualArg": "0x55cfa2d2c660-ActualArg" }, { - "id": "0x563b33990660-ActualArg", + "id": "0x55cfa2d2c660-ActualArg", "variantKey": "Expr", - "Expr": "0x563b339903d0-Expr" + "Expr": "0x55cfa2d2c3d0-Expr" }, { - "id": "0x563b339903d0-Expr", + "id": "0x55cfa2d2c3d0-Expr", "variantKey": "Designator", - "Designator": "0x563b3398d730-Designator" + "Designator": "0x55cfa2d29730-Designator" }, { - "id": "0x563b3398d730-Designator", + "id": "0x55cfa2d29730-Designator", "variantKey": "DataRef", - "DataRef": "0x563b3398d740-DataRef" + "DataRef": "0x55cfa2d29740-DataRef" }, { - "id": "0x563b3398d740-DataRef", + "id": "0x55cfa2d29740-DataRef", "variantKey": "Name", - "Name": "0x563b3398d740-Name" + "Name": "0x55cfa2d29740-Name" }, { - "id": "0x563b3398d740-Name", + "id": "0x55cfa2d29740-Name", "source": "d" }, { - "id": "0x563b33991840-Statement", - "statement": "0x563b33991850-EndIfStmt", + "id": "0x55cfa2d2d840-Statement", + "statement": "0x55cfa2d2d850-EndIfStmt", "source": "endif" }, { - "id": "0x563b33991850-EndIfStmt" + "id": "0x55cfa2d2d850-EndIfStmt" }, { - "id": "0x563b33992770-Statement", - "statement": "0x563b33992780-EndSubroutineStmt", + "id": "0x55cfa2d2e770-Statement", + "statement": "0x55cfa2d2e780-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x563b33992780-EndSubroutineStmt" + "id": "0x55cfa2d2e780-EndSubroutineStmt" }, { - "id": "0x563b33997810-ProgramUnit", + "id": "0x55cfa2d33810-ProgramUnit", "variantKey": "SubroutineSubprogram", - "SubroutineSubprogram": "0x563b339a22c0-SubroutineSubprogram" + "SubroutineSubprogram": "0x55cfa2d3e2c0-SubroutineSubprogram" }, { - "id": "0x563b339a22c0-SubroutineSubprogram", - "Statement": "0x563b339a2408-Statement", - "SpecificationPart": "0x563b339a2360-SpecificationPart", - "ExecutionPart": "0x563b339a2348-ExecutionPart", - "Statement": "0x563b339a22c0-Statement" + "id": "0x55cfa2d3e2c0-SubroutineSubprogram", + "Statement": "0x55cfa2d3e408-Statement", + "SpecificationPart": "0x55cfa2d3e360-SpecificationPart", + "ExecutionPart": "0x55cfa2d3e348-ExecutionPart", + "Statement": "0x55cfa2d3e2c0-Statement" }, { - "id": "0x563b339a2408-Statement", - "statement": "0x563b339a2418-SubroutineStmt", + "id": "0x55cfa2d3e408-Statement", + "statement": "0x55cfa2d3e418-SubroutineStmt", "source": "subroutine test3" }, { - "id": "0x563b339a2418-SubroutineStmt", - "Name": "0x563b339a2450-Name" + "id": "0x55cfa2d3e418-SubroutineStmt", + "Name": "0x55cfa2d3e450-Name" }, { - "id": "0x563b339a2450-Name", + "id": "0x55cfa2d3e450-Name", "source": "test3" }, { - "id": "0x563b339a2360-SpecificationPart", - "ImplicitPart": "0x563b339a2378-ImplicitPart", + "id": "0x55cfa2d3e360-SpecificationPart", + "ImplicitPart": "0x55cfa2d3e378-ImplicitPart", "DeclarationConstruct": [ - "0x563b339910e0-DeclarationConstruct", - "0x563b33988470-DeclarationConstruct", - "0x563b33990240-DeclarationConstruct", - "0x563b339902a0-DeclarationConstruct" + "0x55cfa2d2d0e0-DeclarationConstruct", + "0x55cfa2d24470-DeclarationConstruct", + "0x55cfa2d2c240-DeclarationConstruct", + "0x55cfa2d2c2a0-DeclarationConstruct" ] }, { - "id": "0x563b339a2378-ImplicitPart" + "id": "0x55cfa2d3e378-ImplicitPart" }, { - "id": "0x563b339910e0-DeclarationConstruct", + "id": "0x55cfa2d2d0e0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b339910e0-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d2d0e0-SpecificationConstruct" }, { - "id": "0x563b339910e0-SpecificationConstruct", + "id": "0x55cfa2d2d0e0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b339910e0-Statement" + "Statement": "0x55cfa2d2d0e0-Statement" }, { - "id": "0x563b339910e0-Statement", - "statement": "0x563b339910f0-OtherSpecificationStmt", + "id": "0x55cfa2d2d0e0-Statement", + "statement": "0x55cfa2d2d0f0-OtherSpecificationStmt", "source": "common /com/ok" }, { - "id": "0x563b339910f0-OtherSpecificationStmt", + "id": "0x55cfa2d2d0f0-OtherSpecificationStmt", "variantKey": "CommonStmt", - "CommonStmt": "0x563b3399aef0-CommonStmt" + "CommonStmt": "0x55cfa2d36ef0-CommonStmt" }, { - "id": "0x563b3399aef0-CommonStmt", - "Block": [ - "0x563b33993cc0-Block" + "id": "0x55cfa2d36ef0-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d2fcc0-CommonStmtBlock" ] }, { - "id": "0x563b33993cc0-Block", - "Name": "0x563b33993cd8-Name", + "id": "0x55cfa2d2fcc0-CommonStmtBlock", + "Name": "0x55cfa2d2fcd8-Name", "CommonBlockObject": [ - "0x563b33989080-CommonBlockObject" + "0x55cfa2d25080-CommonBlockObject" ] }, { - "id": "0x563b33993cd8-Name", + "id": "0x55cfa2d2fcd8-Name", "source": "com" }, { - "id": "0x563b33989080-CommonBlockObject", - "Name": "0x563b339890b8-Name" + "id": "0x55cfa2d25080-CommonBlockObject", + "Name": "0x55cfa2d250b8-Name" }, { - "id": "0x563b339890b8-Name", + "id": "0x55cfa2d250b8-Name", "source": "ok" }, { - "id": "0x563b33988470-DeclarationConstruct", + "id": "0x55cfa2d24470-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33988470-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d24470-SpecificationConstruct" }, { - "id": "0x563b33988470-SpecificationConstruct", + "id": "0x55cfa2d24470-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33988470-Statement" + "Statement": "0x55cfa2d24470-Statement" }, { - "id": "0x563b33988470-Statement", - "statement": "0x563b3398dfe0-TypeDeclarationStmt", + "id": "0x55cfa2d24470-Statement", + "statement": "0x55cfa2d29fe0-TypeDeclarationStmt", "source": "logical(kind=1) ok" }, { - "id": "0x563b3398dfe0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563b3398e010-DeclarationTypeSpec", + "id": "0x55cfa2d29fe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d2a010-DeclarationTypeSpec", "EntityDecl": [ - "0x563b33992a40-EntityDecl" + "0x55cfa2d2ea40-EntityDecl" ] }, { - "id": "0x563b3398e010-DeclarationTypeSpec", + "id": "0x55cfa2d2a010-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563b3398e010-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55cfa2d2a010-IntrinsicTypeSpec" }, { - "id": "0x563b3398e010-IntrinsicTypeSpec", + "id": "0x55cfa2d2a010-IntrinsicTypeSpec", "variantKey": "Logical", - "Logical": "0x563b3398e010-Logical" + "Logical": "0x55cfa2d2a010-Logical" }, { - "id": "0x563b3398e010-Logical", - "KindSelector": "0x563b3398e010-KindSelector" + "id": "0x55cfa2d2a010-Logical", + "KindSelector": "0x55cfa2d2a010-KindSelector" }, { - "id": "0x563b3398e010-KindSelector", + "id": "0x55cfa2d2a010-KindSelector", "variantKey": "Expr", - "Expr": "0x563b33992950-Expr" + "Expr": "0x55cfa2d2e950-Expr" }, { - "id": "0x563b33992950-Expr", + "id": "0x55cfa2d2e950-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33992970-LiteralConstant" + "LiteralConstant": "0x55cfa2d2e970-LiteralConstant" }, { - "id": "0x563b33992970-LiteralConstant", + "id": "0x55cfa2d2e970-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b33992970-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2e970-IntLiteralConstant" }, { - "id": "0x563b33992970-IntLiteralConstant", + "id": "0x55cfa2d2e970-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563b33992a40-EntityDecl", - "Name": "0x563b33992af8-Name" + "id": "0x55cfa2d2ea40-EntityDecl", + "Name": "0x55cfa2d2eaf8-Name" }, { - "id": "0x563b33992af8-Name", + "id": "0x55cfa2d2eaf8-Name", "source": "ok" }, { - "id": "0x563b33990240-DeclarationConstruct", + "id": "0x55cfa2d2c240-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b33990240-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d2c240-SpecificationConstruct" }, { - "id": "0x563b33990240-SpecificationConstruct", + "id": "0x55cfa2d2c240-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b33990240-Statement" + "Statement": "0x55cfa2d2c240-Statement" }, { - "id": "0x563b33990240-Statement", - "statement": "0x563b3398d6b0-TypeDeclarationStmt", + "id": "0x55cfa2d2c240-Statement", + "statement": "0x55cfa2d296b0-TypeDeclarationStmt", "source": "integer*1 m,d,ans" }, { - "id": "0x563b3398d6b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x563b3398d6e0-DeclarationTypeSpec", + "id": "0x55cfa2d296b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d296e0-DeclarationTypeSpec", "EntityDecl": [ - "0x563b33992d10-EntityDecl", - "0x563b33992b30-EntityDecl", - "0x563b33992c20-EntityDecl" + "0x55cfa2d2ed10-EntityDecl", + "0x55cfa2d2eb30-EntityDecl", + "0x55cfa2d2ec20-EntityDecl" ] }, { - "id": "0x563b3398d6e0-DeclarationTypeSpec", + "id": "0x55cfa2d296e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x563b3398d6e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55cfa2d296e0-IntrinsicTypeSpec" }, { - "id": "0x563b3398d6e0-IntrinsicTypeSpec", + "id": "0x55cfa2d296e0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x563b3398d6e0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55cfa2d296e0-IntegerTypeSpec" }, { - "id": "0x563b3398d6e0-IntegerTypeSpec", - "KindSelector": "0x563b3398d6e0-KindSelector" + "id": "0x55cfa2d296e0-IntegerTypeSpec", + "KindSelector": "0x55cfa2d296e0-KindSelector" }, { - "id": "0x563b3398d6e0-KindSelector", + "id": "0x55cfa2d296e0-KindSelector", "variantKey": "StarSize", - "StarSize": "0x563b3398d6e0-StarSize" + "StarSize": "0x55cfa2d296e0-StarSize" }, { - "id": "0x563b3398d6e0-StarSize", + "id": "0x55cfa2d296e0-StarSize", "uint64_t": "1" }, { - "id": "0x563b33992d10-EntityDecl", - "Name": "0x563b33992dc8-Name" + "id": "0x55cfa2d2ed10-EntityDecl", + "Name": "0x55cfa2d2edc8-Name" }, { - "id": "0x563b33992dc8-Name", + "id": "0x55cfa2d2edc8-Name", "source": "m" }, { - "id": "0x563b33992b30-EntityDecl", - "Name": "0x563b33992be8-Name" + "id": "0x55cfa2d2eb30-EntityDecl", + "Name": "0x55cfa2d2ebe8-Name" }, { - "id": "0x563b33992be8-Name", + "id": "0x55cfa2d2ebe8-Name", "source": "d" }, { - "id": "0x563b33992c20-EntityDecl", - "Name": "0x563b33992cd8-Name" + "id": "0x55cfa2d2ec20-EntityDecl", + "Name": "0x55cfa2d2ecd8-Name" }, { - "id": "0x563b33992cd8-Name", + "id": "0x55cfa2d2ecd8-Name", "source": "ans" }, { - "id": "0x563b339902a0-DeclarationConstruct", + "id": "0x55cfa2d2c2a0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x563b339902a0-SpecificationConstruct" + "SpecificationConstruct": "0x55cfa2d2c2a0-SpecificationConstruct" }, { - "id": "0x563b339902a0-SpecificationConstruct", + "id": "0x55cfa2d2c2a0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x563b339902a0-Statement" + "Statement": "0x55cfa2d2c2a0-Statement" }, { - "id": "0x563b339902a0-Statement", - "statement": "0x563b339996c0-ParameterStmt", + "id": "0x55cfa2d2c2a0-Statement", + "statement": "0x55cfa2d356c0-ParameterStmt", "source": "parameter(m=19,d=3,ans=1)" }, { - "id": "0x563b339996c0-ParameterStmt", + "id": "0x55cfa2d356c0-ParameterStmt", "NamedConstantDef": [ - "0x563b33998180-NamedConstantDef", - "0x563b3399ae40-NamedConstantDef", - "0x563b339983b0-NamedConstantDef" + "0x55cfa2d34180-NamedConstantDef", + "0x55cfa2d36e40-NamedConstantDef", + "0x55cfa2d343b0-NamedConstantDef" ] }, { - "id": "0x563b33998180-NamedConstantDef", - "NamedConstant": "0x563b33998188-NamedConstant", - "Expr": "0x563b33992df0-Expr" + "id": "0x55cfa2d34180-NamedConstantDef", + "NamedConstant": "0x55cfa2d34188-NamedConstant", + "Expr": "0x55cfa2d2edf0-Expr" }, { - "id": "0x563b33998188-NamedConstant", - "Name": "0x563b33998188-Name" + "id": "0x55cfa2d34188-NamedConstant", + "Name": "0x55cfa2d34188-Name" }, { - "id": "0x563b33998188-Name", + "id": "0x55cfa2d34188-Name", "source": "m" }, { - "id": "0x563b33992df0-Expr", + "id": "0x55cfa2d2edf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33992e10-LiteralConstant" + "LiteralConstant": "0x55cfa2d2ee10-LiteralConstant" }, { - "id": "0x563b33992e10-LiteralConstant", + "id": "0x55cfa2d2ee10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b33992e10-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2ee10-IntLiteralConstant" }, { - "id": "0x563b33992e10-IntLiteralConstant", + "id": "0x55cfa2d2ee10-IntLiteralConstant", "CharBlock": "19" }, { - "id": "0x563b3399ae40-NamedConstantDef", - "NamedConstant": "0x563b3399ae48-NamedConstant", - "Expr": "0x563b33992ed0-Expr" + "id": "0x55cfa2d36e40-NamedConstantDef", + "NamedConstant": "0x55cfa2d36e48-NamedConstant", + "Expr": "0x55cfa2d2eed0-Expr" }, { - "id": "0x563b3399ae48-NamedConstant", - "Name": "0x563b3399ae48-Name" + "id": "0x55cfa2d36e48-NamedConstant", + "Name": "0x55cfa2d36e48-Name" }, { - "id": "0x563b3399ae48-Name", + "id": "0x55cfa2d36e48-Name", "source": "d" }, { - "id": "0x563b33992ed0-Expr", + "id": "0x55cfa2d2eed0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33992ef0-LiteralConstant" + "LiteralConstant": "0x55cfa2d2eef0-LiteralConstant" }, { - "id": "0x563b33992ef0-LiteralConstant", + "id": "0x55cfa2d2eef0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b33992ef0-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2eef0-IntLiteralConstant" }, { - "id": "0x563b33992ef0-IntLiteralConstant", + "id": "0x55cfa2d2eef0-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x563b339983b0-NamedConstantDef", - "NamedConstant": "0x563b339983b8-NamedConstant", - "Expr": "0x563b33992fb0-Expr" + "id": "0x55cfa2d343b0-NamedConstantDef", + "NamedConstant": "0x55cfa2d343b8-NamedConstant", + "Expr": "0x55cfa2d2efb0-Expr" }, { - "id": "0x563b339983b8-NamedConstant", - "Name": "0x563b339983b8-Name" + "id": "0x55cfa2d343b8-NamedConstant", + "Name": "0x55cfa2d343b8-Name" }, { - "id": "0x563b339983b8-Name", + "id": "0x55cfa2d343b8-Name", "source": "ans" }, { - "id": "0x563b33992fb0-Expr", + "id": "0x55cfa2d2efb0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33992fd0-LiteralConstant" + "LiteralConstant": "0x55cfa2d2efd0-LiteralConstant" }, { - "id": "0x563b33992fd0-LiteralConstant", + "id": "0x55cfa2d2efd0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x563b33992fd0-IntLiteralConstant" + "IntLiteralConstant": "0x55cfa2d2efd0-IntLiteralConstant" }, { - "id": "0x563b33992fd0-IntLiteralConstant", + "id": "0x55cfa2d2efd0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x563b339a2348-ExecutionPart", + "id": "0x55cfa2d3e348-ExecutionPart", "ExecutionPartConstruct": [ - "0x563b33992090-ExecutionPartConstruct" + "0x55cfa2d2e090-ExecutionPartConstruct" ] }, { - "id": "0x563b339a2348-ExecutionPartConstruct" + "id": "0x55cfa2d3e348-ExecutionPartConstruct" }, { - "id": "0x563b33992090-ExecutionPartConstruct", + "id": "0x55cfa2d2e090-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b33992090-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d2e090-ExecutableConstruct" }, { - "id": "0x563b33992090-ExecutableConstruct", + "id": "0x55cfa2d2e090-ExecutableConstruct", "variantKey": "IfConstruct", - "IfConstruct": "0x563b339a1420-IfConstruct" + "IfConstruct": "0x55cfa2d3d420-IfConstruct" }, { - "id": "0x563b339a1420-IfConstruct", - "Statement": "0x563b339a14f0-Statement", + "id": "0x55cfa2d3d420-IfConstruct", + "Statement": "0x55cfa2d3d4f0-Statement", "ExecutionPartConstruct": [ - "0x563b3398fda0-ExecutionPartConstruct", - "0x563b3398d850-ExecutionPartConstruct" + "0x55cfa2d2bda0-ExecutionPartConstruct", + "0x55cfa2d29850-ExecutionPartConstruct" ], - "Statement": "0x563b339a1420-Statement" + "Statement": "0x55cfa2d3d420-Statement" }, { - "id": "0x563b339a14f0-Statement", - "statement": "0x563b339a1500-IfThenStmt", + "id": "0x55cfa2d3d4f0-Statement", + "statement": "0x55cfa2d3d500-IfThenStmt", "source": "if(mod(m,d) .ne. ans) then" }, { - "id": "0x563b339a1500-IfThenStmt", - "Expr": "0x563b33991fa0-Expr" + "id": "0x55cfa2d3d500-IfThenStmt", + "Expr": "0x55cfa2d2dfa0-Expr" }, { - "id": "0x563b33991fa0-Expr", + "id": "0x55cfa2d2dfa0-Expr", "variantKey": "NE", - "NE": "0x563b33991fc0-NE" + "NE": "0x55cfa2d2dfc0-NE" }, { - "id": "0x563b33991fc0-NE", - "left": "0x563b33991de0-Expr", - "right": "0x563b33991960-Expr", + "id": "0x55cfa2d2dfc0-NE", + "left": "0x55cfa2d2dde0-Expr", + "right": "0x55cfa2d2d960-Expr", "op": "NE" }, { - "id": "0x563b33991de0-Expr", + "id": "0x55cfa2d2dde0-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x563b3398ab00-FunctionReference" + "FunctionReference": "0x55cfa2d26b00-FunctionReference" }, { - "id": "0x563b3398ab00-FunctionReference", - "Call": "0x563b3398ab00-Call" + "id": "0x55cfa2d26b00-FunctionReference", + "Call": "0x55cfa2d26b00-Call" }, { - "id": "0x563b3398ab00-Call", - "ProcedureDesignator": "0x563b3398ab18-ProcedureDesignator", + "id": "0x55cfa2d26b00-Call", + "ProcedureDesignator": "0x55cfa2d26b18-ProcedureDesignator", "ActualArgSpec": [ - "0x563b339920f0-ActualArgSpec", - "0x563b33991bc0-ActualArgSpec" + "0x55cfa2d2e0f0-ActualArgSpec", + "0x55cfa2d2dbc0-ActualArgSpec" ] }, { - "id": "0x563b3398ab18-ProcedureDesignator", + "id": "0x55cfa2d26b18-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b3398ab18-Name" + "Name": "0x55cfa2d26b18-Name" }, { - "id": "0x563b3398ab18-Name", + "id": "0x55cfa2d26b18-Name", "source": "mod" }, { - "id": "0x563b339920f0-ActualArgSpec", - "ActualArg": "0x563b339920f0-ActualArg" + "id": "0x55cfa2d2e0f0-ActualArgSpec", + "ActualArg": "0x55cfa2d2e0f0-ActualArg" }, { - "id": "0x563b339920f0-ActualArg", + "id": "0x55cfa2d2e0f0-ActualArg", "variantKey": "Expr", - "Expr": "0x563b33991ec0-Expr" + "Expr": "0x55cfa2d2dec0-Expr" }, { - "id": "0x563b33991ec0-Expr", + "id": "0x55cfa2d2dec0-Expr", "variantKey": "Designator", - "Designator": "0x563b33991a40-Designator" + "Designator": "0x55cfa2d2da40-Designator" }, { - "id": "0x563b33991a40-Designator", + "id": "0x55cfa2d2da40-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33991a50-DataRef" + "DataRef": "0x55cfa2d2da50-DataRef" }, { - "id": "0x563b33991a50-DataRef", + "id": "0x55cfa2d2da50-DataRef", "variantKey": "Name", - "Name": "0x563b33991a50-Name" + "Name": "0x55cfa2d2da50-Name" }, { - "id": "0x563b33991a50-Name", + "id": "0x55cfa2d2da50-Name", "source": "m" }, { - "id": "0x563b33991bc0-ActualArgSpec", - "ActualArg": "0x563b33991bc0-ActualArg" + "id": "0x55cfa2d2dbc0-ActualArgSpec", + "ActualArg": "0x55cfa2d2dbc0-ActualArg" }, { - "id": "0x563b33991bc0-ActualArg", + "id": "0x55cfa2d2dbc0-ActualArg", "variantKey": "Expr", - "Expr": "0x563b33993090-Expr" + "Expr": "0x55cfa2d2f090-Expr" }, { - "id": "0x563b33993090-Expr", + "id": "0x55cfa2d2f090-Expr", "variantKey": "Designator", - "Designator": "0x563b33991cc0-Designator" + "Designator": "0x55cfa2d2dcc0-Designator" }, { - "id": "0x563b33991cc0-Designator", + "id": "0x55cfa2d2dcc0-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33991cd0-DataRef" + "DataRef": "0x55cfa2d2dcd0-DataRef" }, { - "id": "0x563b33991cd0-DataRef", + "id": "0x55cfa2d2dcd0-DataRef", "variantKey": "Name", - "Name": "0x563b33991cd0-Name" + "Name": "0x55cfa2d2dcd0-Name" }, { - "id": "0x563b33991cd0-Name", + "id": "0x55cfa2d2dcd0-Name", "source": "d" }, { - "id": "0x563b33991960-Expr", + "id": "0x55cfa2d2d960-Expr", "variantKey": "Designator", - "Designator": "0x563b33991d80-Designator" + "Designator": "0x55cfa2d2dd80-Designator" }, { - "id": "0x563b33991d80-Designator", + "id": "0x55cfa2d2dd80-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33991d90-DataRef" + "DataRef": "0x55cfa2d2dd90-DataRef" }, { - "id": "0x563b33991d90-DataRef", + "id": "0x55cfa2d2dd90-DataRef", "variantKey": "Name", - "Name": "0x563b33991d90-Name" + "Name": "0x55cfa2d2dd90-Name" }, { - "id": "0x563b33991d90-Name", + "id": "0x55cfa2d2dd90-Name", "source": "ans" }, { - "id": "0x563b339a14d8-ExecutionPartConstruct" + "id": "0x55cfa2d3d4d8-ExecutionPartConstruct" }, { - "id": "0x563b3398fda0-ExecutionPartConstruct", + "id": "0x55cfa2d2bda0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b3398fda0-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d2bda0-ExecutableConstruct" }, { - "id": "0x563b3398fda0-ExecutableConstruct", + "id": "0x55cfa2d2bda0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b3398fda0-Statement" + "Statement": "0x55cfa2d2bda0-Statement" }, { - "id": "0x563b3398fda0-Statement", - "statement": "0x563b3398fdb0-ActionStmt", + "id": "0x55cfa2d2bda0-Statement", + "statement": "0x55cfa2d2bdb0-ActionStmt", "source": "ok = .false." }, { - "id": "0x563b3398fdb0-ActionStmt", + "id": "0x55cfa2d2bdb0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x563b33991aa0-AssignmentStmt" + "AssignmentStmt": "0x55cfa2d2daa0-AssignmentStmt" }, { - "id": "0x563b33991aa0-AssignmentStmt", - "Variable": "0x563b33991b80-Variable", - "Expr": "0x563b33991ab0-Expr" + "id": "0x55cfa2d2daa0-AssignmentStmt", + "Variable": "0x55cfa2d2db80-Variable", + "Expr": "0x55cfa2d2dab0-Expr" }, { - "id": "0x563b33991b80-Variable", + "id": "0x55cfa2d2db80-Variable", "variantKey": "Designator", - "Designator": "0x563b33991d20-Designator" + "Designator": "0x55cfa2d2dd20-Designator" }, { - "id": "0x563b33991d20-Designator", + "id": "0x55cfa2d2dd20-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33991d30-DataRef" + "DataRef": "0x55cfa2d2dd30-DataRef" }, { - "id": "0x563b33991d30-DataRef", + "id": "0x55cfa2d2dd30-DataRef", "variantKey": "Name", - "Name": "0x563b33991d30-Name" + "Name": "0x55cfa2d2dd30-Name" }, { - "id": "0x563b33991d30-Name", + "id": "0x55cfa2d2dd30-Name", "source": "ok" }, { - "id": "0x563b33991ab0-Expr", + "id": "0x55cfa2d2dab0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b33991ad0-LiteralConstant" + "LiteralConstant": "0x55cfa2d2dad0-LiteralConstant" }, { - "id": "0x563b33991ad0-LiteralConstant", + "id": "0x55cfa2d2dad0-LiteralConstant", "variantKey": "LogicalLiteralConstant", - "LogicalLiteralConstant": "0x563b33991ad0-LogicalLiteralConstant" + "LogicalLiteralConstant": "0x55cfa2d2dad0-LogicalLiteralConstant" }, { - "id": "0x563b33991ad0-LogicalLiteralConstant", + "id": "0x55cfa2d2dad0-LogicalLiteralConstant", "bool": "0" }, { - "id": "0x563b3398d850-ExecutionPartConstruct", + "id": "0x55cfa2d29850-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x563b3398d850-ExecutableConstruct" + "ExecutableConstruct": "0x55cfa2d29850-ExecutableConstruct" }, { - "id": "0x563b3398d850-ExecutableConstruct", + "id": "0x55cfa2d29850-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x563b3398d850-Statement" + "Statement": "0x55cfa2d29850-Statement" }, { - "id": "0x563b3398d850-Statement", - "statement": "0x563b3398d860-ActionStmt", + "id": "0x55cfa2d29850-Statement", + "statement": "0x55cfa2d29860-ActionStmt", "source": "print *,\"TEST3-NG =>\",mod(m,d)" }, { - "id": "0x563b3398d860-ActionStmt", + "id": "0x55cfa2d29860-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x563b339a1320-PrintStmt" + "PrintStmt": "0x55cfa2d3d320-PrintStmt" }, { - "id": "0x563b339a1320-PrintStmt", - "Format": "0x563b339a1338-Format", + "id": "0x55cfa2d3d320-PrintStmt", + "Format": "0x55cfa2d3d338-Format", "OutputItem": [ - "0x563b339a1240-OutputItem", - "0x563b339a1150-OutputItem" + "0x55cfa2d3d240-OutputItem", + "0x55cfa2d3d150-OutputItem" ] }, { - "id": "0x563b339a1338-Format", + "id": "0x55cfa2d3d338-Format", "variantKey": "Star", - "Star": "0x563b339a1338-Star" + "Star": "0x55cfa2d3d338-Star" }, { - "id": "0x563b339a1338-Star" + "id": "0x55cfa2d3d338-Star" }, { - "id": "0x563b339a1240-OutputItem", + "id": "0x55cfa2d3d240-OutputItem", "variantKey": "Expr", - "Expr": "0x563b339a1240-Expr" + "Expr": "0x55cfa2d3d240-Expr" }, { - "id": "0x563b339a1240-Expr", + "id": "0x55cfa2d3d240-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x563b339a1260-LiteralConstant" + "LiteralConstant": "0x55cfa2d3d260-LiteralConstant" }, { - "id": "0x563b339a1260-LiteralConstant", + "id": "0x55cfa2d3d260-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x563b339a1260-CharLiteralConstant" + "CharLiteralConstant": "0x55cfa2d3d260-CharLiteralConstant" }, { - "id": "0x563b339a1260-CharLiteralConstant", + "id": "0x55cfa2d3d260-CharLiteralConstant", "string": "TEST3-NG =>" }, { - "id": "0x563b339a1150-OutputItem", + "id": "0x55cfa2d3d150-OutputItem", "variantKey": "Expr", - "Expr": "0x563b339a1150-Expr" + "Expr": "0x55cfa2d3d150-Expr" }, { - "id": "0x563b339a1150-Expr", + "id": "0x55cfa2d3d150-Expr", "variantKey": "FunctionReference", - "FunctionReference": "0x563b33992390-FunctionReference" + "FunctionReference": "0x55cfa2d2e390-FunctionReference" }, { - "id": "0x563b33992390-FunctionReference", - "Call": "0x563b33992390-Call" + "id": "0x55cfa2d2e390-FunctionReference", + "Call": "0x55cfa2d2e390-Call" }, { - "id": "0x563b33992390-Call", - "ProcedureDesignator": "0x563b339923a8-ProcedureDesignator", + "id": "0x55cfa2d2e390-Call", + "ProcedureDesignator": "0x55cfa2d2e3a8-ProcedureDesignator", "ActualArgSpec": [ - "0x563b339a1040-ActualArgSpec", - "0x563b339a0f30-ActualArgSpec" + "0x55cfa2d3d040-ActualArgSpec", + "0x55cfa2d3cf30-ActualArgSpec" ] }, { - "id": "0x563b339923a8-ProcedureDesignator", + "id": "0x55cfa2d2e3a8-ProcedureDesignator", "variantKey": "Name", - "Name": "0x563b339923a8-Name" + "Name": "0x55cfa2d2e3a8-Name" }, { - "id": "0x563b339923a8-Name", + "id": "0x55cfa2d2e3a8-Name", "source": "mod" }, { - "id": "0x563b339a1040-ActualArgSpec", - "ActualArg": "0x563b339a1040-ActualArg" + "id": "0x55cfa2d3d040-ActualArgSpec", + "ActualArg": "0x55cfa2d3d040-ActualArg" }, { - "id": "0x563b339a1040-ActualArg", + "id": "0x55cfa2d3d040-ActualArg", "variantKey": "Expr", - "Expr": "0x563b339925a0-Expr" + "Expr": "0x55cfa2d2e5a0-Expr" }, { - "id": "0x563b339925a0-Expr", + "id": "0x55cfa2d2e5a0-Expr", "variantKey": "Designator", - "Designator": "0x563b33992540-Designator" + "Designator": "0x55cfa2d2e540-Designator" }, { - "id": "0x563b33992540-Designator", + "id": "0x55cfa2d2e540-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33992550-DataRef" + "DataRef": "0x55cfa2d2e550-DataRef" }, { - "id": "0x563b33992550-DataRef", + "id": "0x55cfa2d2e550-DataRef", "variantKey": "Name", - "Name": "0x563b33992550-Name" + "Name": "0x55cfa2d2e550-Name" }, { - "id": "0x563b33992550-Name", + "id": "0x55cfa2d2e550-Name", "source": "m" }, { - "id": "0x563b339a0f30-ActualArgSpec", - "ActualArg": "0x563b339a0f30-ActualArg" + "id": "0x55cfa2d3cf30-ActualArgSpec", + "ActualArg": "0x55cfa2d3cf30-ActualArg" }, { - "id": "0x563b339a0f30-ActualArg", + "id": "0x55cfa2d3cf30-ActualArg", "variantKey": "Expr", - "Expr": "0x563b33992460-Expr" + "Expr": "0x55cfa2d2e460-Expr" }, { - "id": "0x563b33992460-Expr", + "id": "0x55cfa2d2e460-Expr", "variantKey": "Designator", - "Designator": "0x563b33992400-Designator" + "Designator": "0x55cfa2d2e400-Designator" }, { - "id": "0x563b33992400-Designator", + "id": "0x55cfa2d2e400-Designator", "variantKey": "DataRef", - "DataRef": "0x563b33992410-DataRef" + "DataRef": "0x55cfa2d2e410-DataRef" }, { - "id": "0x563b33992410-DataRef", + "id": "0x55cfa2d2e410-DataRef", "variantKey": "Name", - "Name": "0x563b33992410-Name" + "Name": "0x55cfa2d2e410-Name" }, { - "id": "0x563b33992410-Name", + "id": "0x55cfa2d2e410-Name", "source": "d" }, { - "id": "0x563b339a1420-Statement", - "statement": "0x563b339a1430-EndIfStmt", + "id": "0x55cfa2d3d420-Statement", + "statement": "0x55cfa2d3d430-EndIfStmt", "source": "endif" }, { - "id": "0x563b339a1430-EndIfStmt" + "id": "0x55cfa2d3d430-EndIfStmt" }, { - "id": "0x563b339a22c0-Statement", - "statement": "0x563b339a22d0-EndSubroutineStmt", + "id": "0x55cfa2d3e2c0-Statement", + "statement": "0x55cfa2d3e2d0-EndSubroutineStmt", "source": "end subroutine" }, { - "id": "0x563b339a22d0-EndSubroutineStmt" + "id": "0x55cfa2d3e2d0-EndSubroutineStmt" } ], "enums": { diff --git a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json index b53ffbb9..ec86e799 100644 --- a/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json @@ -1,300 +1,300 @@ { "nodes": [ { - "id": "0x559d7b4f7f00-Program", + "id": "0x55c384b48f00-Program", "ProgramUnit": [ - "0x559d7b52cd60-ProgramUnit" + "0x55c384b7dd60-ProgramUnit" ] }, { - "id": "0x559d7b52cd60-ProgramUnit", + "id": "0x55c384b7dd60-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x559d7b524f70-MainProgram" + "MainProgram": "0x55c384b75f70-MainProgram" }, { - "id": "0x559d7b524f70-MainProgram", - "Statement": "0x559d7b5250b8-Statement", - "SpecificationPart": "0x559d7b525010-SpecificationPart", - "ExecutionPart": "0x559d7b524ff8-ExecutionPart", - "Statement": "0x559d7b524f70-Statement" + "id": "0x55c384b75f70-MainProgram", + "Statement": "0x55c384b760b8-Statement", + "SpecificationPart": "0x55c384b76010-SpecificationPart", + "ExecutionPart": "0x55c384b75ff8-ExecutionPart", + "Statement": "0x55c384b75f70-Statement" }, { - "id": "0x559d7b5250b8-Statement", - "statement": "0x559d7b5250c8-ProgramStmt", + "id": "0x55c384b760b8-Statement", + "statement": "0x55c384b760c8-ProgramStmt", "source": "program COMMON_STMT" }, { - "id": "0x559d7b5250c8-ProgramStmt", - "Name": "0x559d7b5250c8-Name" + "id": "0x55c384b760c8-ProgramStmt", + "Name": "0x55c384b760c8-Name" }, { - "id": "0x559d7b5250c8-Name", + "id": "0x55c384b760c8-Name", "source": "COMMON_STMT" }, { - "id": "0x559d7b525010-SpecificationPart", - "ImplicitPart": "0x559d7b525028-ImplicitPart", + "id": "0x55c384b76010-SpecificationPart", + "ImplicitPart": "0x55c384b76028-ImplicitPart", "DeclarationConstruct": [ - "0x559d7b505170-DeclarationConstruct", - "0x559d7b504da0-DeclarationConstruct", - "0x559d7b505110-DeclarationConstruct" + "0x55c384b56170-DeclarationConstruct", + "0x55c384b55da0-DeclarationConstruct", + "0x55c384b56110-DeclarationConstruct" ] }, { - "id": "0x559d7b525028-ImplicitPart" + "id": "0x55c384b76028-ImplicitPart" }, { - "id": "0x559d7b505170-DeclarationConstruct", + "id": "0x55c384b56170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x559d7b505170-SpecificationConstruct" + "SpecificationConstruct": "0x55c384b56170-SpecificationConstruct" }, { - "id": "0x559d7b505170-SpecificationConstruct", + "id": "0x55c384b56170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x559d7b505170-Statement" + "Statement": "0x55c384b56170-Statement" }, { - "id": "0x559d7b505170-Statement", - "statement": "0x559d7b537030-TypeDeclarationStmt", + "id": "0x55c384b56170-Statement", + "statement": "0x55c384b88030-TypeDeclarationStmt", "source": "real :: x" }, { - "id": "0x559d7b537030-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x559d7b537060-DeclarationTypeSpec", + "id": "0x55c384b88030-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c384b88060-DeclarationTypeSpec", "EntityDecl": [ - "0x559d7b537140-EntityDecl" + "0x55c384b88140-EntityDecl" ] }, { - "id": "0x559d7b537060-DeclarationTypeSpec", + "id": "0x55c384b88060-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x559d7b537060-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c384b88060-IntrinsicTypeSpec" }, { - "id": "0x559d7b537060-IntrinsicTypeSpec", + "id": "0x55c384b88060-IntrinsicTypeSpec", "variantKey": "Real", - "Real": "0x559d7b537060-Real" + "Real": "0x55c384b88060-Real" }, { - "id": "0x559d7b537060-Real" + "id": "0x55c384b88060-Real" }, { - "id": "0x559d7b537140-EntityDecl", - "Name": "0x559d7b5371f8-Name" + "id": "0x55c384b88140-EntityDecl", + "Name": "0x55c384b881f8-Name" }, { - "id": "0x559d7b5371f8-Name", + "id": "0x55c384b881f8-Name", "source": "x" }, { - "id": "0x559d7b504da0-DeclarationConstruct", + "id": "0x55c384b55da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x559d7b504da0-SpecificationConstruct" + "SpecificationConstruct": "0x55c384b55da0-SpecificationConstruct" }, { - "id": "0x559d7b504da0-SpecificationConstruct", + "id": "0x55c384b55da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x559d7b504da0-Statement" + "Statement": "0x55c384b55da0-Statement" }, { - "id": "0x559d7b504da0-Statement", - "statement": "0x559d7b504db0-OtherSpecificationStmt", + "id": "0x55c384b55da0-Statement", + "statement": "0x55c384b55db0-OtherSpecificationStmt", "source": "common /data_block/ x, my_array(5)" }, { - "id": "0x559d7b504db0-OtherSpecificationStmt", + "id": "0x55c384b55db0-OtherSpecificationStmt", "variantKey": "CommonStmt", - "CommonStmt": "0x559d7b52cd20-CommonStmt" + "CommonStmt": "0x55c384b7dd20-CommonStmt" }, { - "id": "0x559d7b52cd20-CommonStmt", - "Block": [ - "0x559d7b52c460-Block" + "id": "0x55c384b7dd20-CommonStmt", + "CommonStmtBlock": [ + "0x55c384b7d460-CommonStmtBlock" ] }, { - "id": "0x559d7b52c460-Block", - "Name": "0x559d7b52c478-Name", + "id": "0x55c384b7d460-CommonStmtBlock", + "Name": "0x55c384b7d478-Name", "CommonBlockObject": [ - "0x559d7b537390-CommonBlockObject", - "0x559d7b537320-CommonBlockObject" + "0x55c384b88390-CommonBlockObject", + "0x55c384b88320-CommonBlockObject" ] }, { - "id": "0x559d7b52c478-Name", + "id": "0x55c384b7d478-Name", "source": "data_block" }, { - "id": "0x559d7b537390-CommonBlockObject", - "Name": "0x559d7b5373c8-Name" + "id": "0x55c384b88390-CommonBlockObject", + "Name": "0x55c384b883c8-Name" }, { - "id": "0x559d7b5373c8-Name", + "id": "0x55c384b883c8-Name", "source": "x" }, { - "id": "0x559d7b537320-CommonBlockObject", - "Name": "0x559d7b537358-Name", - "ArraySpec": "0x559d7b537320-ArraySpec" + "id": "0x55c384b88320-CommonBlockObject", + "Name": "0x55c384b88358-Name", + "ArraySpec": "0x55c384b88320-ArraySpec" }, { - "id": "0x559d7b537358-Name", + "id": "0x55c384b88358-Name", "source": "my_array" }, { - "id": "0x559d7b537320-ArraySpec", + "id": "0x55c384b88320-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x559d7b52cd00-ExplicitShapeSpec" + "0x55c384b7dd00-ExplicitShapeSpec" ] }, { - "id": "0x559d7b52cd00-ExplicitShapeSpec", - "upper_bound": "0x559d7b52cd00-SpecificationExpr" + "id": "0x55c384b7dd00-ExplicitShapeSpec", + "upper_bound": "0x55c384b7dd00-SpecificationExpr" }, { - "id": "0x559d7b52cd00-SpecificationExpr", - "Expr": "0x559d7b497790-Expr" + "id": "0x55c384b7dd00-SpecificationExpr", + "Expr": "0x55c384ae8790-Expr" }, { - "id": "0x559d7b497790-Expr", + "id": "0x55c384ae8790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x559d7b4977b0-LiteralConstant" + "LiteralConstant": "0x55c384ae87b0-LiteralConstant" }, { - "id": "0x559d7b4977b0-LiteralConstant", + "id": "0x55c384ae87b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x559d7b4977b0-IntLiteralConstant" + "IntLiteralConstant": "0x55c384ae87b0-IntLiteralConstant" }, { - "id": "0x559d7b4977b0-IntLiteralConstant", + "id": "0x55c384ae87b0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x559d7b505110-DeclarationConstruct", + "id": "0x55c384b56110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x559d7b505110-SpecificationConstruct" + "SpecificationConstruct": "0x55c384b56110-SpecificationConstruct" }, { - "id": "0x559d7b505110-SpecificationConstruct", + "id": "0x55c384b56110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x559d7b505110-Statement" + "Statement": "0x55c384b56110-Statement" }, { - "id": "0x559d7b505110-Statement", - "statement": "0x559d7b5370b0-TypeDeclarationStmt", + "id": "0x55c384b56110-Statement", + "statement": "0x55c384b880b0-TypeDeclarationStmt", "source": "integer :: my_array" }, { - "id": "0x559d7b5370b0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x559d7b5370e0-DeclarationTypeSpec", + "id": "0x55c384b880b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c384b880e0-DeclarationTypeSpec", "EntityDecl": [ - "0x559d7b5374e0-EntityDecl" + "0x55c384b884e0-EntityDecl" ] }, { - "id": "0x559d7b5370e0-DeclarationTypeSpec", + "id": "0x55c384b880e0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x559d7b5370e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55c384b880e0-IntrinsicTypeSpec" }, { - "id": "0x559d7b5370e0-IntrinsicTypeSpec", + "id": "0x55c384b880e0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x559d7b5370e0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55c384b880e0-IntegerTypeSpec" }, { - "id": "0x559d7b5370e0-IntegerTypeSpec" + "id": "0x55c384b880e0-IntegerTypeSpec" }, { - "id": "0x559d7b5374e0-EntityDecl", - "Name": "0x559d7b537598-Name" + "id": "0x55c384b884e0-EntityDecl", + "Name": "0x55c384b88598-Name" }, { - "id": "0x559d7b537598-Name", + "id": "0x55c384b88598-Name", "source": "my_array" }, { - "id": "0x559d7b524ff8-ExecutionPart", + "id": "0x55c384b75ff8-ExecutionPart", "ExecutionPartConstruct": [ - "0x559d7b535250-ExecutionPartConstruct" + "0x55c384b86250-ExecutionPartConstruct" ] }, { - "id": "0x559d7b524ff8-ExecutionPartConstruct" + "id": "0x55c384b75ff8-ExecutionPartConstruct" }, { - "id": "0x559d7b535250-ExecutionPartConstruct", + "id": "0x55c384b86250-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x559d7b535250-ExecutableConstruct" + "ExecutableConstruct": "0x55c384b86250-ExecutableConstruct" }, { - "id": "0x559d7b535250-ExecutableConstruct", + "id": "0x55c384b86250-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x559d7b535250-Statement" + "Statement": "0x55c384b86250-Statement" }, { - "id": "0x559d7b535250-Statement", - "statement": "0x559d7b535260-ActionStmt", + "id": "0x55c384b86250-Statement", + "statement": "0x55c384b86260-ActionStmt", "source": "x = 42.0" }, { - "id": "0x559d7b535260-ActionStmt", + "id": "0x55c384b86260-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x559d7b505ce0-AssignmentStmt" + "AssignmentStmt": "0x55c384b56ce0-AssignmentStmt" }, { - "id": "0x559d7b505ce0-AssignmentStmt", - "Variable": "0x559d7b505dc0-Variable", - "Expr": "0x559d7b505cf0-Expr" + "id": "0x55c384b56ce0-AssignmentStmt", + "Variable": "0x55c384b56dc0-Variable", + "Expr": "0x55c384b56cf0-Expr" }, { - "id": "0x559d7b505dc0-Variable", + "id": "0x55c384b56dc0-Variable", "variantKey": "Designator", - "Designator": "0x559d7b4ad1d0-Designator" + "Designator": "0x55c384afe1d0-Designator" }, { - "id": "0x559d7b4ad1d0-Designator", + "id": "0x55c384afe1d0-Designator", "variantKey": "DataRef", - "DataRef": "0x559d7b4ad1e0-DataRef" + "DataRef": "0x55c384afe1e0-DataRef" }, { - "id": "0x559d7b4ad1e0-DataRef", + "id": "0x55c384afe1e0-DataRef", "variantKey": "Name", - "Name": "0x559d7b4ad1e0-Name" + "Name": "0x55c384afe1e0-Name" }, { - "id": "0x559d7b4ad1e0-Name", + "id": "0x55c384afe1e0-Name", "source": "x" }, { - "id": "0x559d7b505cf0-Expr", + "id": "0x55c384b56cf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x559d7b505d10-LiteralConstant" + "LiteralConstant": "0x55c384b56d10-LiteralConstant" }, { - "id": "0x559d7b505d10-LiteralConstant", + "id": "0x55c384b56d10-LiteralConstant", "variantKey": "RealLiteralConstant", - "RealLiteralConstant": "0x559d7b505d10-RealLiteralConstant" + "RealLiteralConstant": "0x55c384b56d10-RealLiteralConstant" }, { - "id": "0x559d7b505d10-RealLiteralConstant", - "real": "0x559d7b505d10-Real" + "id": "0x55c384b56d10-RealLiteralConstant", + "real": "0x55c384b56d10-Real" }, { - "id": "0x559d7b505d10-Real", + "id": "0x55c384b56d10-Real", "source": "42.0" }, { - "id": "0x559d7b524f70-Statement", - "statement": "0x559d7b524f80-EndProgramStmt", + "id": "0x55c384b75f70-Statement", + "statement": "0x55c384b75f80-EndProgramStmt", "source": "end program COMMON_STMT" }, { - "id": "0x559d7b524f80-EndProgramStmt", - "Name": "0x559d7b524f80-Name" + "id": "0x55c384b75f80-EndProgramStmt", + "Name": "0x55c384b75f80-Name" }, { - "id": "0x559d7b524f80-Name", + "id": "0x55c384b75f80-Name", "source": "COMMON_STMT" } ], From 1b195bcea1c018f8a35b655b1d415ef9906de149 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 14:02:38 +0100 Subject: [PATCH 083/132] Add common statement processing --- .../up/fe/specs/fortran/parser/FlangName.java | 3 +++ .../fe/specs/fortran/parser/FlangToClass.java | 3 +++ .../fortran/parser/processors/Nodes.java | 3 +++ .../parser/processors/StmtProcessors.java | 27 ++++++++++++++++--- 4 files changed, 32 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 5e1479b0..d13db827 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -62,6 +62,9 @@ public enum FlangName implements StringProvider { STOP_STMT, DATA_STMT, DATA_STMT_SET, + COMMON_STMT, + COMMON_STMT_BLOCK, + COMMON_BLOCK_OBJECT, /// 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 77c80f10..f2f71c8d 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -67,6 +67,9 @@ public class FlangToClass { 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); 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 3a27ce53..1a7b053b 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 @@ -77,6 +77,9 @@ public Nodes(FortranJsonResult data) { processors.put(CompilerDirective.class, s::compilerDirective); processors.put(GotoStmt.class, s::gotoStmt); processors.put(StopStmt.class, s::stopStmt); + processors.put(CommonStmt.class, s::commonStmt); + processors.put(CommonBlock.class, s::commonBlock); + processors.put(CommonBlockObject.class, s::commonBlockObject); processors.put(IfConstruct.class, s::ifConstruct); processors.put(IfThenStmt.class, s::ifThenStmt); 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 e50dcb09..06f36fb3 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,8 +22,6 @@ import java.util.List; import java.util.Optional; -import static pt.up.fe.specs.fortran.parser.FlangName.*; - public class StmtProcessors extends ANodeProcessor { public StmtProcessors(FortranJsonResult data) { super(data); @@ -394,10 +392,10 @@ public void parameterStmt(ParameterStmt parameterStmt) { } public void namedConstantDef(NamedConstantDef namedConstantDef) { - var ref = getChild(namedConstantDef, NAMED_CONSTANT); + var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT_DEF); namedConstantDef.addChild(ref); - var expr = getChild(namedConstantDef, EXPR); + var expr = getChild(namedConstantDef, FlangName.EXPR); namedConstantDef.addChild(expr); } @@ -453,4 +451,25 @@ public void dataStmtVariable(DataStmtVariable dataStmtVariable) { var variable = getChild(dataStmtVariable, FlangName.VARIABLE); dataStmtVariable.addChild(variable); } + + public void commonStmt(CommonStmt commonStmt) { + var blocks = getChildren(commonStmt, FlangName.COMMON_STMT_BLOCK); + commonStmt.addChildren(blocks); + } + + public void commonBlock(CommonBlock commonBlock) { + var name = attributes().getString(commonBlock, "source", FlangName.NAME); + commonBlock.set(CommonBlock.NAME, name); + + var objects = getChildren(commonBlock, FlangName.COMMON_BLOCK_OBJECT); + commonBlock.addChildren(objects); + } + + public void commonBlockObject(CommonBlockObject object) { + var name = attributes().getString(object, "source", FlangName.NAME); + object.set(CommonBlockObject.NAME, name); + + var arraySpecOpt = getChildOptional(object, FlangName.ARRAY_SPEC); + arraySpecOpt.ifPresent(object::addChild); + } } From 0d9405ae3048dca8f82a8069916893924c04d427 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 14:28:38 +0100 Subject: [PATCH 084/132] Add code generation for common statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 3 ++- .../fortran/ast/nodes/stmt/CommonBlock.java | 19 +++++++++++++++++-- .../ast/nodes/stmt/CommonBlockObject.java | 8 ++++++++ .../fortran/ast/nodes/stmt/CommonStmt.java | 12 ++++++++++++ .../parser/processors/StmtProcessors.java | 2 +- 5 files changed, 40 insertions(+), 4 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 3bf531c0..698ea4e1 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -17,7 +17,6 @@ public enum FortranKeyword { STOP, ERROR, QUIET, - DATA, // Conditional statements IF, @@ -38,6 +37,8 @@ public enum FortranKeyword { // Declarations PARAMETER, + DATA, + COMMON, OMP; diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java index 2f5b0f4d..2d8b0777 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java @@ -7,19 +7,34 @@ import java.util.Collection; import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; public class CommonBlock extends FortranNode { - public static final DataKey NAME = KeyFactory.string("name"); + public static final DataKey> NAME = KeyFactory.optional("name"); public CommonBlock(DataStore data, Collection children) { super(data, children); } - public String getName() { + public Optional getName() { return get(NAME); } public List getObjects() { return getChildren(CommonBlockObject.class); } + + @Override + public String getCode() { + var name = getName(); + var nameCode = name.map(n -> "/" + n + "/").orElse(""); + + var objects = getObjects(); + var objectsCode = objects.stream() + .map(CommonBlockObject::getCode) + .collect(Collectors.joining(", ")); + + return nameCode + " " + objectsCode; + } } 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 5c5b841c..b56ceecd 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 @@ -24,4 +24,12 @@ public String getName() { public Optional getArraySpec() { return getChildOf(ArraySpecification.class); } + + @Override + public String getCode() { + var name = getName(); + var arraySpecCode = getArraySpec().map(ArraySpecification::getCode); + + return name + arraySpecCode.orElse(""); + } } 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 0338f4bb..6d7da00d 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 @@ -1,10 +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 java.util.Collection; import java.util.List; +import java.util.stream.Collectors; public class CommonStmt extends SpecificationStmt { public CommonStmt(DataStore data, Collection children) { @@ -14,4 +16,14 @@ public CommonStmt(DataStore data, Collection children) { public List getBlocks() { return getChildren(CommonBlock.class); } + + @Override + public String getCode() { + var blocks = getBlocks(); + var blocksCode = blocks.stream() + .map(CommonBlock::getCode) + .collect(Collectors.joining(", ")); + + return keyword(FortranKeyword.COMMON) + " " + blocksCode; + } } 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 06f36fb3..45a8f81a 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 @@ -458,7 +458,7 @@ public void commonStmt(CommonStmt commonStmt) { } public void commonBlock(CommonBlock commonBlock) { - var name = attributes().getString(commonBlock, "source", FlangName.NAME); + var name = attributes().getOptionalString(commonBlock, "source", FlangName.NAME); commonBlock.set(CommonBlock.NAME, name); var objects = getChildren(commonBlock, FlangName.COMMON_BLOCK_OBJECT); From cdc8307a2fe3c6b7b44e1e7379bafad74ba4fc54 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 14:40:19 +0100 Subject: [PATCH 085/132] Fix function declarations without parameters --- .../src/pt/up/fe/specs/fortran/parser/FlangData.java | 6 ++++++ .../specs/fortran/parser/processors/ProgramProcessors.java | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) 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 971b26f2..1f4bd84e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangData.java @@ -223,5 +223,11 @@ public List getChildrenIds(FortranNode node, String attribute) { .toList(); } + public boolean has(String key, FlangName attribute) { + return getAttrs(key).has(attribute); + } + public boolean has(String key, String attribute) { + return getAttrs(key).has(attribute); + } } 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 8610a00e..ccfaf142 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 @@ -85,6 +85,9 @@ public void subroutine(Subroutine subroutine) { subroutine.set(Subroutine.SUBROUTINE_NAME, name); String statementId = attributes().get(attributes(subroutine).getString(FlangName.SUBROUTINE_STMT.getStmtAttr())).getString("statement"); - subroutine.addChildren(getChildren(statementId, FlangName.DUMMY_ARG)); + + if (attributes().has(statementId, FlangName.DUMMY_ARG)) { + subroutine.addChildren(getChildren(statementId, FlangName.DUMMY_ARG)); + } } } From 6d0edb199b194e7086a88f3c57570dbb86a55406 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 14:53:16 +0100 Subject: [PATCH 086/132] Add kind to logical type declarations --- .../fe/specs/fortran/ast/nodes/type/LogicalType.java | 10 ++++++++-- .../fortran/parser/processors/TypeProcessors.java | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.java index 0d32126a..c9bb7c8e 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/type/LogicalType.java @@ -1,22 +1,28 @@ package pt.up.fe.specs.fortran.ast.nodes.type; +import org.suikasoft.jOptions.Datakey.DataKey; 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; import java.util.Collection; +import java.util.Optional; /** * Represents Fortran integer types. */ public class LogicalType extends IntrinsicType { - public LogicalType(DataStore data, Collection children) { super(data, children); } + public Optional getKindSelector() { + return getChildOf(KindSelector.class); + } + @Override public String getCode() { - return keyword(FortranKeyword.LOGICAL); + return keyword(FortranKeyword.LOGICAL) + getKindSelector().map(FortranNode::getCode).orElse(""); } } 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 15df61be..3dcfba39 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 @@ -39,7 +39,10 @@ public void kindSelector(KindSelector kindSelector) { } public void logicalType(LogicalType logicalType) { - + if (attributes(logicalType).has(FlangName.KIND_SELECTOR)) { + var kindSelector = getChild(logicalType, FlangName.KIND_SELECTOR); + logicalType.addChild(kindSelector); + } } public void doublePrecisionType(DoublePrecisionType doublePrecisionType) { From 486beb592d6531bab60a63e88470b93b64e8735b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 14:57:54 +0100 Subject: [PATCH 087/132] Fix casing on call statement --- .../fe/specs/fortran/ast/FortranKeyword.java | 1 + .../fortran/ast/nodes/stmt/CallStmt.java | 3 ++- .../fujitsu/0000/0000_0033.expected.f90 | 22 ++++++++-------- .../fortran/parser/polybench/3mm.expected.f90 | 26 +++++++++---------- .../fortran/parser/subroutine.expected.f90 | 2 +- 5 files changed, 28 insertions(+), 26 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 698ea4e1..f5aa33bb 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -17,6 +17,7 @@ public enum FortranKeyword { STOP, ERROR, QUIET, + CALL, // Conditional statements IF, 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 b537e71d..03effce0 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 @@ -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.Call; @@ -17,6 +18,6 @@ public Call getCall() { @Override public String getCode() { - return "call " + getCall().getCode(); + return keyword(FortranKeyword.CALL) + " " + getCall().getCode(); } } 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 95eddd06..2e4826eb 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 +COMMON /com/ ok +LOGICAL(1) :: ok ok = .true. CALL test1 @@ -14,9 +14,9 @@ END SUBROUTINE test1 - COMMON /com/ok - LOGICAL(1) ok - INTEGER*4 m, d, ans + COMMON /com/ ok + LOGICAL(1) :: ok + INTEGER*4 :: m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN @@ -26,9 +26,9 @@ SUBROUTINE test1 END SUBROUTINE SUBROUTINE test2 - COMMON /com/ok - LOGICAL(1) ok - INTEGER*2 m, d, ans + COMMON /com/ ok + LOGICAL(1) :: ok + INTEGER*2 :: m, d, ans PARAMETER (m = 19, d = 3, ans = 1) IF (mod(m, d) /= ans) THEN @@ -38,9 +38,9 @@ SUBROUTINE test2 END SUBROUTINE SUBROUTINE test3 - COMMON /com/ok - LOGICAL(1) ok - INTEGER*1 m, d, ans + COMMON /com/ ok + 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/polybench/3mm.expected.f90 b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 index ce525717..880efe12 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.expected.f90 @@ -8,25 +8,25 @@ PROGRAM THREE_MM DOUBLE PRECISION, DIMENSION(:, :), ALLOCATABLE :: g INTEGER :: i allocate(a(32 + 0, 32 + 0), STAT=i) -call check_err(i) +CALL check_err(i) allocate(b(32 + 0, 32 + 0), STAT=i) -call check_err(i) +CALL check_err(i) allocate(c(32 + 0, 32 + 0), STAT=i) -call check_err(i) +CALL check_err(i) allocate(d(32 + 0, 32 + 0), STAT=i) -call check_err(i) +CALL check_err(i) allocate(e(32 + 0, 32 + 0), STAT=i) -call check_err(i) +CALL check_err(i) allocate(f(32 + 0, 32 + 0), STAT=i) -call check_err(i) +CALL check_err(i) allocate(g(32 + 0, 32 + 0), STAT=i) -call check_err(i) -call init_array(32, 32, 32, 32, 32, a, b, c, d) -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() -call print_array(32, 32, g) +CALL check_err(i) +CALL init_array(32, 32, 32, 32, 32, a, b, c, d) +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() +CALL print_array(32, 32, g) deallocate(a) deallocate(b) deallocate(c) diff --git a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 index 8d6aeade..4043bc3c 100644 --- a/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/subroutine.expected.f90 @@ -12,7 +12,7 @@ PROGRAM MAIN x = 5 y = 12 - call add_numbers(x, y, total, useless) + CALL add_numbers(x, y, total, useless) PRINT *, "The sum is:", total END PROGRAM MAIN \ No newline at end of file From 90cb6a6581d4065db175c00077a060f4529010d4 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 25 Jun 2026 15:13:17 +0100 Subject: [PATCH 088/132] Fix Fujitsu test case 0000_0033 --- .../fortran/ast/nodes/program/Subroutine.java | 8 +++----- .../parser/fujitsu/0000/0000_0033.expected.f90 | 18 +++++++++--------- 2 files changed, 12 insertions(+), 14 deletions(-) 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 7d666e51..14280b44 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 @@ -33,11 +33,9 @@ public String getCode() { var code = new StringBuilder(); - var argCode = "(" + - getDummyArgs().stream() - .map(DummyArgumentDecl::getCode) - .collect(Collectors.joining(", ")) + - ")"; + var argCode = getDummyArgs().stream() + .map(DummyArgumentDecl::getCode) + .collect(Collectors.joining(", ", "(", ")")); var subroutineName = get(SUBROUTINE_NAME); 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 2e4826eb..cbe4d341 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 @@ -2,9 +2,9 @@ LOGICAL(1) :: ok ok = .true. -CALL test1 -CALL test2 -CALL test3 +CALL test1() +CALL test2() +CALL test3() IF (ok) THEN PRINT *, "OK" @@ -13,7 +13,7 @@ STOP END -SUBROUTINE test1 +SUBROUTINE test1() COMMON /com/ ok LOGICAL(1) :: ok INTEGER*4 :: m, d, ans @@ -23,9 +23,9 @@ SUBROUTINE test1 ok = .false. PRINT *, "TEST1-NG =>", mod(m, d) END IF -END SUBROUTINE +END SUBROUTINE test1 -SUBROUTINE test2 +SUBROUTINE test2() COMMON /com/ ok LOGICAL(1) :: ok INTEGER*2 :: m, d, ans @@ -35,9 +35,9 @@ SUBROUTINE test2 ok = .false. PRINT *, "TEST2-NG =>", mod(m, d) END IF -END SUBROUTINE +END SUBROUTINE test2 -SUBROUTINE test3 +SUBROUTINE test3() COMMON /com/ ok LOGICAL(1) :: ok INTEGER*1 :: m, d, ans @@ -47,4 +47,4 @@ SUBROUTINE test3 ok = .false. PRINT *, "TEST3-NG =>", mod(m, d) END IF -END SUBROUTINE \ No newline at end of file +END SUBROUTINE test3 \ No newline at end of file From 096a99db3becda9b3ba4704018db566bd5aa2622 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 30 Jun 2026 16:03:40 +0100 Subject: [PATCH 089/132] Update script, apply some fixes and update LLVM IR normalization rules --- Fortran-JS/metafor_fujitsu_pipeline.py | 42 ++++++++++++++++++-------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/Fortran-JS/metafor_fujitsu_pipeline.py b/Fortran-JS/metafor_fujitsu_pipeline.py index 8772e32b..5e85381d 100644 --- a/Fortran-JS/metafor_fujitsu_pipeline.py +++ b/Fortran-JS/metafor_fujitsu_pipeline.py @@ -254,7 +254,7 @@ def _stage3(self, path: Path) -> None: res = self.results[rel] work_dir = self._stage_work_dir(rel, "stage3") work_dir.mkdir(parents=True, exist_ok=True) - cmd = self._metafor_command(path) + cmd = self._metafor_command(path, work_dir) cr = self._run_command(cmd, cwd=work_dir, log_prefix=f"{safe_name(rel)}__stage3") res.stage3_elapsed_s = cr.elapsed_s if cr.returncode != 0: @@ -289,7 +289,7 @@ def _stage41(self, path: Path) -> None: stage3_output = Path(res.stage3_output_file).resolve() work_dir = self._stage_work_dir(rel, "stage41") work_dir.mkdir(parents=True, exist_ok=True) - cmd = self._metafor_command(stage3_output) + cmd = self._metafor_command(stage3_output, work_dir) cr = self._run_command(cmd, cwd=work_dir, log_prefix=f"{safe_name(rel)}__stage41") res.stage41_elapsed_s = cr.elapsed_s if cr.returncode != 0: @@ -334,10 +334,16 @@ def _stage42(self, path: Path) -> None: self._flang_ir_command(path, original_ir), log_prefix=f"{safe_name(rel)}__stage42_original", ) + if cr1.returncode == 0 and (not original_ir.exists() or original_ir.stat().st_size == 0): + original_ir.write_text(cr1.stdout, encoding="utf-8") + cr2 = self._run_command( self._flang_ir_command(stage3_output, regenerated_ir), log_prefix=f"{safe_name(rel)}__stage42_regenerated", ) + if cr2.returncode == 0 and (not regenerated_ir.exists() or regenerated_ir.stat().st_size == 0): + regenerated_ir.write_text(cr2.stdout, encoding="utf-8") + res.stage42_elapsed_s = cr1.elapsed_s + cr2.elapsed_s if cr1.returncode != 0 or cr2.returncode != 0: problems = [] @@ -352,7 +358,16 @@ def _stage42(self, path: Path) -> None: res.stage42_original_ir = str(original_ir) res.stage42_regenerated_ir = str(regenerated_ir) - same = self._normalized_ir_equal(original_ir, regenerated_ir) + original_ir.write_text( + normalize_llvm_ir(original_ir.read_text(encoding="utf-8", errors="replace")), + encoding="utf-8", + ) + regenerated_ir.write_text( + normalize_llvm_ir(regenerated_ir.read_text(encoding="utf-8", errors="replace")), + encoding="utf-8", + ) + + same = files_are_identical(original_ir, regenerated_ir) res.stage42_ok = same res.stage42_note = "Normalized LLVM IR match" if same else "Normalized LLVM IR mismatch" @@ -469,7 +484,7 @@ def _write_command_log(self, prefix: str, result: CommandResult) -> None: def _stage_work_dir(self, relative_file: str, stage_name: str) -> Path: return self.work_root / safe_name(relative_file) / stage_name - def _metafor_command(self, source_file: Path) -> list[str]: + def _metafor_command(self, source_file: Path, output_dir: Path) -> list[str]: return [ self.args.npx, self.args.metafor_package, @@ -477,6 +492,8 @@ def _metafor_command(self, source_file: Path) -> list[str]: str(self.noop_script_path.resolve()), "-p", str(source_file.resolve()), + "-o", + str(output_dir), ] def _flang_ir_command(self, source_file: Path, output_file: Path) -> list[str]: @@ -507,11 +524,6 @@ def _locate_generated_file(self, woven_code: Path, source_file: Path) -> Optiona return all_f90[0] return None - def _normalized_ir_equal(self, a_path: Path, b_path: Path) -> bool: - a = normalize_llvm_ir(a_path.read_text(encoding="utf-8", errors="replace")) - b = normalize_llvm_ir(b_path.read_text(encoding="utf-8", errors="replace")) - return a == b - def _write_outputs(self, summary: Optional[dict] = None) -> None: results_csv = self.output_dir / "results.csv" summary_json = self.output_dir / "summary.json" @@ -787,9 +799,11 @@ def write_csv(path: Path, rows: list[dict]) -> None: LLVM_IR_DROP_LINE_PATTERNS = [ re.compile(r"^; ModuleID = "), re.compile(r'^source_filename = '), - re.compile(r"^!llvm\\.(module\\.flags|ident) = "), - re.compile(r"^!\\d+ = "), - re.compile(r"^attributes #\\d+ = "), + re.compile(r"^!llvm\.(module\.flags|ident) = "), + re.compile(r"^!\d+ = "), + re.compile(r"^attributes #\d+ = "), + re.compile(r'^[$@]_QQclX[0-9a-fA-F]+\s*='), + re.compile(r'^[$@]_QQclX\s*='), ] @@ -801,6 +815,8 @@ def write_csv(path: Path, rows: list[dict]) -> None: (re.compile(r",? !alias.scope ![0-9]+"), ""), (re.compile(r",? !noalias ![0-9]+"), ""), (re.compile(r",? !llvm.loop ![0-9]+"), ""), + (re.compile(r"(_QQclX)[0-9a-fA-F]+"), r"\1"), + (re.compile(r"(@_QQclX,\s*i32\s+)\d+"), r"\1"), ] @@ -827,7 +843,7 @@ def build_arg_parser() -> argparse.ArgumentParser: default="metafor_fujitsu_results", help="Directory where CSV/report/logs/artifacts will be written", ) - p.add_argument("--flang", default="flang-20", help="flang executable") + p.add_argument("--flang", default="flang-22", help="flang executable") p.add_argument( "--dump-ast-plugin", default="./build/DumpASTPlugin.so", From 4e8d91170e580f500b4aeb991c17e161cf34b47f Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 30 Jun 2026 16:04:59 +0100 Subject: [PATCH 090/132] Add script output to .gitignore --- Fortran-JS/.gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Fortran-JS/.gitignore b/Fortran-JS/.gitignore index 80cfa728..f561f85c 100644 --- a/Fortran-JS/.gitignore +++ b/Fortran-JS/.gitignore @@ -114,3 +114,9 @@ dist # TernJS port file .tern-port + +# Python cache files +__pycache__/ + +# Fujitsu script results +metafor_fujitsu_results/ From f98db299fadcc3924ae0ba8fcb0859f1f8d254e9 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 30 Jun 2026 16:10:57 +0100 Subject: [PATCH 091/132] Output also original LLVM IR --- Fortran-JS/metafor_fujitsu_pipeline.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Fortran-JS/metafor_fujitsu_pipeline.py b/Fortran-JS/metafor_fujitsu_pipeline.py index 5e85381d..7217e38a 100644 --- a/Fortran-JS/metafor_fujitsu_pipeline.py +++ b/Fortran-JS/metafor_fujitsu_pipeline.py @@ -358,16 +358,18 @@ def _stage42(self, path: Path) -> None: res.stage42_original_ir = str(original_ir) res.stage42_regenerated_ir = str(regenerated_ir) - original_ir.write_text( + original_norm = dest / "original.normalized.ll" + regenerated_norm = dest / "regenerated.normalized.ll" + original_norm.write_text( normalize_llvm_ir(original_ir.read_text(encoding="utf-8", errors="replace")), encoding="utf-8", ) - regenerated_ir.write_text( + regenerated_norm.write_text( normalize_llvm_ir(regenerated_ir.read_text(encoding="utf-8", errors="replace")), encoding="utf-8", ) - same = files_are_identical(original_ir, regenerated_ir) + same = files_are_identical(original_norm, regenerated_norm) res.stage42_ok = same res.stage42_note = "Normalized LLVM IR match" if same else "Normalized LLVM IR mismatch" From 6d3e73cac7424edeb57441ca6335ced9cd33858b Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 30 Jun 2026 16:20:05 +0100 Subject: [PATCH 092/132] Fix script not detecting valid Fortran files --- Fortran-JS/metafor_fujitsu_pipeline.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Fortran-JS/metafor_fujitsu_pipeline.py b/Fortran-JS/metafor_fujitsu_pipeline.py index 7217e38a..dce19dfd 100644 --- a/Fortran-JS/metafor_fujitsu_pipeline.py +++ b/Fortran-JS/metafor_fujitsu_pipeline.py @@ -132,7 +132,7 @@ def __init__(self, args: argparse.Namespace) -> None: self.noop_script_path.write_text(DEFAULT_NOOP_SCRIPT, encoding="utf-8") def discover_files(self) -> list[Path]: - files = sorted(self.fortran_root.rglob("*.f90")) + files = sorted(set(self.fortran_root.rglob("*.f90")) | set(self.fortran_root.rglob("*.f"))) if self.args.limit: files = files[: self.args.limit] return files @@ -146,7 +146,7 @@ def run(self) -> int: files = self.discover_files() if not files: - raise PipelineError(f"No .f90 files found under {self.fortran_root}") + raise PipelineError(f"No .f90 or .f files found under {self.fortran_root}") log(f"Discovered {len(files)} Fortran files") @@ -864,7 +864,7 @@ def build_arg_parser() -> argparse.ArgumentParser: ) p.add_argument("--jobs", type=int, default=max(1, (os.cpu_count() or 2) // 2), help="Parallel workers") p.add_argument("--timeout", type=int, default=120, help="Per-command timeout in seconds") - p.add_argument("--limit", type=int, default=0, help="Optional cap on number of .f90 files to process") + p.add_argument("--limit", type=int, default=0, help="Optional cap on number of Fortran files to process") p.add_argument("--node-path", default="", help="Optional NODE_PATH value") return p From 0f98bad09d168eda237c2ee65bc8973cf0488b8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Bispo?= Date: Mon, 3 Aug 2026 10:44:15 +0100 Subject: [PATCH 093/132] Commit to trigger workflow --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 50464de6..237d3c7a 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,4 @@ The next steps for the Fortran source-to-source compiler are as follows: - Loop peeling - Loop strip-mining - OpenMP directive transformations. These tranformations should transform code with OpenMP directives not-yet supported by Flang into code with supported directives. The particular transformations to target are dependent of inputs from partners + From fce4078888f3281f4d22e97df198faf4580314b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Vaz=20Os=C3=B3rio?= Date: Mon, 3 Aug 2026 11:45:03 +0100 Subject: [PATCH 094/132] Update expected test result --- FortranParser/resources-test/fortran/parser/hello.expected.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FortranParser/resources-test/fortran/parser/hello.expected.f90 b/FortranParser/resources-test/fortran/parser/hello.expected.f90 index 22033216..c2705481 100644 --- a/FortranParser/resources-test/fortran/parser/hello.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/hello.expected.f90 @@ -1,7 +1,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>*/ + 100 format(a, i3) 20 PRINT "(A, F6.3)", "Value = ", 3 END PROGRAM HELLO \ No newline at end of file From b4ef7f95db470c16e3fb3d9ff031ec54f775b6d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Vaz=20Os=C3=B3rio?= Date: Mon, 3 Aug 2026 11:49:34 +0100 Subject: [PATCH 095/132] Update weaver files --- .../specs/fortran/weaver/FortranWeaver.json | 2112 ++++++++++++++--- 1 file changed, 1760 insertions(+), 352 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 a26a8eef..1940bdb1 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/FortranWeaver.json @@ -1095,6 +1095,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", @@ -1104,6 +1122,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", @@ -1117,6 +1191,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { @@ -2534,178 +2622,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": "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" + "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": "" }] @@ -2713,16 +2734,24 @@ }, { "type": "joinpoint", - "name": "elseIfStatement", + "name": "elseIfBlock", "extends": "joinpoint" , - "tooltip": "Represents the header of an 'else if' block", + "tooltip": "Represents the optional 'else if' blocks of an if construct", "children": [ { "type": "attribute", "children": [ { - "type": "expr", - "name": "condition" + "type": "statementBlock", + "name": "body" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "elseIfStatement", + "name": "header" }] }, { @@ -2836,169 +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": "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" + "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": "" }] @@ -3006,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" }] }, { @@ -3249,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" }] }, { @@ -3377,32 +3332,6 @@ "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", @@ -3517,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", @@ -3744,15 +3689,23 @@ }, { "type": "joinpoint", - "name": "exprInitialization", - "extends": "initialization" , + "name": "execution", + "extends": "statementBlock" , "children": [ { "type": "attribute", "children": [ { - "type": "expr", - "name": "expr" + "type": "executableStatement[]", + "name": "executableStmts" + }] + }, + { + "type": "attribute", + "children": [ + { + "type": "statement[]", + "name": "stmts" }] }, { @@ -3866,53 +3819,148 @@ }, { "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", "children": [ { - "type": "joinpoint", - "name": "detach" + "type": "void", + "name": "insertBegin" + }, + { + "type": "executableStatement", + "name": "stmt", + "defaultValue": "" }] }, { "type": "action", - "tooltip": "Replaces this node with the given node", "children": [ { - "type": "joinpoint", - "name": "replaceWith" + "type": "void", + "name": "insertEnd" }, { - "type": "joinpoint", - "name": "node", + "type": "executableStatement", + "name": "stmt", "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", + "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": "foldername" + "name": "code", + "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "the name of the file", + "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": "name" + "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", @@ -4136,9 +4184,17 @@ }, { "type": "joinpoint", - "name": "fortranDecl", - "extends": "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", @@ -4248,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", @@ -4259,63 +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": "joinpoint", - "name": "ifConstruct", - "extends": "executableStatement" , - "tooltip": "Represents the root of an if construct", - "children": [ + }, { - "type": "attribute", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { - "type": "elseBlock", - "name": "elseBlock" + "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": "elseIfBlock[]", - "name": "elseIfBlocks" + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { - "type": "attribute", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { - "type": "ifThenBlock", - "name": "ifThenBlock" + "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": "Boolean", - "name": "isFirst" + "type": "String", + "name": "foldername" }] }, { "type": "attribute", + "tooltip": "the name of the file", "children": [ { - "type": "Boolean", - "name": "isLast" + "type": "String", + "name": "name" }] }, { @@ -4429,27 +4552,608 @@ }, { "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" - }, + "name": "deepCopy" + }] + }, + { + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", + "children": [ { "type": "joinpoint", - "name": "node", - "defaultValue": "" + "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": "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", @@ -4597,6 +5301,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", @@ -4606,6 +5328,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", @@ -4619,6 +5397,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { @@ -4752,6 +5544,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", @@ -4761,6 +5571,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", @@ -4774,6 +5640,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { @@ -4891,33 +5771,121 @@ }] }, { - "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": "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": "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": "" }] @@ -5037,6 +6005,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", @@ -5046,6 +6032,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", @@ -5059,6 +6101,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { @@ -5409,6 +6465,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", @@ -5418,6 +6492,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", @@ -5431,6 +6561,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { @@ -8192,66 +9336,140 @@ }] }, { - "type": "attribute", - "tooltip": "Returns the index of this join point in relation to its parent", + "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": "int", - "name": "indexOfSelf" + "type": "joinpoint", + "name": "copy" }] }, { - "type": "attribute", - "tooltip": "Returns the node that came before this node, or undefined if there is none", + "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": "leftJp" + "name": "deepCopy" }] }, { - "type": "attribute", - "tooltip": "Returns the parent node in the AST, or undefined if it is the root node", + "type": "action", + "tooltip": "Removes node associated to the joinpoint from the AST", "children": [ { "type": "joinpoint", - "name": "parent" + "name": "detach" }] }, { - "type": "attribute", - "tooltip": "Returns the node that comes after this node, or undefined if there is none", + "type": "action", + "tooltip": "Inserts the given join point after this join point", "children": [ { "type": "joinpoint", - "name": "rightJp" + "name": "insertAfter" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { - "type": "attribute", - "tooltip": "Returns the 'program' join point", + "type": "action", + "tooltip": "Overload which accepts a string", "children": [ { - "type": "program", - "name": "root" + "type": "joinpoint", + "name": "insertAfter" + }, + { + "type": "String", + "name": "code", + "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": "Inserts the given join point before this join point", "children": [ { - "type": "joinpoint[]", - "name": "scopeNodes" + "type": "joinpoint", + "name": "insertBefore" + }, + { + "type": "joinpoint", + "name": "node", + "defaultValue": "" }] }, { "type": "action", - "tooltip": "Removes node associated to the joinpoint from the AST", + "tooltip": "Overload which accepts a string", "children": [ { "type": "joinpoint", - "name": "detach" + "name": "insertBefore" + }, + { + "type": "String", + "name": "node", + "defaultValue": "" }] }, { @@ -8267,6 +9485,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { @@ -9635,6 +10867,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", @@ -9644,6 +10894,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", @@ -9657,6 +10963,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { @@ -10759,6 +12079,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", @@ -10768,6 +12106,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", @@ -10781,6 +12175,20 @@ "name": "node", "defaultValue": "" }] + }, + { + "type": "action", + "tooltip": "Overload which accepts a list of join points", + "children": [ + { + "type": "joinpoint", + "name": "replaceWith" + }, + { + "type": "joinpoint[]", + "name": "node", + "defaultValue": "" + }] }] }, { From 825a7d9e79d5e59747de02564985b79339de8299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Bispo?= Date: Mon, 3 Aug 2026 15:21:21 +0100 Subject: [PATCH 096/132] Changes workflow to specifically use windows-2022 --- .github/workflows/nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 5a70a253..a0ef9b3d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -136,7 +136,7 @@ jobs: matrix: #node-version: ['latest', '22.x', '20.x'] node-version: ['22.x', '20.x'] - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-2022, macos-latest] runs-on: ${{ matrix.os }} From ed21f1f0bdbf6ecdf2aadb96c3bb0617e1a5da9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Bispo?= Date: Mon, 3 Aug 2026 15:29:26 +0100 Subject: [PATCH 097/132] Sets Windows version of the workflow to 2022 --- .github/workflows/nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 5a70a253..a0ef9b3d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -136,7 +136,7 @@ jobs: matrix: #node-version: ['latest', '22.x', '20.x'] node-version: ['22.x', '20.x'] - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-2022, macos-latest] runs-on: ${{ matrix.os }} From 33cf77c6263e152d4897e88034d7343bb5e8033f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Castro=20Vaz=20Os=C3=B3rio?= <80353484+Onso37@users.noreply.github.com> Date: Mon, 3 Aug 2026 15:51:49 +0100 Subject: [PATCH 098/132] Remove duplicate keywords --- FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java | 2 -- 1 file changed, 2 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 cfcd834b..c75ffe1b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -9,10 +9,8 @@ public enum FortranKeyword { WRITE, USE, GOTO, - COMMON, EXTERNAL, RETURN, - DATA, STOP, // Execution statements From 948a9d9793e864b78a7721dc7538b5d37c97bfd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Castro=20Vaz=20Os=C3=B3rio?= <80353484+Onso37@users.noreply.github.com> Date: Mon, 3 Aug 2026 16:24:37 +0100 Subject: [PATCH 099/132] Remove duplicate processing methods --- .../parser/processors/StmtProcessors.java | 19 ------------------- 1 file changed, 19 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 fa114179..5ee20fe7 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 @@ -397,21 +397,6 @@ public void parameterStmt(ParameterStmt parameterStmt) { parameterStmt.addChildren(getChildren(parameterStmt, FlangName.NAMED_CONSTANT_DEF)); } - public void commonStmt(CommonStmt commonStmt) { - String block = attributes(commonStmt).getStringList(FlangName.BLOCK).getFirst(); - - if (attributes().get(block).has(FlangName.NAME)) { - commonStmt.addChild(getChild(attributes().get(block).getString(FlangName.NAME))); - commonStmt.set(CommonStmt.HAS_NAME, true); - } - else { - commonStmt.set(CommonStmt.HAS_NAME, false); - } - - commonStmt.addChildren(getChildren(block, FlangName.COMMON_BLOCK_OBJECT)); - } - - public void externalStmt(ExternalStmt externalStmt) { externalStmt.addChildren(getChildren(externalStmt, FlangName.NAME)); } @@ -423,10 +408,6 @@ public void returnStmt(ReturnStmt returnStmt) { } } - public void dataStmt(DataStmt dataStmt) { - dataStmt.addChildren(getChildren(dataStmt, FlangName.DATA_STMT_SET)); - } - public void openStmt(OpenStmt openStmt) { actionStmt(openStmt); } From 417d749f6f8d767241b4e171005ad63cbd266cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Castro=20Vaz=20Os=C3=B3rio?= <80353484+Onso37@users.noreply.github.com> Date: Mon, 3 Aug 2026 16:28:50 +0100 Subject: [PATCH 100/132] Remove duplicate map entries --- .../src/pt/up/fe/specs/fortran/parser/processors/Nodes.java | 2 -- 1 file changed, 2 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 5f03b61d..d6f2bd83 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,10 +108,8 @@ public Nodes(FortranJsonResult data) { processors.put(DeallocateStmt.class, s::deallocateStmt); processors.put(ContinueStmt.class, s::continueStmt); processors.put(ParameterStmt.class, s::parameterStmt); - processors.put(CommonStmt.class, s::commonStmt); processors.put(ExternalStmt.class, s::externalStmt); processors.put(ReturnStmt.class, s::returnStmt); - processors.put(DataStmt.class, s::dataStmt); processors.put(OpenStmt.class, s::openStmt); processors.put(CloseStmt.class, s::closeStmt); processors.put(NamedConstantDef.class, s::namedConstantDef); From e3647a9c63f14d7b3f6dbd3179491e5f9014f65f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Afonso=20Castro=20Vaz=20Os=C3=B3rio?= <80353484+Onso37@users.noreply.github.com> Date: Mon, 3 Aug 2026 16:32:28 +0100 Subject: [PATCH 101/132] Remove another duplicate map entry --- .../src/pt/up/fe/specs/fortran/parser/processors/Nodes.java | 1 - 1 file changed, 1 deletion(-) 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 d6f2bd83..8302f85f 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 @@ -67,7 +67,6 @@ public Nodes(FortranJsonResult data) { processors.put(EntityDecl.class, d::entityDecl); processors.put(DataStmtValue.class, d::dataStmtValue); processors.put(DummyArgumentDecl.class, d::dummyArgumentDecl); - processors.put(DataStmtSet.class, d::dataStmtSet); var v = new VariableProcessor(data); processors.put(DataRef.class, v::dataRefProcessor); From 221ff53d739fe1834bb3f9e814fe544c6cdade17 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 3 Jul 2026 00:12:40 +0100 Subject: [PATCH 102/132] 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 35a75f454a1f894d88d493dcce96823d0bae1505 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Fri, 3 Jul 2026 00:33:30 +0100 Subject: [PATCH 103/132] 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 b9455149c6662968a84c65bf94ae503284b8be47 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Sat, 4 Jul 2026 00:19:47 +0100 Subject: [PATCH 104/132] 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 8302f85f..7f11afb0 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 @@ -160,6 +160,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 cb9e2335d596ad833a3e1c68962ed1b3ee005707 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 6 Jul 2026 15:47:22 +0100 Subject: [PATCH 105/132] 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 1523cafb..e6c96c28 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 @@ -4,10 +4,11 @@ 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 java.util.Collection; -public class ElseBlock extends FortranNode { +public class ElseBlock extends Stmt { public ElseBlock(DataStore data, Collection children) { super(data, children); } @@ -21,7 +22,7 @@ public Execution 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 b62e03c0..a5abe88f 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 @@ -6,10 +6,11 @@ import pt.up.fe.specs.fortran.ast.nodes.expr.Expr; 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; -public class ElseIfBlock extends FortranNode { +public class ElseIfBlock extends Stmt { public ElseIfBlock(DataStore data, Collection children) { super(data, children); } @@ -23,7 +24,7 @@ public Execution 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 8ce727e46ceb026a3b1eb95df32deeb20909109e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 6 Jul 2026 16:00:33 +0100 Subject: [PATCH 106/132] 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 c2705481..d1f980db 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 format(a, i3) 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 9d102fe76cff83521b0a4d789e90abd87cb0b396 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Mon, 6 Jul 2026 18:15:38 +0100 Subject: [PATCH 107/132] Refactor AST comment representation and processing # Conflicts: # FortranParser/src/pt/up/fe/specs/fortran/parser/processors/StmtProcessors.java --- .../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 | 80 +++++- .../parser/processors/UtilsProcessors.java | 16 -- 12 files changed, 228 insertions(+), 223 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 e6c96c28..1b5d99e7 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 @@ -8,7 +8,7 @@ import java.util.Collection; -public class ElseBlock extends Stmt { +public class ElseBlock extends FortranNode { public ElseBlock(DataStore data, Collection children) { super(data, children); } @@ -22,7 +22,7 @@ public Execution 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 a5abe88f..b7e06555 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 @@ -10,7 +10,7 @@ import java.util.Collection; -public class ElseIfBlock extends Stmt { +public class ElseIfBlock extends FortranNode { public ElseIfBlock(DataStore data, Collection children) { super(data, children); } @@ -24,7 +24,7 @@ public Execution 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 7f11afb0..e89e9b9b 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 @@ -160,14 +160,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); @@ -183,5 +182,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 5ee20fe7..6cf8bb73 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); - private void actionStmt(ActionStmt actionStmt) { + // Uncomment this if we really need the statement source + // executableStmt.set(ExecutableStmt.SOURCE, attributes(executableStmt).getString("source")); + } + + + 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); @@ -76,6 +95,7 @@ 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); @@ -87,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); @@ -127,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); @@ -143,6 +167,8 @@ public void elseIfBlock(ElseIfBlock ifElseBlock) { } public void elseIfStmt(ElseIfStmt elseIfStmt) { + stmt(elseIfStmt); + var condition = getChild(elseIfStmt, FlangName.EXPR); elseIfStmt.addChild(condition); } @@ -157,16 +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); @@ -175,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); @@ -192,6 +221,8 @@ public void caseConstruct(CaseConstruct caseConstruct) { } public void selectCaseStmt(SelectCaseStmt selectCaseStmt) { + stmt(selectCaseStmt); + var expr = getChild(selectCaseStmt, FlangName.EXPR); selectCaseStmt.addChild(expr); @@ -225,6 +256,7 @@ public CaseStmt buildCaseStmt(String id) { .toList(); var valueCaseStmt = factory().newNode(ValueCaseStmt.class); + stmtWithAttrs(valueCaseStmt, caseSelectorAttrs); valueCaseStmt.addChildren(caseValueRanges); return valueCaseStmt; @@ -232,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); @@ -290,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); @@ -332,16 +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); @@ -350,6 +391,7 @@ public void gotoStmt(GotoStmt gotoStmt) { public void writeStmt(WriteStmt writeStmt) { actionStmt(writeStmt); + if (attributes(writeStmt).has("iounit")) { writeStmt.addChild(getChild(writeStmt, "iounit")); } @@ -368,21 +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"); @@ -394,6 +440,8 @@ public void continueStmt(ContinueStmt continueStmt) { } public void parameterStmt(ParameterStmt parameterStmt) { + stmt(parameterStmt); + parameterStmt.addChildren(getChildren(parameterStmt, FlangName.NAMED_CONSTANT_DEF)); } @@ -425,6 +473,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")); @@ -440,6 +490,8 @@ public void stopStmt(StopStmt stopStmt) { } public void dataStmt(DataStmt dataStmt) { + stmt(dataStmt); + var dataStmtSets = getChildren(dataStmt, FlangName.DATA_STMT_SET); dataStmt.addChildren(dataStmtSets); } @@ -478,6 +530,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 849df0033aae9698983eb8dddf3930e6c4c55fd3 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 12:12:25 +0100 Subject: [PATCH 108/132] 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 4566a198c44750127727f931637dee7eff263b57 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 14:25:20 +0100 Subject: [PATCH 109/132] 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 90064ead..eaaab2ea 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -49,6 +49,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 e89e9b9b..6754f41e 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(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 96c04e85..28027e2e 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 6cf8bb73..171109ff 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; @@ -551,4 +553,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 4fbfa090bca1d0cdb3f523dca830e064c63da168 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 14:25:26 +0100 Subject: [PATCH 110/132] Fix weaver --- .../pt/up/fe/specs/fortran/weaver/joinpoints/FExecution.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 bc9576ed6b71e5a8c1d34d57464b2bc41a0927d6 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 14:37:42 +0100 Subject: [PATCH 111/132] 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 4d735b54e603d21abde65a13e6e98f23674a4965 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 19:39:02 +0100 Subject: [PATCH 112/132] 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 6741fa45..0552e087 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -48,6 +48,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 eaaab2ea..e361a7d6 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -24,6 +24,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; @@ -69,7 +72,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 6754f41e..92570ada 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 @@ -24,6 +24,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; @@ -92,7 +95,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 171109ff..87aab392 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 bcf38777e5ecaf015d7d136e772c9315fe2107fd Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 20:28:06 +0100 Subject: [PATCH 113/132] 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 e361a7d6..9a03247e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -58,6 +58,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); NAME_TO_CLASS.put(FlangName.FUNCTION_SUBPROGRAM, Function.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 92570ada..836c4716 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 @@ -122,6 +122,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 28027e2e..0c5b1d12 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,20 +79,20 @@ 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); } public void function(Function function) { 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 87aab392..36e334ff 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.*; @@ -577,4 +574,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 dc5f798338b91e794a257de996616af812541c31 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 20:41:14 +0100 Subject: [PATCH 114/132] 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 6235bf4f957da440ed0e630d7d4d01c44d5abe32 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 22:32:48 +0100 Subject: [PATCH 115/132] 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 8c7369cfc88ad358423432e1f654658d368c9c91 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 22:47:08 +0100 Subject: [PATCH 116/132] 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 36e334ff..40b8c3d5 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 c66e4f1d519920c2fd0377fbd57bd22b49450aad Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 22:57:16 +0100 Subject: [PATCH 117/132] 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 836c4716..65acab19 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 @@ -54,7 +54,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 0c5b1d12..e803f6c2 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 579a8425bd9bc160d228a2a9dadf47fb038056fc Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 23:05:41 +0100 Subject: [PATCH 118/132] 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 1504f155f2b3f4a65c99d6ae8c71a900f31d4a87 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 7 Jul 2026 23:17:43 +0100 Subject: [PATCH 119/132] 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 d4228cabc8d7bd3bf8879219d049f7402b9e1178 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 120/132] 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 40b8c3d5..94e78e01 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 @@ -483,7 +483,7 @@ public void closeStmt(CloseStmt closeStmt) { } 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 b44a695b6f9fd015ef75577d539d1502e3c942ca Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:08:09 +0100 Subject: [PATCH 121/132] 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 251c0d9d5d37f79d67091293efb49eb70790b14d Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:16:55 +0100 Subject: [PATCH 122/132] 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 6a60dc6e5acc9a7433c1e38b3c70b83c32fa0664 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:26:08 +0100 Subject: [PATCH 123/132] 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 d99674ee9be3137601e27585cbdaf11eade5be05 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Thu, 9 Jul 2026 00:33:25 +0100 Subject: [PATCH 124/132] 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 b2b0a3a81166b3a520fedfa3df99f526fbd61162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Bispo?= Date: Tue, 4 Aug 2026 15:11:20 +0100 Subject: [PATCH 125/132] Updates repository name of push-mirror --- .github/workflows/mirror-to-gitlab.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mirror-to-gitlab.yml b/.github/workflows/mirror-to-gitlab.yml index 2d4fd0bb..66ddf7d8 100644 --- a/.github/workflows/mirror-to-gitlab.yml +++ b/.github/workflows/mirror-to-gitlab.yml @@ -35,7 +35,7 @@ jobs: - name: Add GitLab remote (SSH) - run: git remote add gitlab ssh://git@git.dare.megware.com:2221/compilers/fortran-transpiler.git + run: git remote add gitlab ssh://git@git.dare.megware.com:2221/compilers/metafor.git # Push only the public namespaces (no refs/remotes/*) - name: Push branches From 7f0673cc3c047cf197a257fe9b0578f1eb4cbfc8 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 15:36:04 +0100 Subject: [PATCH 126/132] Fix statements not compiling --- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/CloseStmt.java | 2 +- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.java | 2 +- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExternalStmt.java | 2 +- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/FormatStmt.java | 2 +- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/OpenStmt.java | 2 +- .../src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) 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 index a88e0271..60318eff 100644 --- 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 @@ -12,7 +12,7 @@ public CloseStmt(DataStore data, Collection children) { //TODO properly support the statement @Override - public String getCode() { + 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 index 9fb83030..ee5d70fb 100644 --- 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 @@ -19,7 +19,7 @@ public List getSets() { } @Override - public String getCode() { + public String getStmtCode() { StringBuilder code = new StringBuilder(); code.append(FortranKeyword.DATA.getKeyword(false)).append(" "); 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 6b7af22b..52862299 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 @@ -19,7 +19,7 @@ public List getNames() { } @Override - public String getCode() { + public String getStmtCode() { StringBuilder code = new StringBuilder(); code.append(FortranKeyword.EXTERNAL.getKeyword(false)).append(" "); 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 1df101da..25853b15 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 @@ -13,7 +13,7 @@ public FormatStmt(DataStore data, Collection children) { //TODO properly support the statement @Override - public String getCode() { + public String getStmtCode() { return get(SOURCE).replaceFirst("^\\d+", ""); } } 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 index f54447dc..b0e21b79 100644 --- 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 @@ -12,7 +12,7 @@ public OpenStmt(DataStore data, Collection children) { //TODO properly support the statement @Override - public String getCode() { + public String getStmtCode() { return get(SOURCE).replaceFirst("^\\d+", ""); } } 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 056cde90..59c769f1 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 @@ -18,7 +18,7 @@ public Optional getExpr() { } @Override - public String getCode() { + public String getStmtCode() { StringBuilder code = new StringBuilder(); code.append(FortranKeyword.RETURN.getKeyword(false)); From 5dcc7d66cdc9aeb836e337075d1a7b9dc2c917f0 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 15:39:41 +0100 Subject: [PATCH 127/132] Hotfix format statement not working --- .../up/fe/specs/fortran/parser/processors/StmtProcessors.java | 4 ++++ 1 file changed, 4 insertions(+) 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 94e78e01..aa3a466f 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 @@ -74,6 +74,10 @@ public void printStmt(PrintStmt printStmt) { public void formatStmt(FormatStmt formatStmt) { executableStmt(formatStmt); + + // TODO(Process-ing): Remove this + var source = attributes(formatStmt).getString("source"); + formatStmt.set(FormatStmt.SOURCE, source); } public void typeDeclarationStmt(TypeDeclarationStmt typeDeclarationStmt) { From f2b730414ccafc1c76f7cfed9af21e765bec302e Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 15:52:50 +0100 Subject: [PATCH 128/132] Fix AST tests --- .../specs/fortran/ast/FortranNodeFactory.java | 17 +++++++++++++++-- .../fe/specs/fortran/ast/nodes/stmt/Stmt.java | 8 ++++---- 2 files changed, 19 insertions(+), 6 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..cc797482 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -123,17 +123,28 @@ public Application application(List files) { public FortranFile fortranFile(List units) { DataStore data = newDataStore(FortranFile.class); + data.set(FortranFile.FINAL_COMMENTS, List.of()); + return new FortranFile(data, units); } + private void initComments(DataStore data) { + data.set(Stmt.LEADING_COMMENTS, List.of()); + } + + private void initComments(Stmt stmt) { + stmt.set(Stmt.LEADING_COMMENTS, List.of()); + } public MainProgram mainProgram(String programName, List execution) { DataStore data = newDataStore(MainProgram.class); data.set(MainProgram.NAME, Optional.ofNullable(programName)); - var programStmt = new ProgramStmt(data, Collections.emptyList()); + var programStmt = newNode(ProgramStmt.class, Collections.emptyList()); + initComments(programStmt); var executionBlock = execution(execution); - var endProgramStmt = new EndProgramStmt(data, Collections.emptyList()); + var endProgramStmt = newNode(EndProgramStmt.class, Collections.emptyList()); + initComments(endProgramStmt); return new MainProgram(data, List.of(programStmt, executionBlock, endProgramStmt)); } @@ -152,6 +163,7 @@ public PrintStmt printStmt(Format format, FortranNode... outputItems) { public PrintStmt printStmt(Format format, List outputItems) { DataStore data = newDataStore(PrintStmt.class); + initComments(data); return new PrintStmt(data, SpecsCollections.concat(format, outputItems)); } @@ -159,6 +171,7 @@ public PrintStmt printStmt(Format format, List outputItems) { public LiteralExecutionStmt literalExecutionStmt(String code) { DataStore data = newDataStore(LiteralExecutionStmt.class); data.set(LiteralExecutionStmt.LITERAL_CODE, code); + initComments(data); return new LiteralExecutionStmt(data, Collections.emptyList()); } 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..36b6dd90 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 @@ -29,6 +29,10 @@ public Optional getLabel() { } public List getLeadingComments() { + SpecsCheck.checkArgument(hasValue(LEADING_COMMENTS), () -> "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."); + return get(LEADING_COMMENTS); } @@ -46,10 +50,6 @@ public final String getCode() { var labelPrefix = getLabel().map(label -> label.getCode() + " ").orElse(""); 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 commentPrefix = leadingComments.stream() From 12436fe35eb0d0419a41981a095c4484962f4ae5 Mon Sep 17 00:00:00 2001 From: Process-ing Date: Tue, 4 Aug 2026 16:05:12 +0100 Subject: [PATCH 129/132] Fix Fortran-JS tests --- Fortran-JS/src-api/Query.test.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Fortran-JS/src-api/Query.test.ts b/Fortran-JS/src-api/Query.test.ts index 1d738d34..8e6d4528 100644 --- a/Fortran-JS/src-api/Query.test.ts +++ b/Fortran-JS/src-api/Query.test.ts @@ -590,9 +590,14 @@ describe("Query", () => { for (const stmt of Query.search(Statement)) { lst.push(stmt.code); } - expect(lst.length).toBe(2); - expect(lst[0]).toEqual('PRINT *, "Hello, World!"'); - expect(lst[1]).toEqual('PRINT "(A, F6.3)", "Value = ", 3'); + + console.log(lst); + + expect(lst.length).toBe(4); + expect(lst[0]).toEqual('PROGRAM HELLO'); + expect(lst[1]).toEqual('PRINT *, "Hello, World!"'); + expect(lst[2]).toEqual('PRINT "(A, F6.3)", "Value = ", 3'); + expect(lst[3]).toEqual('END PROGRAM HELLO'); }); it("should be able to insert code", () => { From 6943ec649ffd3acc9b1351038b32bd4de12ad499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Bispo?= Date: Tue, 4 Aug 2026 16:28:40 +0100 Subject: [PATCH 130/132] Updates Fortran-JS to version 22.1.0 --- Fortran-JS/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Fortran-JS/package.json b/Fortran-JS/package.json index e77a1b0a..7f1f3817 100644 --- a/Fortran-JS/package.json +++ b/Fortran-JS/package.json @@ -1,6 +1,6 @@ { "name": "@specs-feup/metafor", - "version": "22.0.0", + "version": "22.1.0", "description": "A Fortran source-to-source compiler written in Typescript", "type": "module", "files": [ From e62cadf50cabb38de661b6999017a61ce907f5ce Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 4 Aug 2026 17:31:04 +0100 Subject: [PATCH 131/132] fix: repair loop transformation legality --- Fortran-JS/eslint.config.js | 9 +- Fortran-JS/src-api/Joinpoints.ts | 13 -- .../LoopTransformations.integration.test.ts | 75 +++++++ .../src-api/LoopTransformations.test.ts | 122 +++++++++++ Fortran-JS/src-api/code/LoopAnalysis.ts | 193 ++++++++++++++++++ Fortran-JS/src-api/code/LoopFission.ts | 64 ++---- Fortran-JS/src-api/code/LoopFusion.ts | 29 ++- Fortran-JS/src-api/code/LoopInterchange.ts | 34 ++- Fortran-JS/src-api/code/LoopTiling.ts | 62 ++++-- Fortran-JS/src-api/code/LoopUnroll.ts | 4 +- Fortran-JS/src-api/pass/LoopFissionPass.ts | 8 +- Fortran-JS/src-api/pass/LoopFusionPass.ts | 157 ++------------ .../src-api/pass/LoopInterchangePass.ts | 34 ++- Fortran-JS/src-api/pass/LoopTilingPass.ts | 13 +- Fortran-JS/src-api/pass/LoopUnrollPass.ts | 16 +- Fortran-JS/src-code/sideEffects.ts | 5 + .../specs/fortran/ast/FortranNodeFactory.java | 10 +- .../fe/specs/fortran/ast/FortranAstTest.java | 15 ++ .../joinpoints/FAttributeSpecifier.java | 2 +- .../weaver/joinpoints/FInitialization.java | 2 +- .../weaver/joinpoints/FMainProgram.java | 2 +- .../weaver/joinpoints/FSpecification.java | 2 +- 22 files changed, 587 insertions(+), 284 deletions(-) create mode 100644 Fortran-JS/src-api/LoopTransformations.integration.test.ts create mode 100644 Fortran-JS/src-api/LoopTransformations.test.ts create mode 100644 Fortran-JS/src-api/code/LoopAnalysis.ts diff --git a/Fortran-JS/eslint.config.js b/Fortran-JS/eslint.config.js index 2ad231fb..3c89fa28 100644 --- a/Fortran-JS/eslint.config.js +++ b/Fortran-JS/eslint.config.js @@ -3,13 +3,17 @@ import tsdoc from "eslint-plugin-tsdoc"; import jest from "eslint-plugin-jest"; import js from "@eslint/js"; import eslintConfigPrettier from "eslint-config-prettier"; +import { dirname } from "node:path"; +import { fileURLToPath } from "node:url"; + +const tsconfigRootDir = dirname(fileURLToPath(import.meta.url)); export default [ js.configs.recommended, eslintConfigPrettier, ...typescriptEslint.configs.recommended, { - ignores: ["**/*.d.ts", "**/*.config.js"], + ignores: ["api/**", "code/**", "**/*.d.ts", "**/*.config.js"], }, { plugins: { @@ -18,13 +22,12 @@ export default [ }, languageOptions: { - tsconfigRootDir: __dirname, - parser: typescriptEslint.parser, ecmaVersion: 5, sourceType: "script", parserOptions: { + tsconfigRootDir, project: ["./*/tsconfig.json", "./tsconfig.*.json"], }, }, diff --git a/Fortran-JS/src-api/Joinpoints.ts b/Fortran-JS/src-api/Joinpoints.ts index e1ad693f..62950b1d 100644 --- a/Fortran-JS/src-api/Joinpoints.ts +++ b/Fortran-JS/src-api/Joinpoints.ts @@ -842,19 +842,6 @@ const JoinpointMapper = { ifStatement: IfStatement, ompBlockConstruct: OmpBlockConstruct, arraySubscriptExpr: ArraySubscriptExpr, - // Declaration/specification node types present in the Java weaverspecs but - // without dedicated TypeScript classes. Mapped to Statement so that - // Query.search and $jp.descendants traversals do not crash when encountering - // variable type declarations (e.g. `integer :: i, j`). - typeDeclarationStatement: Statement, - specificationStatement: Statement, - entityDecl: Statement, - fortranDecl: Statement, - exprInitialization: Statement, - initialization: Statement, - attributeSpecifier: Statement, - keywordAttributeSpecifier: Statement, - parameterKeyword: Statement, }; let registered = false; diff --git a/Fortran-JS/src-api/LoopTransformations.integration.test.ts b/Fortran-JS/src-api/LoopTransformations.integration.test.ts new file mode 100644 index 00000000..f0d257b2 --- /dev/null +++ b/Fortran-JS/src-api/LoopTransformations.integration.test.ts @@ -0,0 +1,75 @@ +import { readFileSync } from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { registerSourceCodes } from "@specs-feup/lara/jest/jestHelpers.js"; +import Query from "@specs-feup/lara/api/weaver/Query.js"; +import LoopInterchangePass from "./pass/LoopInterchangePass.js"; +import LoopTilingPass from "./pass/LoopTilingPass.js"; +import LoopUnrollPass from "./pass/LoopUnrollPass.js"; +import { canInterchange } from "./code/LoopInterchange.js"; +import { + DoStatement, + Joinpoint, + RangeLoopControl, + Subroutine, +} from "./Joinpoints.js"; + +const fixturePath = path.resolve( + path.dirname(fileURLToPath(import.meta.url)), + "../../FortranParser/resources-test/fortran/parser/polybench/3mm.json", +); + +describe("loop transformation integration", () => { + registerSourceCodes({ "3mm.json": readFileSync(fixturePath, "utf8") }); + + it("builds AST expressions while unrolling innermost loops", () => { + const root = Query.root() as Joinpoint; + + const result = new LoopUnrollPass(4).apply(root); + + expect(result.appliedPass).toBe(true); + expect(root.code).toContain("MOD("); + }); + + it("uses fresh names when tiling legal nests", () => { + const root = Query.root() as Joinpoint; + + const result = new LoopTilingPass(4).apply(root); + + expect(result.appliedPass).toBe(true); + expect(root.code).toContain("_tile"); + }); + + it("interchanges legal nests without crashing on dependent nests", () => { + const root = Query.root() as Joinpoint; + + const result = new LoopInterchangePass().apply(root); + + expect(result.appliedPass).toBe(true); + expect(root.code).toContain("DO"); + }); + + it("rejects the loop-carried dependency in the matrix multiply kernel", () => { + const kernel = Query.search(Subroutine, { moduleName: "kernel_3mm" }).getFirst(); + expect(kernel).toBeDefined(); + if (kernel === undefined) return; + + const pair = [...Query.searchFrom(kernel, DoStatement)].find((outer) => { + const outerControl = outer.control; + const body = outer.body.executableStmts; + const inner = body[0]; + + return outerControl instanceof RangeLoopControl + && outerControl.var.name === "i" + && body.length === 1 + && inner instanceof DoStatement + && inner.control instanceof RangeLoopControl + && inner.control.var.name === "j"; + }); + + expect(pair).toBeDefined(); + if (pair === undefined) return; + + expect(canInterchange(pair, pair.body.executableStmts[0] as DoStatement)).toBe(false); + }); +}); diff --git a/Fortran-JS/src-api/LoopTransformations.test.ts b/Fortran-JS/src-api/LoopTransformations.test.ts new file mode 100644 index 00000000..cf4677de --- /dev/null +++ b/Fortran-JS/src-api/LoopTransformations.test.ts @@ -0,0 +1,122 @@ +import { readFileSync } from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { registerSourceCodes } from "@specs-feup/lara/jest/jestHelpers.js"; +import Query from "@specs-feup/lara/api/weaver/Query.js"; +import FortranJoinPoints from "./FortranJoinPoints.js"; +import { canFuse } from "./code/LoopFusion.js"; +import { canInterchange } from "./code/LoopInterchange.js"; +import { canTile } from "./code/LoopTiling.js"; +import LoopFissionPass from "./pass/LoopFissionPass.js"; +import LoopFusionPass from "./pass/LoopFusionPass.js"; +import LoopUnrollPass from "./pass/LoopUnrollPass.js"; +import { DoStatement, Joinpoint, RangeLoopControl } from "./Joinpoints.js"; + +const testDirectory = path.dirname(fileURLToPath(import.meta.url)); +const parserFixtures = path.resolve(testDirectory, "../../FortranParser/resources-test/fortran/parser"); + +const sourceCodes = { + "do.json": readFileSync(path.join(parserFixtures, "do.json"), "utf8"), + "element_access.json": readFileSync( + path.join(parserFixtures, "arrays/element_access.json"), + "utf8", + ), +}; + +describe("loop transformations", () => { + registerSourceCodes(sourceCodes); + + it("traverses declaration and initialization joinpoints", () => { + const root = Query.root() as Joinpoint; + + expect(() => root.descendants).not.toThrow(); + expect([...Query.search(DoStatement)]).toHaveLength(3); + }); + + it("does not fission statements with a scalar dependency", () => { + const root = Query.root() as Joinpoint; + const before = root.code; + + const result = new LoopFissionPass().apply(root); + + expect(result.appliedPass).toBe(false); + expect(root.code).toBe(before); + }); + + it("does not unroll loops with an explicit step", () => { + const root = Query.root() as Joinpoint; + const before = root.code; + + const result = new LoopUnrollPass(4).apply(root); + + expect(result.appliedPass).toBe(false); + expect(root.code).toBe(before); + }); + + it("checks loop-control steps through the AST", () => { + const outerControl = FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef("i"), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("n"), + ); + const innerControl = FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef("j"), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("m"), + ); + innerControl.setStep(FortranJoinPoints.dataRef("i")); + + const outer = FortranJoinPoints.doStatement(outerControl); + const inner = FortranJoinPoints.doStatement(innerControl); + outer.body.insertEnd(inner); + + expect(canInterchange(outer, inner)).toBe(false); + expect(canTile(outer, inner)).toBe(false); + expect(outer.control).toBeInstanceOf(RangeLoopControl); + }); + + it("does not fuse loops from different parent scopes", () => { + const first = FortranJoinPoints.doStatement( + FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef("i"), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("n"), + ), + ); + const second = FortranJoinPoints.doStatement( + FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef("i"), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("n"), + ), + ); + + FortranJoinPoints.execution([first]); + FortranJoinPoints.execution([second]); + + expect(canFuse([first, second])).toBe(false); + }); + + it("fuses adjacent loops with the same range in one execution scope", () => { + const first = FortranJoinPoints.doStatement( + FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef("i"), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("n"), + ), + ); + const second = FortranJoinPoints.doStatement( + FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef("i"), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("n"), + ), + ); + const scope = FortranJoinPoints.execution([first, second]); + + const result = new LoopFusionPass().apply(scope); + + expect(result.appliedPass).toBe(true); + expect(scope.executableStmts).toHaveLength(1); + }); +}); diff --git a/Fortran-JS/src-api/code/LoopAnalysis.ts b/Fortran-JS/src-api/code/LoopAnalysis.ts new file mode 100644 index 00000000..3d539c98 --- /dev/null +++ b/Fortran-JS/src-api/code/LoopAnalysis.ts @@ -0,0 +1,193 @@ +import Query from "@specs-feup/lara/api/weaver/Query.js"; +import { + ArraySubscriptExpr, + AssignmentStatement, + DataRef, + DoStatement, + Expr, + Joinpoint, + RangeLoopControl, +} from "../Joinpoints.js"; + +export type ArrayAccess = { + name: string; +}; + +export type AccessSummary = { + scalarReads: Set; + scalarWrites: Set; + arrayReads: ArrayAccess[]; + arrayWrites: ArrayAccess[]; + hasUnknownStatement: boolean; +}; + +function emptySummary(): AccessSummary { + return { + scalarReads: new Set(), + scalarWrites: new Set(), + arrayReads: [], + arrayWrites: [], + hasUnknownStatement: false, + }; +} + +function mergeSummary(target: AccessSummary, source: AccessSummary): void { + for (const name of source.scalarReads) target.scalarReads.add(name); + for (const name of source.scalarWrites) target.scalarWrites.add(name); + target.arrayReads.push(...source.arrayReads); + target.arrayWrites.push(...source.arrayWrites); + target.hasUnknownStatement ||= source.hasUnknownStatement; +} + +function arrayNames(accesses: ArrayAccess[]): Set { + return new Set(accesses.map(({ name }) => name)); +} + +function intersects(left: Set, right: Set): boolean { + for (const value of left) { + if (right.has(value)) return true; + } + return false; +} + +/** + * Returns the scalar references in an expression. The data reference that is + * the base of an array access is excluded; its subscripts remain references. + */ +function scalarReferences(expression: Expr): Set { + const arrays = [...Query.searchFromInclusive(expression, ArraySubscriptExpr)]; + const arrayBases = arrays.map((array) => array.var); + const result = new Set(); + + for (const reference of Query.searchFromInclusive(expression, DataRef)) { + if (reference instanceof ArraySubscriptExpr) continue; + if (arrayBases.some((base) => base.equals(reference))) continue; + result.add(reference.name); + } + + return result; +} + +function arrayReads(expression: Expr): ArrayAccess[] { + return [...Query.searchFromInclusive(expression, ArraySubscriptExpr)].map( + (array) => ({ name: array.var.name }), + ); +} + +function summarizeAssignment(statement: AssignmentStatement): AccessSummary { + const result = emptySummary(); + const variable = statement.variable; + + if (variable instanceof ArraySubscriptExpr) { + result.arrayWrites.push({ name: variable.var.name }); + for (const name of scalarReferences(variable)) { + result.scalarReads.add(name); + } + } else { + result.scalarWrites.add(variable.name); + } + + for (const name of scalarReferences(statement.expr)) { + result.scalarReads.add(name); + } + result.arrayReads.push(...arrayReads(statement.expr)); + + return result; +} + +function summarizeStatement(statement: Joinpoint): AccessSummary { + if (statement instanceof AssignmentStatement) { + return summarizeAssignment(statement); + } + + if (statement instanceof DoStatement) { + const control = statement.control; + if (!(control instanceof RangeLoopControl)) { + return { ...emptySummary(), hasUnknownStatement: true }; + } + + const result = summarizeStatements(statement.body.executableStmts); + for (const expression of controlExpressions(control)) { + for (const name of scalarReferences(expression)) { + result.scalarReads.add(name); + } + } + return result; + } + + return { ...emptySummary(), hasUnknownStatement: true }; +} + +export function controlExpressions(control: RangeLoopControl): Expr[] { + const expressions = [control.lower, control.upper]; + if (control.step !== undefined) expressions.push(control.step); + return expressions; +} + +export function summarizeStatements( + statements: readonly Joinpoint[], +): AccessSummary { + const result = emptySummary(); + for (const statement of statements) { + mergeSummary(result, summarizeStatement(statement)); + } + return result; +} + +export function summarizeLoop(loop: DoStatement): AccessSummary { + return summarizeStatements(loop.body.executableStmts); +} + +/** + * Returns whether moving the two statement groups into one loop could change + * a dependency. The analysis deliberately rejects any shared array access + * involving a write because this API has no affine dependence solver. + */ +export function hasCrossGroupDependency( + first: AccessSummary, + second: AccessSummary, +): boolean { + if ( + intersects(first.scalarWrites, second.scalarReads) || + intersects(first.scalarWrites, second.scalarWrites) || + intersects(second.scalarWrites, first.scalarReads) + ) { + return true; + } + + const firstReadArrays = arrayNames(first.arrayReads); + const firstWriteArrays = arrayNames(first.arrayWrites); + const secondReadArrays = arrayNames(second.arrayReads); + const secondWriteArrays = arrayNames(second.arrayWrites); + + return ( + intersects(firstWriteArrays, secondReadArrays) || + intersects(firstWriteArrays, secondWriteArrays) || + intersects(secondWriteArrays, firstReadArrays) + ); +} + +/** + * Returns whether a loop body contains a dependence that makes loop-order + * transformations unsafe. Unknown statements are rejected conservatively. + */ +export function hasLoopCarriedDependency(summary: AccessSummary): boolean { + if (summary.hasUnknownStatement) return true; + + if (intersects(summary.scalarWrites, summary.scalarReads)) return true; + + const reads = arrayNames(summary.arrayReads); + const writes = arrayNames(summary.arrayWrites); + return intersects(reads, writes); +} + +export function referencesName(expression: Expr, name: string): boolean { + for (const reference of Query.searchFromInclusive(expression, DataRef)) { + if (reference instanceof ArraySubscriptExpr) { + if (reference.var.name === name) return true; + } else if (reference.name === name) { + return true; + } + } + return false; +} diff --git a/Fortran-JS/src-api/code/LoopFission.ts b/Fortran-JS/src-api/code/LoopFission.ts index a7b5593a..c887f529 100644 --- a/Fortran-JS/src-api/code/LoopFission.ts +++ b/Fortran-JS/src-api/code/LoopFission.ts @@ -1,6 +1,8 @@ -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { ArraySubscriptExpr, AssignmentStatement, DoStatement, Joinpoint, - RangeLoopControl } from "../Joinpoints.js"; +import { DoStatement, RangeLoopControl } from "../Joinpoints.js"; +import { + hasCrossGroupDependency, + summarizeStatements, +} from "./LoopAnalysis.js"; /** * Splits a do-loop with multiple body statements into one loop per statement. @@ -27,7 +29,6 @@ import { ArraySubscriptExpr, AssignmentStatement, DoStatement, Joinpoint, * @returns The replacement loops inserted into the AST, in source order. */ export default function loopFission($loop: DoStatement): DoStatement[] { - const copiedLoopScopeTemplate = $loop.copyScope() const statements = $loop.body.executableStmts const result: DoStatement[] = [] @@ -35,6 +36,7 @@ export default function loopFission($loop: DoStatement): DoStatement[] { return [$loop] } + const copiedLoopScopeTemplate = $loop.copyScope() for (const statement of statements) { const newCopy = copiedLoopScopeTemplate.copyScope() newCopy.body.insertBegin(statement) @@ -46,60 +48,18 @@ export default function loopFission($loop: DoStatement): DoStatement[] { return result } -function stmtArrayWrites(stmt: Joinpoint): Set { - const result = new Set(); - for (const assign of Query.searchFromInclusive(stmt, AssignmentStatement)) { - const lhs = assign.variable; - if (lhs instanceof ArraySubscriptExpr) result.add(lhs.var.name); - } - return result; -} - -function stmtArrayReads(stmt: Joinpoint): Set { - const result = new Set(); - for (const assign of Query.searchFromInclusive(stmt, AssignmentStatement)) { - for (const expr of Query.searchFromInclusive(assign.expr, ArraySubscriptExpr)) { - result.add(expr.var.name); - } - } - return result; -} - -function stmtScalarWrites(stmt: Joinpoint): string[] { - const result: string[] = []; - for (const assign of Query.searchFromInclusive(stmt, AssignmentStatement)) { - const lhs = assign.variable; - if (!(lhs instanceof ArraySubscriptExpr)) result.push(lhs.name); - } - return result; -} - export function canFission($loop: DoStatement): boolean { if (!($loop.control instanceof RangeLoopControl)) return false; const stmts = [...$loop.body.executableStmts]; if (stmts.length <= 1) return false; - const arrayReads = stmts.map(s => stmtArrayReads(s)); - const arrayWrites = stmts.map(s => stmtArrayWrites(s)); - const scalarWrites = stmts.map(s => stmtScalarWrites(s)); - - for (let j = 1; j < stmts.length; j++) { - // Check 1: scalar written in an earlier stmt appears in a later stmt's code. - // After fission, the later loop sees only the scalar value from its own - // iteration — it cannot observe the value threaded from the earlier loop. - for (let i = 0; i < j; i++) { - for (const sv of scalarWrites[i]) { - if (new RegExp(`\\b${sv}\\b`).test(stmts[j].code)) return false; - } - } + const summaries = stmts.map((statement) => summarizeStatements([statement])); + if (summaries.some((summary) => summary.hasUnknownStatement)) return false; - // Check 2: a later stmt writes an array that an earlier stmt reads. - // After fission, the earlier loop (for ALL iterations) runs before the - // later loop, so the earlier loop reads stale values for every iteration - // after the first one that the later loop would have updated. - for (const wName of arrayWrites[j]) { - for (let i = 0; i < j; i++) { - if (arrayReads[i].has(wName)) return false; + for (let first = 0; first < summaries.length; first++) { + for (let second = first + 1; second < summaries.length; second++) { + if (hasCrossGroupDependency(summaries[first], summaries[second])) { + return false; } } } diff --git a/Fortran-JS/src-api/code/LoopFusion.ts b/Fortran-JS/src-api/code/LoopFusion.ts index 989807f3..94d70011 100644 --- a/Fortran-JS/src-api/code/LoopFusion.ts +++ b/Fortran-JS/src-api/code/LoopFusion.ts @@ -1,4 +1,8 @@ import { DoStatement } from "../Joinpoints.js"; +import { + hasCrossGroupDependency, + summarizeLoop, +} from "./LoopAnalysis.js"; /** * Fuses an array of do-loops with identical range controls into a single loop. @@ -28,7 +32,9 @@ import { DoStatement } from "../Joinpoints.js"; * @returns The surviving first loop with all statements merged in. */ export default function loopFusion($loops: DoStatement[]): DoStatement { - if (!canFuse($loops)) throw new Error("Loops cannot be fused: need ≥2 range loops with identical boundaries"); + if (!canFuse($loops)) { + throw new Error("Loops cannot be fused: incompatible ranges, scopes, or dependencies"); + } const firstLoop = $loops[0]; @@ -44,6 +50,23 @@ export default function loopFusion($loops: DoStatement[]): DoStatement { export function canFuse($loops: DoStatement[]): boolean { if ($loops.length < 2) return false; - if ($loops.some(l => l.kind !== 'range')) return false; - return $loops.slice(1).every(l => $loops[0].sameScope(l)); + if ($loops.some((loop) => loop.kind !== "range")) return false; + if (!$loops.slice(1).every((loop) => $loops[0].sameScope(loop))) { + return false; + } + + for (let first = 0; first < $loops.length; first++) { + for (let second = first + 1; second < $loops.length; second++) { + if (!canFusePair($loops[first], $loops[second])) return false; + } + } + return true; +} + +export function canFusePair(first: DoStatement, second: DoStatement): boolean { + if (first.kind !== "range" || second.kind !== "range") return false; + if (!first.sameScope(second)) return false; + if (!first.parent?.equals(second.parent)) return false; + + return !hasCrossGroupDependency(summarizeLoop(first), summarizeLoop(second)); } diff --git a/Fortran-JS/src-api/code/LoopInterchange.ts b/Fortran-JS/src-api/code/LoopInterchange.ts index 8996716e..a7d64137 100644 --- a/Fortran-JS/src-api/code/LoopInterchange.ts +++ b/Fortran-JS/src-api/code/LoopInterchange.ts @@ -1,6 +1,12 @@ import Query from "@specs-feup/lara/api/weaver/Query.js"; import FortranJoinPoints from "../FortranJoinPoints.js"; import { DataRef, DoStatement, ExecutableStatement, RangeLoopControl } from "../Joinpoints.js"; +import { + controlExpressions, + hasLoopCarriedDependency, + referencesName, + summarizeLoop, +} from "./LoopAnalysis.js"; /** * Swaps the outer and inner loop of a perfect 2-deep nest. @@ -59,16 +65,36 @@ export default function loopInterchange(outer: DoStatement, inner: DoStatement): export function canInterchange(outer: DoStatement, inner: DoStatement): boolean { const oc = outer.control, ic = inner.control; if (!(oc instanceof RangeLoopControl && ic instanceof RangeLoopControl)) return false; + const outerBody = outer.body.executableStmts; + if (outerBody.length !== 1 || !(outerBody[0] instanceof DoStatement)) return false; + if (!outerBody[0].equals(inner)) return false; + const outerVar = oc.var.name; + const innerVar = ic.var.name; + if (outerVar === innerVar) return false; - // Check 1: triangular inner bounds — inner bound references outer variable - if (ic.lower.code.includes(outerVar) || ic.upper.code.includes(outerVar)) return false; + // A control expression that references the other loop variable changes its + // meaning when that control is moved to the other loop level. + if (controlExpressions(ic).some((expression) => referencesName(expression, outerVar))) { + return false; + } + if (controlExpressions(oc).some((expression) => referencesName(expression, innerVar))) { + return false; + } - // Check 2: nested DO inside body uses outer variable in its bounds + // Nested loop controls are evaluated at a different point after interchange. for (const nested of Query.searchFrom(inner.body, DoStatement)) { const nc = nested.control; if (!(nc instanceof RangeLoopControl)) continue; - if (nc.lower.code.includes(outerVar) || nc.upper.code.includes(outerVar)) return false; + if (controlExpressions(nc).some((expression) => referencesName(expression, outerVar))) { + return false; + } } + + // Reordering a loop nest with a dependence in its body changes the order in + // which values become available. Without an affine dependence solver, reject + // bodies with a detectable loop-carried read/write dependence. + if (hasLoopCarriedDependency(summarizeLoop(inner))) return false; + return true; } diff --git a/Fortran-JS/src-api/code/LoopTiling.ts b/Fortran-JS/src-api/code/LoopTiling.ts index 4ba8c349..c93deb93 100644 --- a/Fortran-JS/src-api/code/LoopTiling.ts +++ b/Fortran-JS/src-api/code/LoopTiling.ts @@ -1,6 +1,19 @@ import Query from "@specs-feup/lara/api/weaver/Query.js"; import FortranJoinPoints from "../FortranJoinPoints.js"; -import { DataRef, DoStatement, ExecutableStatement, RangeLoopControl } from "../Joinpoints.js"; +import { + ArraySubscriptExpr, + DataRef, + DoStatement, + EntityDecl, + ExecutableStatement, + RangeLoopControl, +} from "../Joinpoints.js"; +import { + controlExpressions, + hasLoopCarriedDependency, + referencesName, + summarizeLoop, +} from "./LoopAnalysis.js"; /** * Tiles a perfect 2-deep loop nest by `tileSize`. @@ -29,12 +42,21 @@ import { DataRef, DoStatement, ExecutableStatement, RangeLoopControl } from "../ * Returns unchanged `[outer]` if either loop is not a unit-step range loop. */ export default function loopTile(outer: DoStatement, inner: DoStatement, tileSize: number): DoStatement[] { - if (!canTile(outer, inner)) return [outer]; + if (!Number.isInteger(tileSize) || tileSize <= 0 || !canTile(outer, inner)) { + return [outer]; + } const oc = outer.control as RangeLoopControl; const ic = inner.control as RangeLoopControl; - const ovt = oc.var.name.repeat(2); - const ivt = ic.var.name.repeat(2); + const usedNames = new Set([ + ...[...Query.searchFromInclusive(outer.root, DataRef)].map((reference) => + reference instanceof ArraySubscriptExpr ? reference.var.name : reference.name, + ), + ...[...Query.searchFromInclusive(outer.root, EntityDecl)].map((declaration) => declaration.name), + ]); + const ovt = freshName(`${oc.var.name}_tile`, usedNames); + usedNames.add(ovt); + const ivt = freshName(`${ic.var.name}_tile`, usedNames); // Outer tile loop: ii = lo_i, hi_i, TILE const outerTileCtrl = FortranJoinPoints.rangeLoopControl( @@ -86,26 +108,42 @@ export default function loopTile(outer: DoStatement, inner: DoStatement, tileSiz return [outerTileDo]; } -function containsVar(code: string, varName: string): boolean { - return new RegExp(`\\b${varName}\\b`).test(code); +function freshName(preferred: string, usedNames: Set): string { + let name = preferred; + let suffix = 2; + while (usedNames.has(name)) { + name = `${preferred}_${suffix}`; + suffix++; + } + return name; } export function canTile(outer: DoStatement, inner: DoStatement): boolean { const oc = outer.control, ic = inner.control; if (!(oc instanceof RangeLoopControl && ic instanceof RangeLoopControl)) return false; + const outerBody = outer.body.executableStmts; + if (outerBody.length !== 1 || !(outerBody[0] instanceof DoStatement)) return false; + if (!outerBody[0].equals(inner)) return false; + if (oc.var.name === ic.var.name) return false; if (oc.step !== undefined || ic.step !== undefined) return false; const outerVar = oc.var.name; - // Check 1: triangular inner bounds — inner bound references outer variable - if (containsVar(ic.lower.code, outerVar) || containsVar(ic.upper.code, outerVar)) return false; + // A control expression that references the outer variable describes a + // triangular or otherwise non-rectangular iteration space. Strip-mining it + // would change the set of iterations. + if (controlExpressions(ic).some((expression) => referencesName(expression, outerVar))) { + return false; + } - // Check 2: nested DO inside inner body uses outer variable in its bounds + // Nested controls are also evaluated at a different point after tiling. for (const nested of Query.searchFrom(inner.body, DoStatement)) { const nc = nested.control; if (!(nc instanceof RangeLoopControl)) continue; - if (containsVar(nc.lower.code, outerVar) || containsVar(nc.upper.code, outerVar)) return false; + if (controlExpressions(nc).some((expression) => referencesName(expression, outerVar))) { + return false; + } } - return true; -} \ No newline at end of file + return !hasLoopCarriedDependency(summarizeLoop(inner)); +} diff --git a/Fortran-JS/src-api/code/LoopUnroll.ts b/Fortran-JS/src-api/code/LoopUnroll.ts index c12b7d61..747d3ec4 100644 --- a/Fortran-JS/src-api/code/LoopUnroll.ts +++ b/Fortran-JS/src-api/code/LoopUnroll.ts @@ -30,7 +30,7 @@ function substituteVar(stmt: ExecutableStatement, varName: string, offset: numbe * Two loops replace the original: * - A **main loop** that steps by `factor`, with the body replicated `factor` * times (each copy substitutes `var` with `(var+offset)` for offset 0..factor-1). - * - A **cleanup loop** that handles the remaining < `factor` iterations with the + * - A **cleanup loop** that handles the iterations left after the main loop with the * original body. When `factor` exactly divides the trip count, the cleanup * loop's bounds produce a no-op and it generates no iterations. * @@ -111,6 +111,6 @@ export default function loopUnroll($loop: DoStatement, factor: number): DoStatem export function canUnroll($loop: DoStatement, factor: number = 2): boolean { if (!($loop.control instanceof RangeLoopControl)) return false; - if (factor <= 1) return false; + if (!Number.isInteger(factor) || factor <= 1) return false; return ($loop.control as RangeLoopControl).step === undefined; } diff --git a/Fortran-JS/src-api/pass/LoopFissionPass.ts b/Fortran-JS/src-api/pass/LoopFissionPass.ts index 59b5daa9..e8e9e028 100644 --- a/Fortran-JS/src-api/pass/LoopFissionPass.ts +++ b/Fortran-JS/src-api/pass/LoopFissionPass.ts @@ -30,9 +30,7 @@ export default class LoopFissionPass extends Pass { /** Yields every eligible do-loop in the subtree: range loops with more than one body statement. */ protected *_findLoops($jp: Joinpoint): Generator { - let children: Joinpoint[]; - try { children = [...$jp.children]; } catch (_) { return; } - for (const child of children) { + for (const child of $jp.children) { yield* this._findLoops(child); } if ($jp instanceof DoStatement && canFission($jp)) { @@ -42,6 +40,6 @@ export default class LoopFissionPass extends Pass { /** Applies loop fission to a single loop, replacing it in the AST with one loop per body statement. */ protected _loopFission(loop: DoStatement) { - loopFission(loop) + loopFission(loop); } -} \ No newline at end of file +} diff --git a/Fortran-JS/src-api/pass/LoopFusionPass.ts b/Fortran-JS/src-api/pass/LoopFusionPass.ts index e5502e3e..df3253f5 100644 --- a/Fortran-JS/src-api/pass/LoopFusionPass.ts +++ b/Fortran-JS/src-api/pass/LoopFusionPass.ts @@ -1,51 +1,7 @@ import Pass from "@specs-feup/lara/api/lara/pass/Pass.js"; import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { ArraySubscriptExpr, AssignmentStatement, DoStatement, Joinpoint, RangeLoopControl } from "../Joinpoints.js"; -import loopFusion from "../code/LoopFusion.js"; - -type ArrayAccess = { arrayName: string; subCodes: string[] }; - -function loopWrites(loop: DoStatement): ArrayAccess[] { - const result: ArrayAccess[] = []; - for (const stmt of Query.searchFrom(loop.body, AssignmentStatement)) { - const lhs = stmt.variable; - if (lhs instanceof ArraySubscriptExpr) { - // .name on ArraySubscriptExpr is ""; the array identifier is at .var.name - result.push({ arrayName: lhs.var.name, subCodes: lhs.subscripts.map(s => s.code) }); - } - } - return result; -} - -function loopReads(loop: DoStatement): ArrayAccess[] { - const result: ArrayAccess[] = []; - for (const stmt of Query.searchFrom(loop.body, AssignmentStatement)) { - for (const expr of Query.searchFromInclusive(stmt.expr, ArraySubscriptExpr)) { - result.push({ arrayName: expr.var.name, subCodes: expr.subscripts.map(s => s.code) }); - } - } - return result; -} - -function innerLoopVars(loop: DoStatement): Set { - const vars = new Set(); - for (const nested of Query.searchFrom(loop.body, DoStatement)) { - if (nested.kind === 'range') { - const ctl = nested.control; - if (ctl instanceof RangeLoopControl) vars.add(ctl.var.name); - } - } - return vars; -} - -function hasVar(code: string, varName: string): boolean { - return new RegExp(`\\b${varName}\\b`).test(code); -} - -function hasAnyVar(code: string, vars: Set): boolean { - return [...vars].some(v => hasVar(code, v)); -} +import { DoStatement, Joinpoint } from "../Joinpoints.js"; +import loopFusion, { canFusePair } from "../code/LoopFusion.js"; /** * Pass that fuses consecutive range do-loops with identical boundaries into a @@ -53,21 +9,9 @@ function hasAnyVar(code: string, vars: Set): boolean { * * At each scope level, adjacent do-loops that share the same range control are * grouped and fused into the first loop of each group. Groups are split at any - * pair that fails a legality check: - * - * - Check A: a write in loop A has a subscript that does not contain the fusion - * variable (the same element is written/accumulated on every iteration) and the - * same array is read in loop B — the reader would see a partial value. - * - * - Check B: array X is written in loop A as `X(inner, fusion_var)` (column-major) - * and read in loop B as `X(fusion_var, inner)` (row-major) — a cross-iteration - * transposed dependency. - * - * - Check C: array X is written in one loop with a subscript that contains the - * fusion variable but no inner loop variable (one element per fusion iteration), - * and read in the other loop with a subscript that contains an inner loop - * variable (reads across the full range) — a forward or backward cross-iteration - * dependency. + * pair with a dependency detected by the AST access summary. The legality + * analysis is deliberately conservative because this API does not yet perform + * affine dependence tests. * * @example * const pass = new LoopFusionPass(); @@ -91,9 +35,7 @@ export default class LoopFusionPass extends Pass { * inner loops are fused before their containing scope is inspected. */ protected *_findAllFusableSets($jp: Joinpoint): Generator { - let children: Joinpoint[]; - try { children = [...$jp.children]; } catch (_) { children = []; } - for (const child of children) { + for (const child of $jp.children) { yield* this._findAllFusableSets(child); } for (const set of this._findFusableSets($jp)) { @@ -103,23 +45,20 @@ export default class LoopFusionPass extends Pass { /** * Returns groups of consecutive range do-loops among the direct children of - * `$jp` that share identical loop boundaries and pass all three legality - * checks. Groups are split whenever a consecutive pair is illegal; only - * groups of length ≥ 2 are returned. + * `$jp` that share identical loop boundaries and pass the legality check. + * Groups are split whenever a consecutive pair is illegal; only groups of + * length at least two are returned. */ protected _findFusableSets($jp: Joinpoint): DoStatement[][] { const result: DoStatement[][] = []; let group: DoStatement[] = []; - let children: Joinpoint[]; - try { children = [...$jp.children]; } catch (_) { return result; } - - for (const child of children) { - if (child instanceof DoStatement && child.kind === 'range') { + for (const child of $jp.children) { + if (child instanceof DoStatement && child.kind === "range") { if (group.length === 0) { group = [child]; } else if (group[0].sameScope(child)) { - if (this._canFusePair(group[group.length - 1], child)) { + if (group.every((existing) => canFusePair(existing, child))) { group.push(child); } else { if (group.length >= 2) result.push(group); @@ -137,76 +76,4 @@ export default class LoopFusionPass extends Pass { if (group.length >= 2) result.push(group); return result; } - - /** - * Returns false if fusing `a` immediately before `b` would violate one of - * three dependency patterns detectable from the AST. - */ - protected _canFusePair(a: DoStatement, b: DoStatement): boolean { - const fv = (a.control as RangeLoopControl).var.name; - const ivA = innerLoopVars(a); - const ivB = innerLoopVars(b); - - const writesA = loopWrites(a); - const writesB = loopWrites(b); - const readsA = loopReads(a); - const readsB = loopReads(b); - - const readNamesA = new Set(readsA.map(r => r.arrayName)); - const readNamesB = new Set(readsB.map(r => r.arrayName)); - - // Check A: write subscript contains no instance of the fusion variable → - // the same array element is modified on every fusion iteration. - // If the other loop reads that element, it will see an incomplete value. - for (const w of writesA) { - if (!w.subCodes.some(sc => hasVar(sc, fv)) && readNamesB.has(w.arrayName)) return false; - } - for (const w of writesB) { - if (!w.subCodes.some(sc => hasVar(sc, fv)) && readNamesA.has(w.arrayName)) return false; - } - - // Check B: array X written as X(inner_var, fv) in one loop and read as - // X(fv, inner_var) in the other — transposed cross-iteration dependency. - const checkTransposed = ( - writes: ArrayAccess[], reads: ArrayAccess[], - writeIV: Set, readIV: Set - ) => { - for (const w of writes) { - if (w.subCodes.length !== 2) continue; - const [ws0, ws1] = w.subCodes; - if (!hasAnyVar(ws0, writeIV) || !hasVar(ws1, fv)) continue; - for (const r of reads) { - if (r.arrayName !== w.arrayName || r.subCodes.length !== 2) continue; - const [rs0, rs1] = r.subCodes; - if (hasVar(rs0, fv) && hasAnyVar(rs1, readIV)) return true; - } - } - return false; - }; - if (checkTransposed(writesA, readsB, ivA, ivB)) return false; - if (checkTransposed(writesB, readsA, ivB, ivA)) return false; - - // Check C: array X written with a subscript that contains the fusion - // variable but no inner loop variable (one element per fusion iteration), - // and read by the other loop with a subscript that contains an inner loop - // variable (reads across the full range within one fusion iteration). - const checkOnePerIter = ( - writes: ArrayAccess[], reads: ArrayAccess[], - writeIV: Set, readIV: Set - ) => { - for (const w of writes) { - const allSubs = w.subCodes.join(' '); - if (!hasVar(allSubs, fv) || hasAnyVar(allSubs, writeIV)) continue; - for (const r of reads) { - if (r.arrayName !== w.arrayName) continue; - if (hasAnyVar(r.subCodes.join(' '), readIV)) return true; - } - } - return false; - }; - if (checkOnePerIter(writesA, readsB, ivA, ivB)) return false; - if (checkOnePerIter(writesB, readsA, ivB, ivA)) return false; - - return true; - } } diff --git a/Fortran-JS/src-api/pass/LoopInterchangePass.ts b/Fortran-JS/src-api/pass/LoopInterchangePass.ts index 1be344a5..c3626d22 100644 --- a/Fortran-JS/src-api/pass/LoopInterchangePass.ts +++ b/Fortran-JS/src-api/pass/LoopInterchangePass.ts @@ -1,7 +1,7 @@ import Pass from "@specs-feup/lara/api/lara/pass/Pass.js"; import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { DoStatement, Joinpoint, RangeLoopControl } from "../Joinpoints.js"; +import { DoStatement, Joinpoint } from "../Joinpoints.js"; import loopInterchange, { canInterchange } from "../code/LoopInterchange.js"; /** @@ -34,33 +34,23 @@ export default class LoopInterchangePass extends Pass { } protected _findInterchangeablePairs($jp: Joinpoint): { outer: DoStatement; inner: DoStatement }[] { - // Collect all structural 2-deep perfect nests regardless of legality. - // innerSet must be built from ALL pairs so that nests deeper than 2 are - // handled correctly: an inner pair nested inside an illegal outer pair must - // not be interchanged either (its "outer" loop is still the inner of an - // unprocessed pair and evaluation-order constraints may still apply). + // Collect all structural pairs before applying legality checks. Filtering + // with AST containment keeps independent nests that reuse the same loop + // variable eligible and avoids relying on proxy object identity. const allPairs: { outer: DoStatement; inner: DoStatement }[] = []; - for (const loop of Query.searchFrom($jp, DoStatement)) { + for (const loop of Query.searchFromInclusive($jp, DoStatement)) { const stmts = loop.body.executableStmts; if (stmts.length === 1 && stmts[0] instanceof DoStatement) { allPairs.push({ outer: loop, inner: stmts[0] as DoStatement }); } } - // LARA wraps each AST node in a new JS proxy on every access, so JS object - // identity cannot be used to detect that the same loop appears as both an - // outer in one pair and an inner in another. Key by loop variable name - // instead — unique per subroutine for PolyBench's affine loops. - const innerVarNames = new Set( - allPairs - .map(p => p.inner.control) - .filter((c): c is RangeLoopControl => c instanceof RangeLoopControl) - .map(c => c.var.name) + + const outermostPairs = allPairs.filter(({ outer }, index) => + !allPairs.some((candidate, candidateIndex) => + candidateIndex !== index && candidate.outer.contains(outer), + ), ); - return allPairs - .filter(({ outer }) => { - const oc = outer.control; - return !(oc instanceof RangeLoopControl && innerVarNames.has(oc.var.name)); - }) - .filter(({ outer, inner }) => canInterchange(outer, inner)); + + return outermostPairs.filter(({ outer, inner }) => canInterchange(outer, inner)); } } diff --git a/Fortran-JS/src-api/pass/LoopTilingPass.ts b/Fortran-JS/src-api/pass/LoopTilingPass.ts index 64218655..553bbb48 100644 --- a/Fortran-JS/src-api/pass/LoopTilingPass.ts +++ b/Fortran-JS/src-api/pass/LoopTilingPass.ts @@ -24,6 +24,10 @@ export default class LoopTilingPass extends Pass { } protected _apply_impl($jp: Joinpoint): PassResult { + if (!Number.isInteger(this.tileSize) || this.tileSize <= 0) { + return new PassResult(this, $jp, { appliedPass: false, insertedLiteralCode: false }); + } + const pairs = this._findTileablePairs($jp); let appliedPass = false; for (const { outer, inner } of pairs) { @@ -35,14 +39,17 @@ export default class LoopTilingPass extends Pass { protected _findTileablePairs($jp: Joinpoint): { outer: DoStatement; inner: DoStatement }[] { const pairs: { outer: DoStatement; inner: DoStatement }[] = []; - for (const loop of Query.searchFrom($jp, DoStatement)) { + for (const loop of Query.searchFromInclusive($jp, DoStatement)) { const stmts = loop.body.executableStmts; if (stmts.length === 1 && stmts[0] instanceof DoStatement && canTile(loop, stmts[0] as DoStatement)) { pairs.push({ outer: loop, inner: stmts[0] as DoStatement }); } } - const innerSet = new Set(pairs.map(p => p.inner)); - return pairs.filter(p => !innerSet.has(p.outer)); + return pairs.filter(({ outer }, index) => + !pairs.some((candidate, candidateIndex) => + candidateIndex !== index && candidate.outer.contains(outer), + ), + ); } } diff --git a/Fortran-JS/src-api/pass/LoopUnrollPass.ts b/Fortran-JS/src-api/pass/LoopUnrollPass.ts index 304b97e2..a8b02265 100644 --- a/Fortran-JS/src-api/pass/LoopUnrollPass.ts +++ b/Fortran-JS/src-api/pass/LoopUnrollPass.ts @@ -38,28 +38,16 @@ export default class LoopUnrollPass extends Pass { * A loop is innermost when none of its descendants is a do-loop. * Recursion does not descend into innermost loops. * - * The try/catch around children access guards against staging-branch AST - * nodes (e.g. attributeSpecifier) whose underlying Java joinpoint has a null - * node, causing a NullPointerException when `.children` is accessed. */ protected *_findInnermostLoops($jp: Joinpoint): Generator { if ($jp instanceof DoStatement) { - let hasNestedLoop = false; - try { - hasNestedLoop = $jp.descendants.some(d => d instanceof DoStatement); - } catch (_) { /* unmapped descendant — treat as no nested loop */ } + const hasNestedLoop = $jp.descendants.some((d) => d instanceof DoStatement); if (!hasNestedLoop && canUnroll($jp, this.factor)) { yield $jp; return; } } - let children: Joinpoint[]; - try { - children = [...$jp.children]; - } catch (_) { - return; // skip nodes whose children cannot be accessed - } - for (const child of children) { + for (const child of $jp.children) { yield* this._findInnermostLoops(child); } } diff --git a/Fortran-JS/src-code/sideEffects.ts b/Fortran-JS/src-code/sideEffects.ts index 1da5e05e..3e865e54 100644 --- a/Fortran-JS/src-code/sideEffects.ts +++ b/Fortran-JS/src-code/sideEffects.ts @@ -1,5 +1,10 @@ import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import Weaver from "@specs-feup/lara/api/weaver/Weaver.js"; + +// Keep these imports evaluated when the Weaver loads this side-effect module. +void JavaTypes; +void Weaver; + /* const CxxWeaverOptions = JavaTypes.getType( "pt.up.fe.specs.clava.weaver.options.CxxWeaverOption" 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 2381f5ed..7afe0ef3 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranNodeFactory.java @@ -80,6 +80,12 @@ public DataStore newDataStore(Class nodeClass, String id) data.set(FortranNode.ID, context.get(FortranContext.ID_GENERATOR).next("node_")); } + // Factory-created statements do not pass through StmtProcessors::stmt(), + // which normally initializes this required key. + if (Stmt.class.isAssignableFrom(nodeClass)) { + initComments(data); + } + return data; } @@ -327,9 +333,9 @@ public RangeLoopControl rangeLoopControl(DataRef var, Expr lower, Expr upper) { public DoConstruct doConstruct(LoopControl control) { DataStore data = newDataStore(DoConstruct.class); - DoStmt doStmt = new DoStmt(data, List.of(control)); + DoStmt doStmt = newNode(DoStmt.class, List.of(control)); Execution body = execution(Collections.emptyList()); - EndDoStmt endDoStmt = new EndDoStmt(data, Collections.emptyList()); + EndDoStmt endDoStmt = newNode(EndDoStmt.class, Collections.emptyList()); return new DoConstruct(data, List.of(doStmt, body, endDoStmt)); } 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..e85e07c0 100644 --- a/FortranAst/test/pt/up/fe/specs/fortran/ast/FortranAstTest.java +++ b/FortranAst/test/pt/up/fe/specs/fortran/ast/FortranAstTest.java @@ -12,6 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assertions.assertTrue; public class FortranAstTest { @@ -63,5 +64,19 @@ void testHelloWorld() { test("hello.f90", program); } + @Test + void testDoConstructInitializesStatementMetadata() { + var control = factory.rangeLoopControl( + factory.dataRef("i"), + factory.intLiteral(1), + factory.intLiteral(4) + ); + + var code = factory.doConstruct(control).getCode(); + + assertTrue(code.contains("DO i = 1, 4")); + assertTrue(code.contains("END DO")); + } + } 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 index a1a5ea8c..db762210 100644 --- a/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttributeSpecifier.java +++ b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/joinpoints/FAttributeSpecifier.java @@ -14,6 +14,6 @@ public FAttributeSpecifier(AttributeSpecifier attributeSpecifier) { @Override public FortranNode getNode() { - return null; + return attributeSpecifier; } } 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..8aa91e96 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 @@ -14,6 +14,6 @@ public FInitialization(Initialization initialization) { @Override public FortranNode getNode() { - return null; + return initialization; } } 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..3470145e 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 @@ -15,6 +15,6 @@ public FMainProgram(MainProgram mainProgram) { @Override public FortranNode getNode() { - return null; + return mainProgram; } } 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..3f7ed95b 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 @@ -34,6 +34,6 @@ public void addUseStmtImpl(AUseStatement stmt) { @Override public FortranNode getNode() { - return null; + return specification; } } From 48cff8e5dbbbe57def8ea5752ea93a6976b84e07 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 4 Aug 2026 17:44:14 +0100 Subject: [PATCH 132/132] test: cover structural loop pair identity --- .../src-api/LoopTransformations.test.ts | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/Fortran-JS/src-api/LoopTransformations.test.ts b/Fortran-JS/src-api/LoopTransformations.test.ts index cf4677de..592371a0 100644 --- a/Fortran-JS/src-api/LoopTransformations.test.ts +++ b/Fortran-JS/src-api/LoopTransformations.test.ts @@ -9,6 +9,7 @@ import { canInterchange } from "./code/LoopInterchange.js"; import { canTile } from "./code/LoopTiling.js"; import LoopFissionPass from "./pass/LoopFissionPass.js"; import LoopFusionPass from "./pass/LoopFusionPass.js"; +import LoopInterchangePass from "./pass/LoopInterchangePass.js"; import LoopUnrollPass from "./pass/LoopUnrollPass.js"; import { DoStatement, Joinpoint, RangeLoopControl } from "./Joinpoints.js"; @@ -119,4 +120,44 @@ describe("loop transformations", () => { expect(result.appliedPass).toBe(true); expect(scope.executableStmts).toHaveLength(1); }); + + it("keeps independent interchange pairs separate when iterator names are reused", () => { + const makeNest = (outerName: string, innerName: string): DoStatement => { + const outer = FortranJoinPoints.doStatement( + FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef(outerName), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("n"), + ), + ); + const inner = FortranJoinPoints.doStatement( + FortranJoinPoints.rangeLoopControl( + FortranJoinPoints.dataRef(innerName), + FortranJoinPoints.intLiteral(1), + FortranJoinPoints.dataRef("m"), + ), + ); + outer.body.insertEnd(inner); + return outer; + }; + + const scope = FortranJoinPoints.execution([ + makeNest("i", "j"), + makeNest("j", "k"), + ]); + + const result = new LoopInterchangePass().apply(scope); + + expect(result.appliedPass).toBe(true); + const loops = scope.executableStmts.filter( + (statement): statement is DoStatement => statement instanceof DoStatement, + ); + expect(loops).toHaveLength(2); + const loopVariables = loops.map((loop) => { + const control = loop.control; + if (!(control instanceof RangeLoopControl)) throw new Error("Expected a range loop"); + return control.var.name; + }); + expect(loopVariables).toEqual(["j", "k"]); + }); });