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 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f6b0a0d9..a0ef9b3d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -136,7 +136,6 @@ jobs: matrix: #node-version: ['latest', '22.x', '20.x'] node-version: ['22.x', '20.x'] - # node-gyp not working on the lastest windows (2025), needs to be updated os: [ubuntu-latest, windows-2022, macos-latest] runs-on: ${{ matrix.os }} 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/ 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/metafor_fujitsu_pipeline.py b/Fortran-JS/metafor_fujitsu_pipeline.py index 8772e32b..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") @@ -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,18 @@ 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_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_norm.write_text( + normalize_llvm_ir(regenerated_ir.read_text(encoding="utf-8", errors="replace")), + encoding="utf-8", + ) + + 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" @@ -469,7 +486,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 +494,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 +526,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 +801,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 +817,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 +845,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", @@ -846,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 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": [ diff --git a/Fortran-JS/src-api/Joinpoints.ts b/Fortran-JS/src-api/Joinpoints.ts index f0306e0c..62950b1d 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, @@ -159,6 +168,15 @@ export class Joinpoint extends LaraJoinPoint { replaceWith(p1: Joinpoint | Joinpoint[]): Joinpoint { return wrapJoinPoint(this._javaObject.replaceWith(unwrapJoinPoint(p1))); } } +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 */ @@ -231,6 +249,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 */ @@ -258,6 +285,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 */ @@ -338,6 +383,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 */ @@ -479,6 +533,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 */ @@ -503,6 +567,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 */ @@ -575,12 +649,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 */ @@ -697,13 +792,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, @@ -711,6 +810,7 @@ const JoinpointMapper = { ompDataSharingClause: OmpDataSharingClause, ompOrderedClause: OmpOrderedClause, ompReductionClause: OmpReductionClause, + parameterKeyword: ParameterKeyword, program: Program, programUnit: ProgramUnit, rangeLoopControl: RangeLoopControl, @@ -722,14 +822,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, @@ -738,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..592371a0 --- /dev/null +++ b/Fortran-JS/src-api/LoopTransformations.test.ts @@ -0,0 +1,163 @@ +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 LoopInterchangePass from "./pass/LoopInterchangePass.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); + }); + + 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"]); + }); +}); 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", () => { 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/FortranKeyword.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java index a656cdb5..c75ffe1b 100644 --- a/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/FortranKeyword.java @@ -5,8 +5,13 @@ public enum FortranKeyword { PROGRAM, CONCURRENT, SUBROUTINE, + FUNCTION, WRITE, USE, + GOTO, + EXTERNAL, + RETURN, + STOP, // Execution statements PRINT, @@ -14,9 +19,9 @@ public enum FortranKeyword { WHILE, GO, TO, - STOP, ERROR, QUIET, + CALL, // Conditional statements IF, @@ -37,6 +42,8 @@ public enum FortranKeyword { // Declarations PARAMETER, + DATA, + COMMON, OMP; 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 915bf48e..7afe0ef3 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,9 @@ 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.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; @@ -77,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; } @@ -121,17 +130,30 @@ 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.PROGRAM_NAME, Optional.ofNullable(programName)); + data.set(MainProgram.NAME, Optional.ofNullable(programName)); + var programStmt = newNode(ProgramStmt.class, Collections.emptyList()); + initComments(programStmt); var executionBlock = execution(execution); + var endProgramStmt = newNode(EndProgramStmt.class, Collections.emptyList()); + initComments(endProgramStmt); - return new MainProgram(data, List.of(executionBlock)); + return new MainProgram(data, List.of(programStmt, executionBlock, endProgramStmt)); } public Execution execution(List statements) { @@ -148,6 +170,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)); } @@ -155,6 +178,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()); } @@ -219,12 +243,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; } @@ -306,10 +330,14 @@ 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 doConstruct(LoopControl control) { + DataStore data = newDataStore(DoConstruct.class); + + DoStmt doStmt = newNode(DoStmt.class, List.of(control)); Execution body = execution(Collections.emptyList()); - return new DoStmt(data, Arrays.asList(control, body)); + EndDoStmt endDoStmt = newNode(EndDoStmt.class, Collections.emptyList()); + + return new DoConstruct(data, List.of(doStmt, body, endDoStmt)); } public Argument argument(Expr expr) { 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/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/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(", ")) + ")"; } 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..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,8 +4,10 @@ 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; public class DataRef extends Designator { // DATAKEYS BEGIN @@ -15,6 +17,7 @@ public class DataRef extends Designator { */ public final static DataKey NAME = KeyFactory.string("name"); + public final static DataKey> SCOPE = KeyFactory.optional("scope"); // DATAKEYS END @@ -26,6 +29,10 @@ public String getName() { return get(NAME); } + public Optional getScope() { + return get(SCOPE); + } + @Override public String getCode() { return get(NAME); 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..f10666d7 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/Subscript.java @@ -0,0 +1,23 @@ +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); + } + + @Override + public String getCode() { + var value = getValue(); + + return value.getCode(); + } +} 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..dd7ae43d --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/expr/SubscriptTriplet.java @@ -0,0 +1,53 @@ +package pt.up.fe.specs.fortran.ast.nodes.expr; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.Optional; + +public class 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 Optional getStart() { + return get(HAS_START) + ? Optional.of(getChild(Expr.class, 0)) + : Optional.empty(); + } + + public Optional getEnd() { + return get(HAS_END) + ? Optional.of(getChild(Expr.class, get(HAS_START) ? 1 : 0)) + : Optional.empty(); + } + + public Optional getStride() { + return get(HAS_STRIDE) + ? 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(); + } +} 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/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/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..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 @@ -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/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/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/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/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/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..ce48b156 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/Function.java @@ -0,0 +1,50 @@ +package pt.up.fe.specs.fortran.ast.nodes.program; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.expr.DataRef; + +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +import static pt.up.fe.specs.fortran.ast.FortranKeyword.*; + +public class Function extends ProgramUnit { + + public final static DataKey FUNCTION_NAME = KeyFactory.string("programName"); + + public Function(DataStore data, Collection children) { + super(data, children); + } + + public List getArgs() { + return getChildrenOf(DataRef.class); + } + + @Override + public String getCode() { + + var code = new StringBuilder(); + + var argCode = "(" + + getArgs().stream() + .map(DataRef::getCode) + .collect(Collectors.joining(", ")) + + ")"; + + var functionName = get(FUNCTION_NAME); + + code.append(keyword(FUNCTION)).append(" ").append(functionName).append(argCode).append(ln()); + + code.append(getBodyCode()).append(ln()); + + code.append(keyword(END)); + code.append(" ").append(keyword(FUNCTION)).append(" ").append(functionName); + code.append(ln()); + + return code.toString(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/program/MainProgram.java 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/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..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,41 +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/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 b537e71d..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 @@ -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; @@ -16,7 +17,7 @@ public Call getCall() { } @Override - public String getCode() { - return "call " + getCall().getCode(); + public String getStmtCode() { + return keyword(FortranKeyword.CALL) + " " + getCall().getCode(); } } 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..60318eff --- /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 getStmtCode() { + return get(SOURCE).replaceFirst("^\\d+", ""); + } +} 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..2d8b0777 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlock.java @@ -0,0 +1,40 @@ +package pt.up.fe.specs.fortran.ast.nodes.stmt; + +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; +import org.suikasoft.jOptions.Interfaces.DataStore; +import pt.up.fe.specs.fortran.ast.nodes.FortranNode; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class CommonBlock extends FortranNode { + public static final DataKey> NAME = KeyFactory.optional("name"); + + public CommonBlock(DataStore data, Collection children) { + super(data, children); + } + + 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 new file mode 100644 index 00000000..b56ceecd --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonBlockObject.java @@ -0,0 +1,35 @@ +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); + } + + @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 new file mode 100644 index 00000000..34f355c9 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/CommonStmt.java @@ -0,0 +1,29 @@ +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) { + super(data, children); + } + + public List getBlocks() { + return getChildren(CommonBlock.class); + } + + @Override + public String getStmtCode() { + var blocks = getBlocks(); + var blocksCode = blocks.stream() + .map(CommonBlock::getCode) + .collect(Collectors.joining(", ")); + + return keyword(FortranKeyword.COMMON) + " " + blocksCode; + } +} 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/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/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/DataStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/DataStmt.java new file mode 100644 index 00000000..ee5d70fb --- /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 getStmtCode() { + StringBuilder code = new StringBuilder(); + + code.append(FortranKeyword.DATA.getKeyword(false)).append(" "); + + code.append(getSets() + .stream() + .map(DataStmtSet::getCode) + .collect(Collectors.joining(", ")) + ); + + return code.toString(); + } +} diff --git a/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/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/ExecutableStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ExecutableStmt.java index b703bed4..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 @@ -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; @@ -28,9 +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); - } } 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..52862299 --- /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 getStmtCode() { + StringBuilder code = new StringBuilder(); + + code.append(FortranKeyword.EXTERNAL.getKeyword(false)).append(" "); + + code.append(getNames() + .stream() + .map(DataRef::getCode) + .collect(Collectors.joining(", ")) + ); + + return code.toString(); + } +} 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..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 @@ -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 getStmtCode() { + return get(SOURCE).replaceFirst("^\\d+", ""); + } } 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/OpenStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/OpenStmt.java new file mode 100644 index 00000000..b0e21b79 --- /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 getStmtCode() { + return get(SOURCE).replaceFirst("^\\d+", ""); + } +} 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/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/ReturnStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/ReturnStmt.java new file mode 100644 index 00000000..59c769f1 --- /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 getStmtCode() { + StringBuilder code = new StringBuilder(); + + code.append(FortranKeyword.RETURN.getKeyword(false)); + + getExpr().ifPresent(expr -> code.append(" ").append(expr.getCode())); + + return code.toString(); + } +} 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..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 @@ -1,13 +1,62 @@ package pt.up.fe.specs.fortran.ast.nodes.stmt; +import org.suikasoft.jOptions.Datakey.DataKey; +import org.suikasoft.jOptions.Datakey.KeyFactory; import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.decl.LabelDecl; +import pt.up.fe.specs.util.SpecsCheck; +import pt.up.fe.specs.util.SpecsCollections; +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 { + 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); } + + // TODO(Process-ing): Convert this to data property + public Optional getLabel() { + var labelDecls = getChildrenOf(LabelDecl.class); + return SpecsCollections.toOptional(labelDecls); + } + + 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); + } + + public Optional getTrailingComment() { + return get(TRAILING_COMMENT); + } + + 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(""); + + var leadingComments = getLeadingComments(); + var trailingComment = getTrailingComment(); + + var commentPrefix = leadingComments.stream() + .map(comment -> comment + ln()) + .collect(Collectors.joining()); + var commentSuffix = trailingComment.map(comment -> " " + comment).orElse(""); + + return commentPrefix + labelPrefix + getStmtCode() + commentSuffix; + } } 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/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/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/datastmt/DataStmt.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java new file mode 100644 index 00000000..ef2208de --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmt.java @@ -0,0 +1,31 @@ +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) { + super(data, children); + } + + public List getDataSets() { + return getChildren(DataStmtSet.class); + } + + @Override + public String getStmtCode() { + 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/DataStmtObject.java b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java new file mode 100644 index 00000000..ffaad817 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtObject.java @@ -0,0 +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.nodes.FortranNode; + +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/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..f5c26f03 --- /dev/null +++ b/FortranAst/src/pt/up/fe/specs/fortran/ast/nodes/stmt/datastmt/DataStmtSet.java @@ -0,0 +1,38 @@ +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; +import java.util.stream.Collectors; + +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); + } + + @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 + " /"; + } +} 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(); + } +} 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..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 @@ -2,7 +2,9 @@ import org.suikasoft.jOptions.Interfaces.DataStore; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; +import pt.up.fe.specs.fortran.ast.nodes.program.Execution; import pt.up.fe.specs.fortran.ast.nodes.program.StmtBlock; +import pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -15,8 +17,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..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 @@ -4,7 +4,9 @@ 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 pt.up.fe.specs.fortran.ast.nodes.stmt.Stmt; import java.util.Collection; @@ -17,8 +19,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/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/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/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/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/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 63% 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 92e6ce53..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); } @@ -47,20 +56,11 @@ private String getControlCode() { } @Override - public String getCode() { - 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)); + public String getStmtCode() { + 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/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/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/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/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/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/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..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,1740 +1,1777 @@ { "nodes": [ { - "id": "0x55a303257f00-Program", + "id": "0x555653744f00-Program", "ProgramUnit": [ - "0x55a303293fa0-ProgramUnit" + "0x555653780e90-ProgramUnit" ] }, { - "id": "0x55a303293fa0-ProgramUnit", + "id": "0x555653780e90-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55a30328c870-MainProgram" + "MainProgram": "0x555653779800-MainProgram" }, { - "id": "0x55a30328c870-MainProgram", - "Statement": "0x55a30328c9b8-Statement", - "SpecificationPart": "0x55a30328c910-SpecificationPart", - "ExecutionPart": "0x55a30328c8f8-ExecutionPart", - "Statement": "0x55a30328c870-Statement" + "id": "0x555653779800-MainProgram", + "Statement": "0x555653779948-Statement", + "SpecificationPart": "0x5556537798a0-SpecificationPart", + "ExecutionPart": "0x555653779888-ExecutionPart", + "Statement": "0x555653779800-Statement" }, { - "id": "0x55a30328c9b8-Statement", - "statement": "0x55a30328c9c8-ProgramStmt", + "id": "0x555653779948-Statement", + "statement": "0x555653779958-ProgramStmt", "source": "program TEST_IMPLIED_DO" }, { - "id": "0x55a30328c9c8-ProgramStmt", - "Name": "0x55a30328c9c8-Name" + "id": "0x555653779958-ProgramStmt", + "Name": "0x555653779958-Name" }, { - "id": "0x55a30328c9c8-Name", + "id": "0x555653779958-Name", "source": "TEST_IMPLIED_DO" }, { - "id": "0x55a30328c910-SpecificationPart", - "ImplicitPart": "0x55a30328c928-ImplicitPart", + "id": "0x5556537798a0-SpecificationPart", + "ImplicitPart": "0x5556537798b8-ImplicitPart", "DeclarationConstruct": [ - "0x55a303265110-DeclarationConstruct", - "0x55a303282fd0-DeclarationConstruct", - "0x55a303283370-DeclarationConstruct", - "0x55a303283620-DeclarationConstruct", - "0x55a3032838d0-DeclarationConstruct" + "0x555653752170-DeclarationConstruct", + "0x555653751da0-DeclarationConstruct", + "0x5556537701d0-DeclarationConstruct", + "0x555653770480-DeclarationConstruct", + "0x555653770730-DeclarationConstruct" ] }, { - "id": "0x55a30328c928-ImplicitPart" + "id": "0x5556537798b8-ImplicitPart" }, { - "id": "0x55a303265110-DeclarationConstruct", + "id": "0x555653752170-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303265110-SpecificationConstruct" + "SpecificationConstruct": "0x555653752170-SpecificationConstruct" }, { - "id": "0x55a303265110-SpecificationConstruct", + "id": "0x555653752170-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303265110-Statement" + "Statement": "0x555653752170-Statement" }, { - "id": "0x55a303265110-Statement", - "statement": "0x55a303282840-TypeDeclarationStmt", + "id": "0x555653752170-Statement", + "statement": "0x555653781570-TypeDeclarationStmt", "source": "integer :: i, j" }, { - "id": "0x55a303282840-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a303282870-DeclarationTypeSpec", + "id": "0x555653781570-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x5556537815a0-DeclarationTypeSpec", "EntityDecl": [ - "0x55a303282a40-EntityDecl", - "0x55a303282950-EntityDecl" + "0x55565376f880-EntityDecl", + "0x55565376f790-EntityDecl" ] }, { - "id": "0x55a303282870-DeclarationTypeSpec", + "id": "0x5556537815a0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a303282870-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x5556537815a0-IntrinsicTypeSpec" }, { - "id": "0x55a303282870-IntrinsicTypeSpec", + "id": "0x5556537815a0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a303282870-IntegerTypeSpec" + "IntegerTypeSpec": "0x5556537815a0-IntegerTypeSpec" }, { - "id": "0x55a303282870-IntegerTypeSpec" + "id": "0x5556537815a0-IntegerTypeSpec" }, { - "id": "0x55a303282a40-EntityDecl", - "Name": "0x55a303282af8-Name" + "id": "0x55565376f880-EntityDecl", + "Name": "0x55565376f938-Name" }, { - "id": "0x55a303282af8-Name", + "id": "0x55565376f938-Name", "source": "i" }, { - "id": "0x55a303282950-EntityDecl", - "Name": "0x55a303282a08-Name" + "id": "0x55565376f790-EntityDecl", + "Name": "0x55565376f848-Name" }, { - "id": "0x55a303282a08-Name", + "id": "0x55565376f848-Name", "source": "j" }, { - "id": "0x55a303282fd0-DeclarationConstruct", + "id": "0x555653751da0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303282fd0-SpecificationConstruct" + "SpecificationConstruct": "0x555653751da0-SpecificationConstruct" }, { - "id": "0x55a303282fd0-SpecificationConstruct", + "id": "0x555653751da0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303282fd0-Statement" + "Statement": "0x555653751da0-Statement" }, { - "id": "0x55a303282fd0-Statement", - "statement": "0x55a3032828c0-TypeDeclarationStmt", + "id": "0x555653751da0-Statement", + "statement": "0x55565376f960-TypeDeclarationStmt", "source": "integer, dimension(5) :: arr1, arr2, arr3" }, { - "id": "0x55a3032828c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a3032828f0-DeclarationTypeSpec", + "id": "0x55565376f960-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55565376f990-DeclarationTypeSpec", "AttrSpec": [ - "0x55a30329ba70-AttrSpec" + "0x555653788a00-AttrSpec" ], "EntityDecl": [ - "0x55a303282e00-EntityDecl", - "0x55a303282c20-EntityDecl", - "0x55a303282d10-EntityDecl" + "0x55565376fcc0-EntityDecl", + "0x55565376fae0-EntityDecl", + "0x55565376fbd0-EntityDecl" ] }, { - "id": "0x55a3032828f0-DeclarationTypeSpec", + "id": "0x55565376f990-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a3032828f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55565376f990-IntrinsicTypeSpec" }, { - "id": "0x55a3032828f0-IntrinsicTypeSpec", + "id": "0x55565376f990-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a3032828f0-IntegerTypeSpec" + "IntegerTypeSpec": "0x55565376f990-IntegerTypeSpec" }, { - "id": "0x55a3032828f0-IntegerTypeSpec" + "id": "0x55565376f990-IntegerTypeSpec" }, { - "id": "0x55a30329ba70-AttrSpec", + "id": "0x555653788a00-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a30329ba70-ArraySpec" + "ArraySpec": "0x555653788a00-ArraySpec" }, { - "id": "0x55a30329ba70-ArraySpec", + "id": "0x555653788a00-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293de0-ExplicitShapeSpec" + "0x555653780cd0-ExplicitShapeSpec" ] }, { - "id": "0x55a303293de0-ExplicitShapeSpec", - "upper_bound": "0x55a303293de0-SpecificationExpr" + "id": "0x555653780cd0-ExplicitShapeSpec", + "upper_bound": "0x555653780cd0-SpecificationExpr" }, { - "id": "0x55a303293de0-SpecificationExpr", - "Expr": "0x55a3031f7790-Expr" + "id": "0x555653780cd0-SpecificationExpr", + "Expr": "0x5556536e4790-Expr" }, { - "id": "0x55a3031f7790-Expr", + "id": "0x5556536e4790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3031f77b0-LiteralConstant" + "LiteralConstant": "0x5556536e47b0-LiteralConstant" }, { - "id": "0x55a3031f77b0-LiteralConstant", + "id": "0x5556536e47b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3031f77b0-IntLiteralConstant" + "IntLiteralConstant": "0x5556536e47b0-IntLiteralConstant" }, { - "id": "0x55a3031f77b0-IntLiteralConstant", + "id": "0x5556536e47b0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a303282e00-EntityDecl", - "Name": "0x55a303282eb8-Name" + "id": "0x55565376fcc0-EntityDecl", + "Name": "0x55565376fd78-Name" }, { - "id": "0x55a303282eb8-Name", + "id": "0x55565376fd78-Name", "source": "arr1" }, { - "id": "0x55a303282c20-EntityDecl", - "Name": "0x55a303282cd8-Name" + "id": "0x55565376fae0-EntityDecl", + "Name": "0x55565376fb98-Name" }, { - "id": "0x55a303282cd8-Name", + "id": "0x55565376fb98-Name", "source": "arr2" }, { - "id": "0x55a303282d10-EntityDecl", - "Name": "0x55a303282dc8-Name" + "id": "0x55565376fbd0-EntityDecl", + "Name": "0x55565376fc88-Name" }, { - "id": "0x55a303282dc8-Name", + "id": "0x55565376fc88-Name", "source": "arr3" }, { - "id": "0x55a303283370-DeclarationConstruct", + "id": "0x5556537701d0-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303283370-SpecificationConstruct" + "SpecificationConstruct": "0x5556537701d0-SpecificationConstruct" }, { - "id": "0x55a303283370-SpecificationConstruct", + "id": "0x5556537701d0-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303283370-Statement" + "Statement": "0x5556537701d0-Statement" }, { - "id": "0x55a303283370-Statement", - "statement": "0x55a303282b20-TypeDeclarationStmt", + "id": "0x5556537701d0-Statement", + "statement": "0x55565376f9e0-TypeDeclarationStmt", "source": "integer, dimension(10) :: arr4, arr5" }, { - "id": "0x55a303282b20-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a303282b50-DeclarationTypeSpec", + "id": "0x55565376f9e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55565376fa10-DeclarationTypeSpec", "AttrSpec": [ - "0x55a303294a00-AttrSpec" + "0x555653781990-AttrSpec" ], "EntityDecl": [ - "0x55a303283280-EntityDecl", - "0x55a303283190-EntityDecl" + "0x5556537700e0-EntityDecl", + "0x55565376fff0-EntityDecl" ] }, { - "id": "0x55a303282b50-DeclarationTypeSpec", + "id": "0x55565376fa10-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a303282b50-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55565376fa10-IntrinsicTypeSpec" }, { - "id": "0x55a303282b50-IntrinsicTypeSpec", + "id": "0x55565376fa10-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a303282b50-IntegerTypeSpec" + "IntegerTypeSpec": "0x55565376fa10-IntegerTypeSpec" }, { - "id": "0x55a303282b50-IntegerTypeSpec" + "id": "0x55565376fa10-IntegerTypeSpec" }, { - "id": "0x55a303294a00-AttrSpec", + "id": "0x555653781990-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a303294a00-ArraySpec" + "ArraySpec": "0x555653781990-ArraySpec" }, { - "id": "0x55a303294a00-ArraySpec", + "id": "0x555653781990-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293e10-ExplicitShapeSpec" + "0x555653780d00-ExplicitShapeSpec" ] }, { - "id": "0x55a303293e10-ExplicitShapeSpec", - "upper_bound": "0x55a303293e10-SpecificationExpr" + "id": "0x555653780d00-ExplicitShapeSpec", + "upper_bound": "0x555653780d00-SpecificationExpr" }, { - "id": "0x55a303293e10-SpecificationExpr", - "Expr": "0x55a3032830a0-Expr" + "id": "0x555653780d00-SpecificationExpr", + "Expr": "0x55565376ff00-Expr" }, { - "id": "0x55a3032830a0-Expr", + "id": "0x55565376ff00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032830c0-LiteralConstant" + "LiteralConstant": "0x55565376ff20-LiteralConstant" }, { - "id": "0x55a3032830c0-LiteralConstant", + "id": "0x55565376ff20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032830c0-IntLiteralConstant" + "IntLiteralConstant": "0x55565376ff20-IntLiteralConstant" }, { - "id": "0x55a3032830c0-IntLiteralConstant", + "id": "0x55565376ff20-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a303283280-EntityDecl", - "Name": "0x55a303283338-Name" + "id": "0x5556537700e0-EntityDecl", + "Name": "0x555653770198-Name" }, { - "id": "0x55a303283338-Name", + "id": "0x555653770198-Name", "source": "arr4" }, { - "id": "0x55a303283190-EntityDecl", - "Name": "0x55a303283248-Name" + "id": "0x55565376fff0-EntityDecl", + "Name": "0x5556537700a8-Name" }, { - "id": "0x55a303283248-Name", + "id": "0x5556537700a8-Name", "source": "arr5" }, { - "id": "0x55a303283620-DeclarationConstruct", + "id": "0x555653770480-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a303283620-SpecificationConstruct" + "SpecificationConstruct": "0x555653770480-SpecificationConstruct" }, { - "id": "0x55a303283620-SpecificationConstruct", + "id": "0x555653770480-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a303283620-Statement" + "Statement": "0x555653770480-Statement" }, { - "id": "0x55a303283620-Statement", - "statement": "0x55a303283020-TypeDeclarationStmt", + "id": "0x555653770480-Statement", + "statement": "0x55565376fe80-TypeDeclarationStmt", "source": "integer, dimension(9) :: arr6" }, { - "id": "0x55a303283020-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a303283050-DeclarationTypeSpec", + "id": "0x55565376fe80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55565376feb0-DeclarationTypeSpec", "AttrSpec": [ - "0x55a303295570-AttrSpec" + "0x555653782500-AttrSpec" ], "EntityDecl": [ - "0x55a303283530-EntityDecl" + "0x555653770390-EntityDecl" ] }, { - "id": "0x55a303283050-DeclarationTypeSpec", + "id": "0x55565376feb0-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a303283050-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55565376feb0-IntrinsicTypeSpec" }, { - "id": "0x55a303283050-IntrinsicTypeSpec", + "id": "0x55565376feb0-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a303283050-IntegerTypeSpec" + "IntegerTypeSpec": "0x55565376feb0-IntegerTypeSpec" }, { - "id": "0x55a303283050-IntegerTypeSpec" + "id": "0x55565376feb0-IntegerTypeSpec" }, { - "id": "0x55a303295570-AttrSpec", + "id": "0x555653782500-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a303295570-ArraySpec" + "ArraySpec": "0x555653782500-ArraySpec" }, { - "id": "0x55a303295570-ArraySpec", + "id": "0x555653782500-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293e40-ExplicitShapeSpec" + "0x555653780d30-ExplicitShapeSpec" ] }, { - "id": "0x55a303293e40-ExplicitShapeSpec", - "upper_bound": "0x55a303293e40-SpecificationExpr" + "id": "0x555653780d30-ExplicitShapeSpec", + "upper_bound": "0x555653780d30-SpecificationExpr" }, { - "id": "0x55a303293e40-SpecificationExpr", - "Expr": "0x55a303283440-Expr" + "id": "0x555653780d30-SpecificationExpr", + "Expr": "0x5556537702a0-Expr" }, { - "id": "0x55a303283440-Expr", + "id": "0x5556537702a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303283460-LiteralConstant" + "LiteralConstant": "0x5556537702c0-LiteralConstant" }, { - "id": "0x55a303283460-LiteralConstant", + "id": "0x5556537702c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303283460-IntLiteralConstant" + "IntLiteralConstant": "0x5556537702c0-IntLiteralConstant" }, { - "id": "0x55a303283460-IntLiteralConstant", + "id": "0x5556537702c0-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x55a303283530-EntityDecl", - "Name": "0x55a3032835e8-Name" + "id": "0x555653770390-EntityDecl", + "Name": "0x555653770448-Name" }, { - "id": "0x55a3032835e8-Name", + "id": "0x555653770448-Name", "source": "arr6" }, { - "id": "0x55a3032838d0-DeclarationConstruct", + "id": "0x555653770730-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55a3032838d0-SpecificationConstruct" + "SpecificationConstruct": "0x555653770730-SpecificationConstruct" }, { - "id": "0x55a3032838d0-SpecificationConstruct", + "id": "0x555653770730-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55a3032838d0-Statement" + "Statement": "0x555653770730-Statement" }, { - "id": "0x55a3032838d0-Statement", - "statement": "0x55a3032833c0-TypeDeclarationStmt", + "id": "0x555653770730-Statement", + "statement": "0x555653770220-TypeDeclarationStmt", "source": "integer, dimension(15) :: arr7" }, { - "id": "0x55a3032833c0-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55a3032833f0-DeclarationTypeSpec", + "id": "0x555653770220-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x555653770250-DeclarationTypeSpec", "AttrSpec": [ - "0x55a30328ed30-AttrSpec" + "0x55565377bcc0-AttrSpec" ], "EntityDecl": [ - "0x55a3032837e0-EntityDecl" + "0x555653770640-EntityDecl" ] }, { - "id": "0x55a3032833f0-DeclarationTypeSpec", + "id": "0x555653770250-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a3032833f0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x555653770250-IntrinsicTypeSpec" }, { - "id": "0x55a3032833f0-IntrinsicTypeSpec", + "id": "0x555653770250-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a3032833f0-IntegerTypeSpec" + "IntegerTypeSpec": "0x555653770250-IntegerTypeSpec" }, { - "id": "0x55a3032833f0-IntegerTypeSpec" + "id": "0x555653770250-IntegerTypeSpec" }, { - "id": "0x55a30328ed30-AttrSpec", + "id": "0x55565377bcc0-AttrSpec", "variantKey": "ArraySpec", - "ArraySpec": "0x55a30328ed30-ArraySpec" + "ArraySpec": "0x55565377bcc0-ArraySpec" }, { - "id": "0x55a30328ed30-ArraySpec", + "id": "0x55565377bcc0-ArraySpec", "variantKey": "ExplicitShapeSpec", "ExplicitShapeSpec": [ - "0x55a303293e90-ExplicitShapeSpec" + "0x555653780d80-ExplicitShapeSpec" ] }, { - "id": "0x55a303293e90-ExplicitShapeSpec", - "upper_bound": "0x55a303293e90-SpecificationExpr" + "id": "0x555653780d80-ExplicitShapeSpec", + "upper_bound": "0x555653780d80-SpecificationExpr" }, { - "id": "0x55a303293e90-SpecificationExpr", - "Expr": "0x55a3032836f0-Expr" + "id": "0x555653780d80-SpecificationExpr", + "Expr": "0x555653770550-Expr" }, { - "id": "0x55a3032836f0-Expr", + "id": "0x555653770550-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303283710-LiteralConstant" + "LiteralConstant": "0x555653770570-LiteralConstant" }, { - "id": "0x55a303283710-LiteralConstant", + "id": "0x555653770570-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303283710-IntLiteralConstant" + "IntLiteralConstant": "0x555653770570-IntLiteralConstant" }, { - "id": "0x55a303283710-IntLiteralConstant", + "id": "0x555653770570-IntLiteralConstant", "CharBlock": "15" }, { - "id": "0x55a3032837e0-EntityDecl", - "Name": "0x55a303283898-Name" + "id": "0x555653770640-EntityDecl", + "Name": "0x5556537706f8-Name" }, { - "id": "0x55a303283898-Name", + "id": "0x5556537706f8-Name", "source": "arr7" }, { - "id": "0x55a30328c8f8-ExecutionPart", + "id": "0x555653779888-ExecutionPart", "ExecutionPartConstruct": [ - "0x55a303285610-ExecutionPartConstruct", - "0x55a303285ec0-ExecutionPartConstruct", - "0x55a303286470-ExecutionPartConstruct", - "0x55a303286d20-ExecutionPartConstruct", - "0x55a3032873b0-ExecutionPartConstruct", - "0x55a303288b10-ExecutionPartConstruct", - "0x55a303289600-ExecutionPartConstruct" + "0x555653772670-ExecutionPartConstruct", + "0x555653772e40-ExecutionPartConstruct", + "0x5556537733f0-ExecutionPartConstruct", + "0x555653773ca0-ExecutionPartConstruct", + "0x555653774330-ExecutionPartConstruct", + "0x555653775a10-ExecutionPartConstruct", + "0x555653776500-ExecutionPartConstruct" ] }, { - "id": "0x55a30328c8f8-ExecutionPartConstruct" + "id": "0x555653779888-ExecutionPartConstruct" }, { - "id": "0x55a303285610-ExecutionPartConstruct", + "id": "0x555653772670-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303285610-ExecutableConstruct" + "ExecutableConstruct": "0x555653772670-ExecutableConstruct" }, { - "id": "0x55a303285610-ExecutableConstruct", + "id": "0x555653772670-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303285610-Statement" + "Statement": "0x555653772670-Statement" }, { - "id": "0x55a303285610-Statement", - "statement": "0x55a303285620-ActionStmt", + "id": "0x555653772670-Statement", + "statement": "0x555653772680-ActionStmt", "source": "arr1 = [(i, i = 1, 5)]" }, { - "id": "0x55a303285620-ActionStmt", + "id": "0x555653772680-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303294b40-AssignmentStmt" + "AssignmentStmt": "0x555653781ad0-AssignmentStmt" }, { - "id": "0x55a303294b40-AssignmentStmt", - "Variable": "0x55a303294c20-Variable", - "Expr": "0x55a303294b50-Expr" + "id": "0x555653781ad0-AssignmentStmt", + "Variable": "0x555653781bb0-Variable", + "Expr": "0x555653781ae0-Expr" }, { - "id": "0x55a303294c20-Variable", + "id": "0x555653781bb0-Variable", "variantKey": "Designator", - "Designator": "0x55a303284320-Designator" + "Designator": "0x555653770ec0-Designator" }, { - "id": "0x55a303284320-Designator", + "id": "0x555653770ec0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284330-DataRef" + "DataRef": "0x555653770ed0-DataRef" }, { - "id": "0x55a303284330-DataRef", + "id": "0x555653770ed0-DataRef", "variantKey": "Name", - "Name": "0x55a303284330-Name" + "Name": "0x555653770ed0-Name" }, { - "id": "0x55a303284330-Name", + "id": "0x555653770ed0-Name", "source": "arr1" }, { - "id": "0x55a303294b50-Expr", + "id": "0x555653781ae0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303294b70-ArrayConstructor" + "ArrayConstructor": "0x555653781b00-ArrayConstructor" }, { - "id": "0x55a303294b70-ArrayConstructor", - "AcSpec": "0x55a303294b70-AcSpec" + "id": "0x555653781b00-ArrayConstructor", + "AcSpec": "0x555653781b00-AcSpec" }, { - "id": "0x55a303294b70-AcSpec", + "id": "0x555653781b00-AcSpec", "values": [ - "0x55a303292af0-AcValue" + "0x55565377f9e0-AcValue" ] }, { - "id": "0x55a303292af0-AcValue", + "id": "0x55565377f9e0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a3032839a0-AcImpliedDo" + "AcImpliedDo": "0x5556537704d0-AcImpliedDo" }, { - "id": "0x55a3032839a0-AcImpliedDo", + "id": "0x5556537704d0-AcImpliedDo", "AcValue": [ - "0x55a3032931d0-AcValue" + "0x5556537800c0-AcValue" ], - "AcImpliedDoControl": "0x55a3032839a0-AcImpliedDoControl" + "AcImpliedDoControl": "0x5556537704d0-AcImpliedDoControl" }, { - "id": "0x55a3032931d0-AcValue", + "id": "0x5556537800c0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303284e30-Expr" + "Expr": "0x555653771e20-Expr" }, { - "id": "0x55a303284e30-Expr", + "id": "0x555653771e20-Expr", "variantKey": "Designator", - "Designator": "0x55a303264d90-Designator" + "Designator": "0x555653752100-Designator" }, { - "id": "0x55a303264d90-Designator", + "id": "0x555653752100-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303264da0-DataRef" + "DataRef": "0x555653752110-DataRef" }, { - "id": "0x55a303264da0-DataRef", + "id": "0x555653752110-DataRef", "variantKey": "Name", - "Name": "0x55a303264da0-Name" + "Name": "0x555653752110-Name" }, { - "id": "0x55a303264da0-Name", + "id": "0x555653752110-Name", "source": "i" }, { - "id": "0x55a3032839a0-AcImpliedDoControl", - "value": "0x55a3032839a0-LoopBounds" + "id": "0x5556537704d0-AcImpliedDoControl", + "value": "0x5556537704d0-LoopBounds" }, { - "id": "0x55a3032839a0-LoopBounds", - "var": "0x55a3032839a0-Name", - "lower": "0x55a303285360-Expr", - "upper": "0x55a303284d50-Expr" + "id": "0x5556537704d0-LoopBounds", + "var": "0x5556537704d0-Name", + "lower": "0x555653772350-Expr", + "upper": "0x555653771d40-Expr" }, { - "id": "0x55a3032839a0-Name", + "id": "0x5556537704d0-Name", "source": "i" }, { - "id": "0x55a303285360-Expr", + "id": "0x555653772350-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285380-LiteralConstant" + "LiteralConstant": "0x555653772370-LiteralConstant" }, { - "id": "0x55a303285380-LiteralConstant", + "id": "0x555653772370-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285380-IntLiteralConstant" + "IntLiteralConstant": "0x555653772370-IntLiteralConstant" }, { - "id": "0x55a303285380-IntLiteralConstant", + "id": "0x555653772370-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303284d50-Expr", + "id": "0x555653771d40-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303284d70-LiteralConstant" + "LiteralConstant": "0x555653771d60-LiteralConstant" }, { - "id": "0x55a303284d70-LiteralConstant", + "id": "0x555653771d60-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303284d70-IntLiteralConstant" + "IntLiteralConstant": "0x555653771d60-IntLiteralConstant" }, { - "id": "0x55a303284d70-IntLiteralConstant", + "id": "0x555653771d60-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a303285ec0-ExecutionPartConstruct", + "id": "0x555653772e40-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303285ec0-ExecutableConstruct" + "ExecutableConstruct": "0x555653772e40-ExecutableConstruct" }, { - "id": "0x55a303285ec0-ExecutableConstruct", + "id": "0x555653772e40-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303285ec0-Statement" + "Statement": "0x555653772e40-Statement" }, { - "id": "0x55a303285ec0-Statement", - "statement": "0x55a303285ed0-ActionStmt", + "id": "0x555653772e40-Statement", + "statement": "0x555653772e50-ActionStmt", "source": "arr2 = [(i * 10, i = 1, 5)]" }, { - "id": "0x55a303285ed0-ActionStmt", + "id": "0x555653772e50-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303285d30-AssignmentStmt" + "AssignmentStmt": "0x555653772cb0-AssignmentStmt" }, { - "id": "0x55a303285d30-AssignmentStmt", - "Variable": "0x55a303285e10-Variable", - "Expr": "0x55a303285d40-Expr" + "id": "0x555653772cb0-AssignmentStmt", + "Variable": "0x555653772d90-Variable", + "Expr": "0x555653772cc0-Expr" }, { - "id": "0x55a303285e10-Variable", + "id": "0x555653772d90-Variable", "variantKey": "Designator", - "Designator": "0x55a303284c80-Designator" + "Designator": "0x555653771c70-Designator" }, { - "id": "0x55a303284c80-Designator", + "id": "0x555653771c70-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284c90-DataRef" + "DataRef": "0x555653771c80-DataRef" }, { - "id": "0x55a303284c90-DataRef", + "id": "0x555653771c80-DataRef", "variantKey": "Name", - "Name": "0x55a303284c90-Name" + "Name": "0x555653771c80-Name" }, { - "id": "0x55a303284c90-Name", + "id": "0x555653771c80-Name", "source": "arr2" }, { - "id": "0x55a303285d40-Expr", + "id": "0x555653772cc0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303285d60-ArrayConstructor" + "ArrayConstructor": "0x555653772ce0-ArrayConstructor" }, { - "id": "0x55a303285d60-ArrayConstructor", - "AcSpec": "0x55a303285d60-AcSpec" + "id": "0x555653772ce0-ArrayConstructor", + "AcSpec": "0x555653772ce0-AcSpec" }, { - "id": "0x55a303285d60-AcSpec", + "id": "0x555653772ce0-AcSpec", "values": [ - "0x55a303293690-AcValue" + "0x555653780580-AcValue" ] }, { - "id": "0x55a303293690-AcValue", + "id": "0x555653780580-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303294650-AcImpliedDo" + "AcImpliedDo": "0x555653770800-AcImpliedDo" }, { - "id": "0x55a303294650-AcImpliedDo", + "id": "0x555653770800-AcImpliedDo", "AcValue": [ - "0x55a303293290-AcValue" + "0x555653780180-AcValue" ], - "AcImpliedDoControl": "0x55a303294650-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653770800-AcImpliedDoControl" }, { - "id": "0x55a303293290-AcValue", + "id": "0x555653780180-AcValue", "variantKey": "Expr", - "Expr": "0x55a3032859c0-Expr" + "Expr": "0x555653772940-Expr" }, { - "id": "0x55a3032859c0-Expr", + "id": "0x555653772940-Expr", "variantKey": "Multiply", - "Multiply": "0x55a3032859e0-Multiply" + "Multiply": "0x555653772960-Multiply" }, { - "id": "0x55a3032859e0-Multiply", - "left": "0x55a3032858e0-Expr", - "right": "0x55a303285660-Expr", + "id": "0x555653772960-Multiply", + "left": "0x555653772860-Expr", + "right": "0x5556537713d0-Expr", "op": "MULTIPLY" }, { - "id": "0x55a3032858e0-Expr", + "id": "0x555653772860-Expr", "variantKey": "Designator", - "Designator": "0x55a303285880-Designator" + "Designator": "0x555653772800-Designator" }, { - "id": "0x55a303285880-Designator", + "id": "0x555653772800-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303285890-DataRef" + "DataRef": "0x555653772810-DataRef" }, { - "id": "0x55a303285890-DataRef", + "id": "0x555653772810-DataRef", "variantKey": "Name", - "Name": "0x55a303285890-Name" + "Name": "0x555653772810-Name" }, { - "id": "0x55a303285890-Name", + "id": "0x555653772810-Name", "source": "i" }, { - "id": "0x55a303285660-Expr", + "id": "0x5556537713d0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285680-LiteralConstant" + "LiteralConstant": "0x5556537713f0-LiteralConstant" }, { - "id": "0x55a303285680-LiteralConstant", + "id": "0x5556537713f0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285680-IntLiteralConstant" + "IntLiteralConstant": "0x5556537713f0-IntLiteralConstant" }, { - "id": "0x55a303285680-IntLiteralConstant", + "id": "0x5556537713f0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a303294650-AcImpliedDoControl", - "value": "0x55a303294650-LoopBounds" + "id": "0x555653770800-AcImpliedDoControl", + "value": "0x555653770800-LoopBounds" }, { - "id": "0x55a303294650-LoopBounds", - "var": "0x55a303294650-Name", - "lower": "0x55a303285740-Expr", - "upper": "0x55a303285b00-Expr" + "id": "0x555653770800-LoopBounds", + "var": "0x555653770800-Name", + "lower": "0x5556537726c0-Expr", + "upper": "0x555653772a80-Expr" }, { - "id": "0x55a303294650-Name", + "id": "0x555653770800-Name", "source": "i" }, { - "id": "0x55a303285740-Expr", + "id": "0x5556537726c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285760-LiteralConstant" + "LiteralConstant": "0x5556537726e0-LiteralConstant" }, { - "id": "0x55a303285760-LiteralConstant", + "id": "0x5556537726e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285760-IntLiteralConstant" + "IntLiteralConstant": "0x5556537726e0-IntLiteralConstant" }, { - "id": "0x55a303285760-IntLiteralConstant", + "id": "0x5556537726e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303285b00-Expr", + "id": "0x555653772a80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303285b20-LiteralConstant" + "LiteralConstant": "0x555653772aa0-LiteralConstant" }, { - "id": "0x55a303285b20-LiteralConstant", + "id": "0x555653772aa0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303285b20-IntLiteralConstant" + "IntLiteralConstant": "0x555653772aa0-IntLiteralConstant" }, { - "id": "0x55a303285b20-IntLiteralConstant", + "id": "0x555653772aa0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a303286470-ExecutionPartConstruct", + "id": "0x5556537733f0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303286470-ExecutableConstruct" + "ExecutableConstruct": "0x5556537733f0-ExecutableConstruct" }, { - "id": "0x55a303286470-ExecutableConstruct", + "id": "0x5556537733f0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303286470-Statement" + "Statement": "0x5556537733f0-Statement" }, { - "id": "0x55a303286470-Statement", - "statement": "0x55a303286480-ActionStmt", + "id": "0x5556537733f0-Statement", + "statement": "0x555653773400-ActionStmt", "source": "arr3 = [(i, i = 1, 9, 2)]" }, { - "id": "0x55a303286480-ActionStmt", + "id": "0x555653773400-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303286350-AssignmentStmt" + "AssignmentStmt": "0x5556537732d0-AssignmentStmt" }, { - "id": "0x55a303286350-AssignmentStmt", - "Variable": "0x55a303286430-Variable", - "Expr": "0x55a303286360-Expr" + "id": "0x5556537732d0-AssignmentStmt", + "Variable": "0x5556537733b0-Variable", + "Expr": "0x5556537732e0-Expr" }, { - "id": "0x55a303286430-Variable", + "id": "0x5556537733b0-Variable", "variantKey": "Designator", - "Designator": "0x55a303284a60-Designator" + "Designator": "0x555653771a50-Designator" }, { - "id": "0x55a303284a60-Designator", + "id": "0x555653771a50-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284a70-DataRef" + "DataRef": "0x555653771a60-DataRef" }, { - "id": "0x55a303284a70-DataRef", + "id": "0x555653771a60-DataRef", "variantKey": "Name", - "Name": "0x55a303284a70-Name" + "Name": "0x555653771a60-Name" }, { - "id": "0x55a303284a70-Name", + "id": "0x555653771a60-Name", "source": "arr3" }, { - "id": "0x55a303286360-Expr", + "id": "0x5556537732e0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303286380-ArrayConstructor" + "ArrayConstructor": "0x555653773300-ArrayConstructor" }, { - "id": "0x55a303286380-ArrayConstructor", - "AcSpec": "0x55a303286380-AcSpec" + "id": "0x555653773300-ArrayConstructor", + "AcSpec": "0x555653773300-AcSpec" }, { - "id": "0x55a303286380-AcSpec", + "id": "0x555653773300-AcSpec", "values": [ - "0x55a303293f20-AcValue" + "0x555653780e10-AcValue" ] }, { - "id": "0x55a303293f20-AcValue", + "id": "0x555653780e10-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a30329b7f0-AcImpliedDo" + "AcImpliedDo": "0x555653771650-AcImpliedDo" }, { - "id": "0x55a30329b7f0-AcImpliedDo", + "id": "0x555653771650-AcImpliedDo", "AcValue": [ - "0x55a303293ec0-AcValue" + "0x555653780db0-AcValue" ], - "AcImpliedDoControl": "0x55a30329b7f0-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653771650-AcImpliedDoControl" }, { - "id": "0x55a303293ec0-AcValue", + "id": "0x555653780db0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303285f10-Expr" + "Expr": "0x555653772e90-Expr" }, { - "id": "0x55a303285f10-Expr", + "id": "0x555653772e90-Expr", "variantKey": "Designator", - "Designator": "0x55a303285140-Designator" + "Designator": "0x555653772130-Designator" }, { - "id": "0x55a303285140-Designator", + "id": "0x555653772130-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303285150-DataRef" + "DataRef": "0x555653772140-DataRef" }, { - "id": "0x55a303285150-DataRef", + "id": "0x555653772140-DataRef", "variantKey": "Name", - "Name": "0x55a303285150-Name" + "Name": "0x555653772140-Name" }, { - "id": "0x55a303285150-Name", + "id": "0x555653772140-Name", "source": "i" }, { - "id": "0x55a30329b7f0-AcImpliedDoControl", - "value": "0x55a30329b7f0-LoopBounds" + "id": "0x555653771650-AcImpliedDoControl", + "value": "0x555653771650-LoopBounds" }, { - "id": "0x55a30329b7f0-LoopBounds", - "var": "0x55a30329b7f0-Name", - "lower": "0x55a303285ff0-Expr", - "upper": "0x55a303286130-Expr", - "step": "0x55a303286270-Expr" + "id": "0x555653771650-LoopBounds", + "var": "0x555653771650-Name", + "lower": "0x555653772f70-Expr", + "upper": "0x5556537730b0-Expr", + "step": "0x5556537731f0-Expr" }, { - "id": "0x55a30329b7f0-Name", + "id": "0x555653771650-Name", "source": "i" }, { - "id": "0x55a303285ff0-Expr", + "id": "0x555653772f70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286010-LiteralConstant" + "LiteralConstant": "0x555653772f90-LiteralConstant" }, { - "id": "0x55a303286010-LiteralConstant", + "id": "0x555653772f90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286010-IntLiteralConstant" + "IntLiteralConstant": "0x555653772f90-IntLiteralConstant" }, { - "id": "0x55a303286010-IntLiteralConstant", + "id": "0x555653772f90-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303286130-Expr", + "id": "0x5556537730b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286150-LiteralConstant" + "LiteralConstant": "0x5556537730d0-LiteralConstant" }, { - "id": "0x55a303286150-LiteralConstant", + "id": "0x5556537730d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286150-IntLiteralConstant" + "IntLiteralConstant": "0x5556537730d0-IntLiteralConstant" }, { - "id": "0x55a303286150-IntLiteralConstant", + "id": "0x5556537730d0-IntLiteralConstant", "CharBlock": "9" }, { - "id": "0x55a303286270-Expr", + "id": "0x5556537731f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286290-LiteralConstant" + "LiteralConstant": "0x555653773210-LiteralConstant" }, { - "id": "0x55a303286290-LiteralConstant", + "id": "0x555653773210-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286290-IntLiteralConstant" + "IntLiteralConstant": "0x555653773210-IntLiteralConstant" }, { - "id": "0x55a303286290-IntLiteralConstant", + "id": "0x555653773210-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55a303286d20-ExecutionPartConstruct", + "id": "0x555653773ca0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303286d20-ExecutableConstruct" + "ExecutableConstruct": "0x555653773ca0-ExecutableConstruct" }, { - "id": "0x55a303286d20-ExecutableConstruct", + "id": "0x555653773ca0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303286d20-Statement" + "Statement": "0x555653773ca0-Statement" }, { - "id": "0x55a303286d20-Statement", - "statement": "0x55a303286d30-ActionStmt", + "id": "0x555653773ca0-Statement", + "statement": "0x555653773cb0-ActionStmt", "source": "arr4 = [0,(i, i = 1, 8), 99]" }, { - "id": "0x55a303286d30-ActionStmt", + "id": "0x555653773cb0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303286b90-AssignmentStmt" + "AssignmentStmt": "0x555653773b10-AssignmentStmt" }, { - "id": "0x55a303286b90-AssignmentStmt", - "Variable": "0x55a303286c70-Variable", - "Expr": "0x55a303286ba0-Expr" + "id": "0x555653773b10-AssignmentStmt", + "Variable": "0x555653773bf0-Variable", + "Expr": "0x555653773b20-Expr" }, { - "id": "0x55a303286c70-Variable", + "id": "0x555653773bf0-Variable", "variantKey": "Designator", - "Designator": "0x55a303285aa0-Designator" + "Designator": "0x555653772a20-Designator" }, { - "id": "0x55a303285aa0-Designator", + "id": "0x555653772a20-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303285ab0-DataRef" + "DataRef": "0x555653772a30-DataRef" }, { - "id": "0x55a303285ab0-DataRef", + "id": "0x555653772a30-DataRef", "variantKey": "Name", - "Name": "0x55a303285ab0-Name" + "Name": "0x555653772a30-Name" }, { - "id": "0x55a303285ab0-Name", + "id": "0x555653772a30-Name", "source": "arr4" }, { - "id": "0x55a303286ba0-Expr", + "id": "0x555653773b20-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303286bc0-ArrayConstructor" + "ArrayConstructor": "0x555653773b40-ArrayConstructor" }, { - "id": "0x55a303286bc0-ArrayConstructor", - "AcSpec": "0x55a303286bc0-AcSpec" + "id": "0x555653773b40-ArrayConstructor", + "AcSpec": "0x555653773b40-AcSpec" }, { - "id": "0x55a303286bc0-AcSpec", + "id": "0x555653773b40-AcSpec", "values": [ - "0x55a3032928f0-AcValue", - "0x55a303292a70-AcValue", - "0x55a303292840-AcValue" + "0x55565377f7e0-AcValue", + "0x55565377f960-AcValue", + "0x55565377f730-AcValue" ] }, { - "id": "0x55a3032928f0-AcValue", + "id": "0x55565377f7e0-AcValue", "variantKey": "Expr", - "Expr": "0x55a3032864c0-Expr" + "Expr": "0x555653773440-Expr" }, { - "id": "0x55a3032864c0-Expr", + "id": "0x555653773440-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032864e0-LiteralConstant" + "LiteralConstant": "0x555653773460-LiteralConstant" }, { - "id": "0x55a3032864e0-LiteralConstant", + "id": "0x555653773460-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032864e0-IntLiteralConstant" + "IntLiteralConstant": "0x555653773460-IntLiteralConstant" }, { - "id": "0x55a3032864e0-IntLiteralConstant", + "id": "0x555653773460-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55a303292a70-AcValue", + "id": "0x55565377f960-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303283920-AcImpliedDo" + "AcImpliedDo": "0x5556537886f0-AcImpliedDo" }, { - "id": "0x55a303283920-AcImpliedDo", + "id": "0x5556537886f0-AcImpliedDo", "AcValue": [ - "0x55a303293f60-AcValue" + "0x555653780e50-AcValue" ], - "AcImpliedDoControl": "0x55a303283920-AcImpliedDoControl" + "AcImpliedDoControl": "0x5556537886f0-AcImpliedDoControl" }, { - "id": "0x55a303293f60-AcValue", + "id": "0x555653780e50-AcValue", "variantKey": "Expr", - "Expr": "0x55a303286600-Expr" + "Expr": "0x555653773580-Expr" }, { - "id": "0x55a303286600-Expr", + "id": "0x555653773580-Expr", "variantKey": "Designator", - "Designator": "0x55a3032865a0-Designator" + "Designator": "0x555653773520-Designator" }, { - "id": "0x55a3032865a0-Designator", + "id": "0x555653773520-Designator", "variantKey": "DataRef", - "DataRef": "0x55a3032865b0-DataRef" + "DataRef": "0x555653773530-DataRef" }, { - "id": "0x55a3032865b0-DataRef", + "id": "0x555653773530-DataRef", "variantKey": "Name", - "Name": "0x55a3032865b0-Name" + "Name": "0x555653773530-Name" }, { - "id": "0x55a3032865b0-Name", + "id": "0x555653773530-Name", "source": "i" }, { - "id": "0x55a303283920-AcImpliedDoControl", - "value": "0x55a303283920-LoopBounds" + "id": "0x5556537886f0-AcImpliedDoControl", + "value": "0x5556537886f0-LoopBounds" }, { - "id": "0x55a303283920-LoopBounds", - "var": "0x55a303283920-Name", - "lower": "0x55a3032866e0-Expr", - "upper": "0x55a303286820-Expr" + "id": "0x5556537886f0-LoopBounds", + "var": "0x5556537886f0-Name", + "lower": "0x555653773660-Expr", + "upper": "0x5556537737a0-Expr" }, { - "id": "0x55a303283920-Name", + "id": "0x5556537886f0-Name", "source": "i" }, { - "id": "0x55a3032866e0-Expr", + "id": "0x555653773660-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286700-LiteralConstant" + "LiteralConstant": "0x555653773680-LiteralConstant" }, { - "id": "0x55a303286700-LiteralConstant", + "id": "0x555653773680-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286700-IntLiteralConstant" + "IntLiteralConstant": "0x555653773680-IntLiteralConstant" }, { - "id": "0x55a303286700-IntLiteralConstant", + "id": "0x555653773680-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303286820-Expr", + "id": "0x5556537737a0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286840-LiteralConstant" + "LiteralConstant": "0x5556537737c0-LiteralConstant" }, { - "id": "0x55a303286840-LiteralConstant", + "id": "0x5556537737c0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286840-IntLiteralConstant" + "IntLiteralConstant": "0x5556537737c0-IntLiteralConstant" }, { - "id": "0x55a303286840-IntLiteralConstant", + "id": "0x5556537737c0-IntLiteralConstant", "CharBlock": "8" }, { - "id": "0x55a303292840-AcValue", + "id": "0x55565377f730-AcValue", "variantKey": "Expr", - "Expr": "0x55a303286960-Expr" + "Expr": "0x5556537738e0-Expr" }, { - "id": "0x55a303286960-Expr", + "id": "0x5556537738e0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286980-LiteralConstant" + "LiteralConstant": "0x555653773900-LiteralConstant" }, { - "id": "0x55a303286980-LiteralConstant", + "id": "0x555653773900-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286980-IntLiteralConstant" + "IntLiteralConstant": "0x555653773900-IntLiteralConstant" }, { - "id": "0x55a303286980-IntLiteralConstant", + "id": "0x555653773900-IntLiteralConstant", "CharBlock": "99" }, { - "id": "0x55a3032873b0-ExecutionPartConstruct", + "id": "0x555653774330-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a3032873b0-ExecutableConstruct" + "ExecutableConstruct": "0x555653774330-ExecutableConstruct" }, { - "id": "0x55a3032873b0-ExecutableConstruct", + "id": "0x555653774330-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a3032873b0-Statement" + "Statement": "0x555653774330-Statement" }, { - "id": "0x55a3032873b0-Statement", - "statement": "0x55a3032873c0-ActionStmt", + "id": "0x555653774330-Statement", + "statement": "0x555653774340-ActionStmt", "source": "arr5 = [integer ::(i * 2, i = 1, 10)]" }, { - "id": "0x55a3032873c0-ActionStmt", + "id": "0x555653774340-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303287290-AssignmentStmt" + "AssignmentStmt": "0x555653774210-AssignmentStmt" }, { - "id": "0x55a303287290-AssignmentStmt", - "Variable": "0x55a303287370-Variable", - "Expr": "0x55a3032872a0-Expr" + "id": "0x555653774210-AssignmentStmt", + "Variable": "0x5556537742f0-Variable", + "Expr": "0x555653774220-Expr" }, { - "id": "0x55a303287370-Variable", + "id": "0x5556537742f0-Variable", "variantKey": "Designator", - "Designator": "0x55a3032845f0-Designator" + "Designator": "0x555653770ad0-Designator" }, { - "id": "0x55a3032845f0-Designator", + "id": "0x555653770ad0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284600-DataRef" + "DataRef": "0x555653770ae0-DataRef" }, { - "id": "0x55a303284600-DataRef", + "id": "0x555653770ae0-DataRef", "variantKey": "Name", - "Name": "0x55a303284600-Name" + "Name": "0x555653770ae0-Name" }, { - "id": "0x55a303284600-Name", + "id": "0x555653770ae0-Name", "source": "arr5" }, { - "id": "0x55a3032872a0-Expr", + "id": "0x555653774220-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a3032872c0-ArrayConstructor" + "ArrayConstructor": "0x555653774240-ArrayConstructor" }, { - "id": "0x55a3032872c0-ArrayConstructor", - "AcSpec": "0x55a3032872c0-AcSpec" + "id": "0x555653774240-ArrayConstructor", + "AcSpec": "0x555653774240-AcSpec" }, { - "id": "0x55a3032872c0-AcSpec", - "type": "0x55a3032872d8-TypeSpec", + "id": "0x555653774240-AcSpec", + "type": "0x555653774258-TypeSpec", "values": [ - "0x55a303292930-AcValue" + "0x55565377f820-AcValue" ] }, { - "id": "0x55a3032872d8-TypeSpec", + "id": "0x555653774258-TypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55a3032872e0-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x555653774260-IntrinsicTypeSpec" }, { - "id": "0x55a3032872e0-IntrinsicTypeSpec", + "id": "0x555653774260-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55a3032872e0-IntegerTypeSpec" + "IntegerTypeSpec": "0x555653774260-IntegerTypeSpec" }, { - "id": "0x55a3032872e0-IntegerTypeSpec" + "id": "0x555653774260-IntegerTypeSpec" }, { - "id": "0x55a303292930-AcValue", + "id": "0x55565377f820-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303270ae0-AcImpliedDo" + "AcImpliedDo": "0x555653770780-AcImpliedDo" }, { - "id": "0x55a303270ae0-AcImpliedDo", + "id": "0x555653770780-AcImpliedDo", "AcValue": [ - "0x55a3032928b0-AcValue" + "0x55565377f7a0-AcValue" ], - "AcImpliedDoControl": "0x55a303270ae0-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653770780-AcImpliedDoControl" }, { - "id": "0x55a3032928b0-AcValue", + "id": "0x55565377f7a0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303287070-Expr" + "Expr": "0x555653773ff0-Expr" }, { - "id": "0x55a303287070-Expr", + "id": "0x555653773ff0-Expr", "variantKey": "Multiply", - "Multiply": "0x55a303287090-Multiply" + "Multiply": "0x555653774010-Multiply" }, { - "id": "0x55a303287090-Multiply", - "left": "0x55a303286f90-Expr", - "right": "0x55a303286d70-Expr", + "id": "0x555653774010-Multiply", + "left": "0x555653773f10-Expr", + "right": "0x555653773cf0-Expr", "op": "MULTIPLY" }, { - "id": "0x55a303286f90-Expr", + "id": "0x555653773f10-Expr", "variantKey": "Designator", - "Designator": "0x55a303286f30-Designator" + "Designator": "0x555653773eb0-Designator" }, { - "id": "0x55a303286f30-Designator", + "id": "0x555653773eb0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303286f40-DataRef" + "DataRef": "0x555653773ec0-DataRef" }, { - "id": "0x55a303286f40-DataRef", + "id": "0x555653773ec0-DataRef", "variantKey": "Name", - "Name": "0x55a303286f40-Name" + "Name": "0x555653773ec0-Name" }, { - "id": "0x55a303286f40-Name", + "id": "0x555653773ec0-Name", "source": "i" }, { - "id": "0x55a303286d70-Expr", + "id": "0x555653773cf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286d90-LiteralConstant" + "LiteralConstant": "0x555653773d10-LiteralConstant" }, { - "id": "0x55a303286d90-LiteralConstant", + "id": "0x555653773d10-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286d90-IntLiteralConstant" + "IntLiteralConstant": "0x555653773d10-IntLiteralConstant" }, { - "id": "0x55a303286d90-IntLiteralConstant", + "id": "0x555653773d10-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55a303270ae0-AcImpliedDoControl", - "value": "0x55a303270ae0-LoopBounds" + "id": "0x555653770780-AcImpliedDoControl", + "value": "0x555653770780-LoopBounds" }, { - "id": "0x55a303270ae0-LoopBounds", - "var": "0x55a303270ae0-Name", - "lower": "0x55a303286e50-Expr", - "upper": "0x55a3032871b0-Expr" + "id": "0x555653770780-LoopBounds", + "var": "0x555653770780-Name", + "lower": "0x555653773dd0-Expr", + "upper": "0x555653774130-Expr" }, { - "id": "0x55a303270ae0-Name", + "id": "0x555653770780-Name", "source": "i" }, { - "id": "0x55a303286e50-Expr", + "id": "0x555653773dd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303286e70-LiteralConstant" + "LiteralConstant": "0x555653773df0-LiteralConstant" }, { - "id": "0x55a303286e70-LiteralConstant", + "id": "0x555653773df0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303286e70-IntLiteralConstant" + "IntLiteralConstant": "0x555653773df0-IntLiteralConstant" }, { - "id": "0x55a303286e70-IntLiteralConstant", + "id": "0x555653773df0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a3032871b0-Expr", + "id": "0x555653774130-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032871d0-LiteralConstant" + "LiteralConstant": "0x555653774150-LiteralConstant" }, { - "id": "0x55a3032871d0-LiteralConstant", + "id": "0x555653774150-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032871d0-IntLiteralConstant" + "IntLiteralConstant": "0x555653774150-IntLiteralConstant" }, { - "id": "0x55a3032871d0-IntLiteralConstant", + "id": "0x555653774150-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a303288b10-ExecutionPartConstruct", + "id": "0x555653775a10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303288b10-ExecutableConstruct" + "ExecutableConstruct": "0x555653775a10-ExecutableConstruct" }, { - "id": "0x55a303288b10-ExecutableConstruct", + "id": "0x555653775a10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303288b10-Statement" + "Statement": "0x555653775a10-Statement" }, { - "id": "0x55a303288b10-Statement", - "statement": "0x55a303288b20-ActionStmt", + "id": "0x555653775a10-Statement", + "statement": "0x555653775a20-ActionStmt", "source": "arr6 = [((i + j, i = 1, 3), j = 1, 3)]" }, { - "id": "0x55a303288b20-ActionStmt", + "id": "0x555653775a20-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a303288980-AssignmentStmt" + "AssignmentStmt": "0x555653775880-AssignmentStmt" }, { - "id": "0x55a303288980-AssignmentStmt", - "Variable": "0x55a303288a60-Variable", - "Expr": "0x55a303288990-Expr" + "id": "0x555653775880-AssignmentStmt", + "Variable": "0x555653775960-Variable", + "Expr": "0x555653775890-Expr" }, { - "id": "0x55a303288a60-Variable", + "id": "0x555653775960-Variable", "variantKey": "Designator", - "Designator": "0x55a303294870-Designator" + "Designator": "0x5556537815f0-Designator" }, { - "id": "0x55a303294870-Designator", + "id": "0x5556537815f0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303294880-DataRef" + "DataRef": "0x555653781600-DataRef" }, { - "id": "0x55a303294880-DataRef", + "id": "0x555653781600-DataRef", "variantKey": "Name", - "Name": "0x55a303294880-Name" + "Name": "0x555653781600-Name" }, { - "id": "0x55a303294880-Name", + "id": "0x555653781600-Name", "source": "arr6" }, { - "id": "0x55a303288990-Expr", + "id": "0x555653775890-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a3032889b0-ArrayConstructor" + "ArrayConstructor": "0x5556537758b0-ArrayConstructor" }, { - "id": "0x55a3032889b0-ArrayConstructor", - "AcSpec": "0x55a3032889b0-AcSpec" + "id": "0x5556537758b0-ArrayConstructor", + "AcSpec": "0x5556537758b0-AcSpec" }, { - "id": "0x55a3032889b0-AcSpec", + "id": "0x5556537758b0-AcSpec", "values": [ - "0x55a303292a30-AcValue" + "0x55565377f920-AcValue" ] }, { - "id": "0x55a303292a30-AcValue", + "id": "0x55565377f920-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a3032945d0-AcImpliedDo" + "AcImpliedDo": "0x555653770880-AcImpliedDo" }, { - "id": "0x55a3032945d0-AcImpliedDo", + "id": "0x555653770880-AcImpliedDo", "AcValue": [ - "0x55a3032929d0-AcValue" + "0x55565377f8c0-AcValue" ], - "AcImpliedDoControl": "0x55a3032945d0-AcImpliedDoControl" + "AcImpliedDoControl": "0x555653770880-AcImpliedDoControl" }, { - "id": "0x55a3032929d0-AcValue", + "id": "0x55565377f8c0-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303283a20-AcImpliedDo" + "AcImpliedDo": "0x55565376baf0-AcImpliedDo" }, { - "id": "0x55a303283a20-AcImpliedDo", + "id": "0x55565376baf0-AcImpliedDo", "AcValue": [ - "0x55a303292990-AcValue" + "0x55565377f880-AcValue" ], - "AcImpliedDoControl": "0x55a303283a20-AcImpliedDoControl" + "AcImpliedDoControl": "0x55565376baf0-AcImpliedDoControl" }, { - "id": "0x55a303292990-AcValue", + "id": "0x55565377f880-AcValue", "variantKey": "Expr", - "Expr": "0x55a303287840-Expr" + "Expr": "0x555653774740-Expr" }, { - "id": "0x55a303287840-Expr", + "id": "0x555653774740-Expr", "variantKey": "Add", - "Add": "0x55a303287860-Add" + "Add": "0x555653774760-Add" }, { - "id": "0x55a303287860-Add", - "left": "0x55a303287760-Expr", - "right": "0x55a303287480-Expr", + "id": "0x555653774760-Add", + "left": "0x555653774660-Expr", + "right": "0x555653774380-Expr", "op": "ADD" }, { - "id": "0x55a303287760-Expr", + "id": "0x555653774660-Expr", "variantKey": "Designator", - "Designator": "0x55a3032867c0-Designator" + "Designator": "0x555653773740-Designator" }, { - "id": "0x55a3032867c0-Designator", + "id": "0x555653773740-Designator", "variantKey": "DataRef", - "DataRef": "0x55a3032867d0-DataRef" + "DataRef": "0x555653773750-DataRef" }, { - "id": "0x55a3032867d0-DataRef", + "id": "0x555653773750-DataRef", "variantKey": "Name", - "Name": "0x55a3032867d0-Name" + "Name": "0x555653773750-Name" }, { - "id": "0x55a3032867d0-Name", + "id": "0x555653773750-Name", "source": "i" }, { - "id": "0x55a303287480-Expr", + "id": "0x555653774380-Expr", "variantKey": "Designator", - "Designator": "0x55a303287700-Designator" + "Designator": "0x555653774600-Designator" }, { - "id": "0x55a303287700-Designator", + "id": "0x555653774600-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303287710-DataRef" + "DataRef": "0x555653774610-DataRef" }, { - "id": "0x55a303287710-DataRef", + "id": "0x555653774610-DataRef", "variantKey": "Name", - "Name": "0x55a303287710-Name" + "Name": "0x555653774610-Name" }, { - "id": "0x55a303287710-Name", + "id": "0x555653774610-Name", "source": "j" }, { - "id": "0x55a303283a20-AcImpliedDoControl", - "value": "0x55a303283a20-LoopBounds" + "id": "0x55565376baf0-AcImpliedDoControl", + "value": "0x55565376baf0-LoopBounds" }, { - "id": "0x55a303283a20-LoopBounds", - "var": "0x55a303283a20-Name", - "lower": "0x55a303287560-Expr", - "upper": "0x55a303287c20-Expr" + "id": "0x55565376baf0-LoopBounds", + "var": "0x55565376baf0-Name", + "lower": "0x555653774460-Expr", + "upper": "0x555653774b20-Expr" }, { - "id": "0x55a303283a20-Name", + "id": "0x55565376baf0-Name", "source": "i" }, { - "id": "0x55a303287560-Expr", + "id": "0x555653774460-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303287580-LiteralConstant" + "LiteralConstant": "0x555653774480-LiteralConstant" }, { - "id": "0x55a303287580-LiteralConstant", + "id": "0x555653774480-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303287580-IntLiteralConstant" + "IntLiteralConstant": "0x555653774480-IntLiteralConstant" }, { - "id": "0x55a303287580-IntLiteralConstant", + "id": "0x555653774480-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303287c20-Expr", + "id": "0x555653774b20-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303287c40-LiteralConstant" + "LiteralConstant": "0x555653774b40-LiteralConstant" }, { - "id": "0x55a303287c40-LiteralConstant", + "id": "0x555653774b40-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303287c40-IntLiteralConstant" + "IntLiteralConstant": "0x555653774b40-IntLiteralConstant" }, { - "id": "0x55a303287c40-IntLiteralConstant", + "id": "0x555653774b40-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55a3032945d0-AcImpliedDoControl", - "value": "0x55a3032945d0-LoopBounds" + "id": "0x555653770880-AcImpliedDoControl", + "value": "0x555653770880-LoopBounds" }, { - "id": "0x55a3032945d0-LoopBounds", - "var": "0x55a3032945d0-Name", - "lower": "0x55a303288290-Expr", - "upper": "0x55a303288750-Expr" + "id": "0x555653770880-LoopBounds", + "var": "0x555653770880-Name", + "lower": "0x555653775190-Expr", + "upper": "0x555653775650-Expr" }, { - "id": "0x55a3032945d0-Name", + "id": "0x555653770880-Name", "source": "j" }, { - "id": "0x55a303288290-Expr", + "id": "0x555653775190-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032882b0-LiteralConstant" + "LiteralConstant": "0x5556537751b0-LiteralConstant" }, { - "id": "0x55a3032882b0-LiteralConstant", + "id": "0x5556537751b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032882b0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537751b0-IntLiteralConstant" }, { - "id": "0x55a3032882b0-IntLiteralConstant", + "id": "0x5556537751b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303288750-Expr", + "id": "0x555653775650-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303288770-LiteralConstant" + "LiteralConstant": "0x555653775670-LiteralConstant" }, { - "id": "0x55a303288770-LiteralConstant", + "id": "0x555653775670-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303288770-IntLiteralConstant" + "IntLiteralConstant": "0x555653775670-IntLiteralConstant" }, { - "id": "0x55a303288770-IntLiteralConstant", + "id": "0x555653775670-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55a303289600-ExecutionPartConstruct", + "id": "0x555653776500-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55a303289600-ExecutableConstruct" + "ExecutableConstruct": "0x555653776500-ExecutableConstruct" }, { - "id": "0x55a303289600-ExecutableConstruct", + "id": "0x555653776500-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55a303289600-Statement" + "Statement": "0x555653776500-Statement" }, { - "id": "0x55a303289600-Statement", - "statement": "0x55a303289610-ActionStmt", + "id": "0x555653776500-Statement", + "statement": "0x555653776510-ActionStmt", "source": "arr7 = [(i, i * 10, i * 100, i = 1, 5)]" }, { - "id": "0x55a303289610-ActionStmt", + "id": "0x555653776510-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55a3032894e0-AssignmentStmt" + "AssignmentStmt": "0x5556537763e0-AssignmentStmt" }, { - "id": "0x55a3032894e0-AssignmentStmt", - "Variable": "0x55a3032895c0-Variable", - "Expr": "0x55a3032894f0-Expr" + "id": "0x5556537763e0-AssignmentStmt", + "Variable": "0x5556537764c0-Variable", + "Expr": "0x5556537763f0-Expr" }, { - "id": "0x55a3032895c0-Variable", + "id": "0x5556537764c0-Variable", "variantKey": "Designator", - "Designator": "0x55a303287a00-Designator" + "Designator": "0x555653774900-Designator" }, { - "id": "0x55a303287a00-Designator", + "id": "0x555653774900-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303287a10-DataRef" + "DataRef": "0x555653774910-DataRef" }, { - "id": "0x55a303287a10-DataRef", + "id": "0x555653774910-DataRef", "variantKey": "Name", - "Name": "0x55a303287a10-Name" + "Name": "0x555653774910-Name" }, { - "id": "0x55a303287a10-Name", + "id": "0x555653774910-Name", "source": "arr7" }, { - "id": "0x55a3032894f0-Expr", + "id": "0x5556537763f0-Expr", "variantKey": "ArrayConstructor", - "ArrayConstructor": "0x55a303289510-ArrayConstructor" + "ArrayConstructor": "0x555653776410-ArrayConstructor" }, { - "id": "0x55a303289510-ArrayConstructor", - "AcSpec": "0x55a303289510-AcSpec" + "id": "0x555653776410-ArrayConstructor", + "AcSpec": "0x555653776410-AcSpec" }, { - "id": "0x55a303289510-AcSpec", + "id": "0x555653776410-AcSpec", "values": [ - "0x55a303292670-AcValue" + "0x55565377f560-AcValue" ] }, { - "id": "0x55a303292670-AcValue", + "id": "0x55565377f560-AcValue", "variantKey": "AcImpliedDo", - "AcImpliedDo": "0x55a303287400-AcImpliedDo" + "AcImpliedDo": "0x5556537715d0-AcImpliedDo" }, { - "id": "0x55a303287400-AcImpliedDo", + "id": "0x5556537715d0-AcImpliedDo", "AcValue": [ - "0x55a303292610-AcValue", - "0x55a303292800-AcValue", - "0x55a3032925d0-AcValue" + "0x55565377f500-AcValue", + "0x55565377f6f0-AcValue", + "0x55565377f4c0-AcValue" ], - "AcImpliedDoControl": "0x55a303287400-AcImpliedDoControl" + "AcImpliedDoControl": "0x5556537715d0-AcImpliedDoControl" }, { - "id": "0x55a303292610-AcValue", + "id": "0x55565377f500-AcValue", "variantKey": "Expr", - "Expr": "0x55a303288da0-Expr" + "Expr": "0x555653775ca0-Expr" }, { - "id": "0x55a303288da0-Expr", + "id": "0x555653775ca0-Expr", "variantKey": "Designator", - "Designator": "0x55a303287150-Designator" + "Designator": "0x5556537740d0-Designator" }, { - "id": "0x55a303287150-Designator", + "id": "0x5556537740d0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303287160-DataRef" + "DataRef": "0x5556537740e0-DataRef" }, { - "id": "0x55a303287160-DataRef", + "id": "0x5556537740e0-DataRef", "variantKey": "Name", - "Name": "0x55a303287160-Name" + "Name": "0x5556537740e0-Name" }, { - "id": "0x55a303287160-Name", + "id": "0x5556537740e0-Name", "source": "i" }, { - "id": "0x55a303292800-AcValue", + "id": "0x55565377f6f0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303288cc0-Expr" + "Expr": "0x555653775bc0-Expr" }, { - "id": "0x55a303288cc0-Expr", + "id": "0x555653775bc0-Expr", "variantKey": "Multiply", - "Multiply": "0x55a303288ce0-Multiply" + "Multiply": "0x555653775be0-Multiply" }, { - "id": "0x55a303288ce0-Multiply", - "left": "0x55a303288be0-Expr", - "right": "0x55a303288e80-Expr", + "id": "0x555653775be0-Multiply", + "left": "0x555653775ae0-Expr", + "right": "0x555653775d80-Expr", "op": "MULTIPLY" }, { - "id": "0x55a303288be0-Expr", + "id": "0x555653775ae0-Expr", "variantKey": "Designator", - "Designator": "0x55a303283ce0-Designator" + "Designator": "0x555653771150-Designator" }, { - "id": "0x55a303283ce0-Designator", + "id": "0x555653771150-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303283cf0-DataRef" + "DataRef": "0x555653771160-DataRef" }, { - "id": "0x55a303283cf0-DataRef", + "id": "0x555653771160-DataRef", "variantKey": "Name", - "Name": "0x55a303283cf0-Name" + "Name": "0x555653771160-Name" }, { - "id": "0x55a303283cf0-Name", + "id": "0x555653771160-Name", "source": "i" }, { - "id": "0x55a303288e80-Expr", + "id": "0x555653775d80-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303288ea0-LiteralConstant" + "LiteralConstant": "0x555653775da0-LiteralConstant" }, { - "id": "0x55a303288ea0-LiteralConstant", + "id": "0x555653775da0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303288ea0-IntLiteralConstant" + "IntLiteralConstant": "0x555653775da0-IntLiteralConstant" }, { - "id": "0x55a303288ea0-IntLiteralConstant", + "id": "0x555653775da0-IntLiteralConstant", "CharBlock": "10" }, { - "id": "0x55a3032925d0-AcValue", + "id": "0x55565377f4c0-AcValue", "variantKey": "Expr", - "Expr": "0x55a303289040-Expr" + "Expr": "0x555653775f40-Expr" }, { - "id": "0x55a303289040-Expr", + "id": "0x555653775f40-Expr", "variantKey": "Multiply", - "Multiply": "0x55a303289060-Multiply" + "Multiply": "0x555653775f60-Multiply" }, { - "id": "0x55a303289060-Multiply", - "left": "0x55a303288f60-Expr", - "right": "0x55a303289120-Expr", + "id": "0x555653775f60-Multiply", + "left": "0x555653775e60-Expr", + "right": "0x555653776020-Expr", "op": "MULTIPLY" }, { - "id": "0x55a303288f60-Expr", + "id": "0x555653775e60-Expr", "variantKey": "Designator", - "Designator": "0x55a303284250-Designator" + "Designator": "0x555653770df0-Designator" }, { - "id": "0x55a303284250-Designator", + "id": "0x555653770df0-Designator", "variantKey": "DataRef", - "DataRef": "0x55a303284260-DataRef" + "DataRef": "0x555653770e00-DataRef" }, { - "id": "0x55a303284260-DataRef", + "id": "0x555653770e00-DataRef", "variantKey": "Name", - "Name": "0x55a303284260-Name" + "Name": "0x555653770e00-Name" }, { - "id": "0x55a303284260-Name", + "id": "0x555653770e00-Name", "source": "i" }, { - "id": "0x55a303289120-Expr", + "id": "0x555653776020-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303289140-LiteralConstant" + "LiteralConstant": "0x555653776040-LiteralConstant" }, { - "id": "0x55a303289140-LiteralConstant", + "id": "0x555653776040-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303289140-IntLiteralConstant" + "IntLiteralConstant": "0x555653776040-IntLiteralConstant" }, { - "id": "0x55a303289140-IntLiteralConstant", + "id": "0x555653776040-IntLiteralConstant", "CharBlock": "100" }, { - "id": "0x55a303287400-AcImpliedDoControl", - "value": "0x55a303287400-LoopBounds" + "id": "0x5556537715d0-AcImpliedDoControl", + "value": "0x5556537715d0-LoopBounds" }, { - "id": "0x55a303287400-LoopBounds", - "var": "0x55a303287400-Name", - "lower": "0x55a3032892c0-Expr", - "upper": "0x55a303289400-Expr" + "id": "0x5556537715d0-LoopBounds", + "var": "0x5556537715d0-Name", + "lower": "0x5556537761c0-Expr", + "upper": "0x555653776300-Expr" }, { - "id": "0x55a303287400-Name", + "id": "0x5556537715d0-Name", "source": "i" }, { - "id": "0x55a3032892c0-Expr", + "id": "0x5556537761c0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a3032892e0-LiteralConstant" + "LiteralConstant": "0x5556537761e0-LiteralConstant" }, { - "id": "0x55a3032892e0-LiteralConstant", + "id": "0x5556537761e0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a3032892e0-IntLiteralConstant" + "IntLiteralConstant": "0x5556537761e0-IntLiteralConstant" }, { - "id": "0x55a3032892e0-IntLiteralConstant", + "id": "0x5556537761e0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55a303289400-Expr", + "id": "0x555653776300-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55a303289420-LiteralConstant" + "LiteralConstant": "0x555653776320-LiteralConstant" }, { - "id": "0x55a303289420-LiteralConstant", + "id": "0x555653776320-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55a303289420-IntLiteralConstant" + "IntLiteralConstant": "0x555653776320-IntLiteralConstant" }, { - "id": "0x55a303289420-IntLiteralConstant", + "id": "0x555653776320-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55a30328c870-Statement", - "statement": "0x55a30328c880-EndProgramStmt", + "id": "0x555653779800-Statement", + "statement": "0x555653779810-EndProgramStmt", "source": "end program TEST_IMPLIED_DO" }, { - "id": "0x55a30328c880-EndProgramStmt", - "Name": "0x55a30328c880-Name" + "id": "0x555653779810-EndProgramStmt", + "Name": "0x555653779810-Name" }, { - "id": "0x55a30328c880-Name", + "id": "0x555653779810-Name", "source": "TEST_IMPLIED_DO" } ], + "comments": [ + { + "text": "! Basic implied-do", + "stmtId": "0x555653772670-Statement", + "trailing": false + }, + { + "text": "! With expression", + "stmtId": "0x555653772e40-Statement", + "trailing": false + }, + { + "text": "! With step", + "stmtId": "0x5556537733f0-Statement", + "trailing": false + }, + { + "text": "! Mixed values and implied-do", + "stmtId": "0x555653773ca0-Statement", + "trailing": false + }, + { + "text": "! With type-spec", + "stmtId": "0x555653774330-Statement", + "trailing": false + }, + { + "text": "! Nested implied-do", + "stmtId": "0x555653775a10-Statement", + "trailing": false + }, + { + "text": "! Multiple values per iteration", + "stmtId": "0x555653776500-Statement", + "trailing": false + } + ], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", 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..9deb2c36 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/comment.expected.f90 @@ -0,0 +1,8 @@ +! This is a \comment +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 new file mode 100644 index 00000000..fab942ba --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/comment.f90 @@ -0,0 +1,7 @@ +! This is a \comment +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.json b/FortranParser/resources-test/fortran/parser/comment.json new file mode 100644 index 00000000..90897cb2 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/comment.json @@ -0,0 +1,629 @@ +{ + "nodes": [ + { + "id": "0x5611007d4f00-Program", + "ProgramUnit": [ + "0x561100809c90-ProgramUnit" + ] + }, + { + "id": "0x561100809c90-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x561100802090-MainProgram" + }, + { + "id": "0x561100802090-MainProgram", + "Statement": "0x5611008021d8-Statement", + "SpecificationPart": "0x561100802130-SpecificationPart", + "ExecutionPart": "0x561100802118-ExecutionPart", + "Statement": "0x561100802090-Statement" + }, + { + "id": "0x5611008021d8-Statement", + "statement": "0x5611008021e8-ProgramStmt", + "source": "program HELLO" + }, + { + "id": "0x5611008021e8-ProgramStmt", + "Name": "0x5611008021e8-Name" + }, + { + "id": "0x5611008021e8-Name", + "source": "HELLO" + }, + { + "id": "0x561100802130-SpecificationPart", + "ImplicitPart": "0x561100802148-ImplicitPart" + }, + { + "id": "0x561100802148-ImplicitPart" + }, + { + "id": "0x561100802118-ExecutionPart", + "ExecutionPartConstruct": [ + "0x561100814a20-ExecutionPartConstruct", + "0x561100811470-ExecutionPartConstruct", + "0x5611008142c0-ExecutionPartConstruct" + ] + }, + { + "id": "0x561100802118-ExecutionPartConstruct" + }, + { + "id": "0x561100814a20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561100814a20-ExecutableConstruct" + }, + { + "id": "0x561100814a20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561100814a20-Statement" + }, + { + "id": "0x561100814a20-Statement", + "statement": "0x561100814a30-ActionStmt", + "source": "print *, \"Hello, \"\"World!\"\"\"" + }, + { + "id": "0x561100814a30-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56110078a260-PrintStmt" + }, + { + "id": "0x56110078a260-PrintStmt", + "Format": "0x56110078a278-Format", + "OutputItem": [ + "0x561100815e60-OutputItem" + ] + }, + { + "id": "0x56110078a278-Format", + "variantKey": "Star", + "Star": "0x56110078a278-Star" + }, + { + "id": "0x56110078a278-Star" + }, + { + "id": "0x561100815e60-OutputItem", + "variantKey": "Expr", + "Expr": "0x561100815e60-Expr" + }, + { + "id": "0x561100815e60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561100815e80-LiteralConstant" + }, + { + "id": "0x561100815e80-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x561100815e80-CharLiteralConstant" + }, + { + "id": "0x561100815e80-CharLiteralConstant", + "string": "Hello, \"World!\"" + }, + { + "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": "0x5611008020a0-EndProgramStmt", + "Name": "0x5611008020a0-Name" + }, + { + "id": "0x5611008020a0-Name", + "source": "HELLO" + } + ], + "comments": [ + { + "text": "! This is a \\comment", + "stmtId": "0x5611008021d8-Statement", + "trailing": false + }, + { + "text": "! This is \"another comment\"", + "stmtId": "0x561100814a20-Statement", + "trailing": false + }, + { + "text": "! This is a trailing comment", + "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": "0x5611007d4f00-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" + ] + } +} 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/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..a5bffe01 100644 --- a/FortranParser/resources-test/fortran/parser/declaration.json +++ b/FortranParser/resources-test/fortran/parser/declaration.json @@ -1,138 +1,155 @@ { "nodes": [ { - "id": "0x55d2981c8f00-Program", + "id": "0x55f217ee8f00-Program", "ProgramUnit": [ - "0x55d2981fee90-ProgramUnit" + "0x55f217f1ee20-ProgramUnit" ] }, { - "id": "0x55d2981fee90-ProgramUnit", + "id": "0x55f217f1ee20-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55d298203b40-MainProgram" + "MainProgram": "0x55f217f23890-MainProgram" }, { - "id": "0x55d298203b40-MainProgram", - "Statement": "0x55d298203c88-Statement", - "SpecificationPart": "0x55d298203be0-SpecificationPart", - "ExecutionPart": "0x55d298203bc8-ExecutionPart", - "Statement": "0x55d298203b40-Statement" + "id": "0x55f217f23890-MainProgram", + "Statement": "0x55f217f239d8-Statement", + "SpecificationPart": "0x55f217f23930-SpecificationPart", + "ExecutionPart": "0x55f217f23918-ExecutionPart", + "Statement": "0x55f217f23890-Statement" }, { - "id": "0x55d298203c88-Statement", - "statement": "0x55d298203c98-ProgramStmt", + "id": "0x55f217f239d8-Statement", + "statement": "0x55f217f239e8-ProgramStmt", "source": "program DECLARATION" }, { - "id": "0x55d298203c98-ProgramStmt", - "Name": "0x55d298203c98-Name" + "id": "0x55f217f239e8-ProgramStmt", + "Name": "0x55f217f239e8-Name" }, { - "id": "0x55d298203c98-Name", + "id": "0x55f217f239e8-Name", "source": "DECLARATION" }, { - "id": "0x55d298203be0-SpecificationPart", - "ImplicitPart": "0x55d298203bf8-ImplicitPart", + "id": "0x55f217f23930-SpecificationPart", + "ImplicitPart": "0x55f217f23948-ImplicitPart", "DeclarationConstruct": [ - "0x55d2981d5da0-DeclarationConstruct" + "0x55f217ef6110-DeclarationConstruct" ] }, { - "id": "0x55d298203bf8-ImplicitPart" + "id": "0x55f217f23948-ImplicitPart" }, { - "id": "0x55d2981d5da0-DeclarationConstruct", + "id": "0x55f217ef6110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55d2981d5da0-SpecificationConstruct" + "SpecificationConstruct": "0x55f217ef6110-SpecificationConstruct" }, { - "id": "0x55d2981d5da0-SpecificationConstruct", + "id": "0x55f217ef6110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55d2981d5da0-Statement" + "Statement": "0x55f217ef6110-Statement" }, { - "id": "0x55d2981d5da0-Statement", - "statement": "0x55d2981fc420-TypeDeclarationStmt", + "id": "0x55f217ef6110-Statement", + "statement": "0x55f217f1c320-TypeDeclarationStmt", "source": "integer :: a, b = 1" }, { - "id": "0x55d2981fc420-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55d2981fc450-DeclarationTypeSpec", + "id": "0x55f217f1c320-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55f217f1c350-DeclarationTypeSpec", "EntityDecl": [ - "0x55d2981fc690-EntityDecl", - "0x55d2981fc5a0-EntityDecl" + "0x55f217f1c590-EntityDecl", + "0x55f217f1c4a0-EntityDecl" ] }, { - "id": "0x55d2981fc450-DeclarationTypeSpec", + "id": "0x55f217f1c350-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55d2981fc450-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55f217f1c350-IntrinsicTypeSpec" }, { - "id": "0x55d2981fc450-IntrinsicTypeSpec", + "id": "0x55f217f1c350-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55d2981fc450-IntegerTypeSpec" + "IntegerTypeSpec": "0x55f217f1c350-IntegerTypeSpec" }, { - "id": "0x55d2981fc450-IntegerTypeSpec" + "id": "0x55f217f1c350-IntegerTypeSpec" }, { - "id": "0x55d2981fc690-EntityDecl", - "Name": "0x55d2981fc748-Name" + "id": "0x55f217f1c590-EntityDecl", + "Name": "0x55f217f1c648-Name" }, { - "id": "0x55d2981fc748-Name", + "id": "0x55f217f1c648-Name", "source": "a" }, { - "id": "0x55d2981fc5a0-EntityDecl", - "Name": "0x55d2981fc658-Name", - "Initialization": "0x55d2981fc5a0-Initialization" + "id": "0x55f217f1c4a0-EntityDecl", + "Name": "0x55f217f1c558-Name", + "Initialization": "0x55f217f1c4a0-Initialization" }, { - "id": "0x55d2981fc658-Name", + "id": "0x55f217f1c558-Name", "source": "b" }, { - "id": "0x55d2981fc5a0-Initialization", + "id": "0x55f217f1c4a0-Initialization", "variantKey": "Expr", - "Expr": "0x55d298168790-Expr" + "Expr": "0x55f217e88790-Expr" }, { - "id": "0x55d298168790-Expr", + "id": "0x55f217e88790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55d2981687b0-LiteralConstant" + "LiteralConstant": "0x55f217e887b0-LiteralConstant" }, { - "id": "0x55d2981687b0-LiteralConstant", + "id": "0x55f217e887b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55d2981687b0-IntLiteralConstant" + "IntLiteralConstant": "0x55f217e887b0-IntLiteralConstant" }, { - "id": "0x55d2981687b0-IntLiteralConstant", + "id": "0x55f217e887b0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55d298203bc8-ExecutionPart" + "id": "0x55f217f23918-ExecutionPart" }, { - "id": "0x55d298203bc8-list" + "id": "0x55f217f23918-list" }, { - "id": "0x55d298203b40-Statement", - "statement": "0x55d298203b50-EndProgramStmt", + "id": "0x55f217f23890-Statement", + "statement": "0x55f217f238a0-EndProgramStmt", "source": "end program DECLARATION" }, { - "id": "0x55d298203b50-EndProgramStmt", - "Name": "0x55d298203b50-Name" + "id": "0x55f217f238a0-EndProgramStmt", + "Name": "0x55f217f238a0-Name" }, { - "id": "0x55d298203b50-Name", + "id": "0x55f217f238a0-Name", "source": "DECLARATION" } ], + "comments": [ + { + "text": "!integer i;", + "stmtId": "0x55f217f23890-Statement", + "trailing": false + }, + { + "text": "! i = 1", + "stmtId": "0x55f217f23890-Statement", + "trailing": false + }, + { + "text": "! a = 5", + "stmtId": "0x55f217f23890-Statement", + "trailing": false + } + ], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", 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..5fe12f36 100644 --- a/FortranParser/resources-test/fortran/parser/do.json +++ b/FortranParser/resources-test/fortran/parser/do.json @@ -1,615 +1,674 @@ { "nodes": [ { - "id": "0x55bfd44f1f00-Program", + "id": "0x55fc72d1ef00-Program", "ProgramUnit": [ - "0x55bfd4528020-ProgramUnit" + "0x55fc72d58c70-ProgramUnit" ] }, { - "id": "0x55bfd4528020-ProgramUnit", + "id": "0x55fc72d58c70-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x55bfd451ff40-MainProgram" + "MainProgram": "0x55fc72d4ab90-MainProgram" }, { - "id": "0x55bfd451ff40-MainProgram", - "Statement": "0x55bfd4520088-Statement", - "SpecificationPart": "0x55bfd451ffe0-SpecificationPart", - "ExecutionPart": "0x55bfd451ffc8-ExecutionPart", - "Statement": "0x55bfd451ff40-Statement" + "id": "0x55fc72d4ab90-MainProgram", + "Statement": "0x55fc72d4acd8-Statement", + "SpecificationPart": "0x55fc72d4ac30-SpecificationPart", + "ExecutionPart": "0x55fc72d4ac18-ExecutionPart", + "Statement": "0x55fc72d4ab90-Statement" }, { - "id": "0x55bfd4520088-Statement", - "statement": "0x55bfd4520098-ProgramStmt", + "id": "0x55fc72d4acd8-Statement", + "statement": "0x55fc72d4ace8-ProgramStmt", "source": "program SIMPLE_LOOP" }, { - "id": "0x55bfd4520098-ProgramStmt", - "Name": "0x55bfd4520098-Name" + "id": "0x55fc72d4ace8-ProgramStmt", + "Name": "0x55fc72d4ace8-Name" }, { - "id": "0x55bfd4520098-Name", + "id": "0x55fc72d4ace8-Name", "source": "SIMPLE_LOOP" }, { - "id": "0x55bfd451ffe0-SpecificationPart", - "ImplicitPart": "0x55bfd451fff8-ImplicitPart", + "id": "0x55fc72d4ac30-SpecificationPart", + "ImplicitPart": "0x55fc72d4ac48-ImplicitPart", "DeclarationConstruct": [ - "0x55bfd44feda0-DeclarationConstruct" + "0x55fc72d2c110-DeclarationConstruct" ] }, { - "id": "0x55bfd451fff8-ImplicitPart" + "id": "0x55fc72d4ac48-ImplicitPart" }, { - "id": "0x55bfd44feda0-DeclarationConstruct", + "id": "0x55fc72d2c110-DeclarationConstruct", "variantKey": "SpecificationConstruct", - "SpecificationConstruct": "0x55bfd44feda0-SpecificationConstruct" + "SpecificationConstruct": "0x55fc72d2c110-SpecificationConstruct" }, { - "id": "0x55bfd44feda0-SpecificationConstruct", + "id": "0x55fc72d2c110-SpecificationConstruct", "variantKey": "Statement", - "Statement": "0x55bfd44feda0-Statement" + "Statement": "0x55fc72d2c110-Statement" }, { - "id": "0x55bfd44feda0-Statement", - "statement": "0x55bfd452bf40-TypeDeclarationStmt", + "id": "0x55fc72d2c110-Statement", + "statement": "0x55fc72d58f10-TypeDeclarationStmt", "source": "integer :: i, dummy, a = 2" }, { - "id": "0x55bfd452bf40-TypeDeclarationStmt", - "DeclarationTypeSpec": "0x55bfd452bf70-DeclarationTypeSpec", + "id": "0x55fc72d58f10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55fc72d58f40-DeclarationTypeSpec", "EntityDecl": [ - "0x55bfd452c2a0-EntityDecl", - "0x55bfd452c050-EntityDecl", - "0x55bfd452c1b0-EntityDecl" + "0x55fc72d59270-EntityDecl", + "0x55fc72d59020-EntityDecl", + "0x55fc72d59180-EntityDecl" ] }, { - "id": "0x55bfd452bf70-DeclarationTypeSpec", + "id": "0x55fc72d58f40-DeclarationTypeSpec", "variantKey": "IntrinsicTypeSpec", - "IntrinsicTypeSpec": "0x55bfd452bf70-IntrinsicTypeSpec" + "IntrinsicTypeSpec": "0x55fc72d58f40-IntrinsicTypeSpec" }, { - "id": "0x55bfd452bf70-IntrinsicTypeSpec", + "id": "0x55fc72d58f40-IntrinsicTypeSpec", "variantKey": "IntegerTypeSpec", - "IntegerTypeSpec": "0x55bfd452bf70-IntegerTypeSpec" + "IntegerTypeSpec": "0x55fc72d58f40-IntegerTypeSpec" }, { - "id": "0x55bfd452bf70-IntegerTypeSpec" + "id": "0x55fc72d58f40-IntegerTypeSpec" }, { - "id": "0x55bfd452c2a0-EntityDecl", - "Name": "0x55bfd452c358-Name" + "id": "0x55fc72d59270-EntityDecl", + "Name": "0x55fc72d59328-Name" }, { - "id": "0x55bfd452c358-Name", + "id": "0x55fc72d59328-Name", "source": "i" }, { - "id": "0x55bfd452c050-EntityDecl", - "Name": "0x55bfd452c108-Name" + "id": "0x55fc72d59020-EntityDecl", + "Name": "0x55fc72d590d8-Name" }, { - "id": "0x55bfd452c108-Name", + "id": "0x55fc72d590d8-Name", "source": "dummy" }, { - "id": "0x55bfd452c1b0-EntityDecl", - "Name": "0x55bfd452c268-Name", - "Initialization": "0x55bfd452c1b0-Initialization" + "id": "0x55fc72d59180-EntityDecl", + "Name": "0x55fc72d59238-Name", + "Initialization": "0x55fc72d59180-Initialization" }, { - "id": "0x55bfd452c268-Name", + "id": "0x55fc72d59238-Name", "source": "a" }, { - "id": "0x55bfd452c1b0-Initialization", + "id": "0x55fc72d59180-Initialization", "variantKey": "Expr", - "Expr": "0x55bfd4491790-Expr" + "Expr": "0x55fc72cbe790-Expr" }, { - "id": "0x55bfd4491790-Expr", + "id": "0x55fc72cbe790-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd44917b0-LiteralConstant" + "LiteralConstant": "0x55fc72cbe7b0-LiteralConstant" }, { - "id": "0x55bfd44917b0-LiteralConstant", + "id": "0x55fc72cbe7b0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd44917b0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72cbe7b0-IntLiteralConstant" }, { - "id": "0x55bfd44917b0-IntLiteralConstant", + "id": "0x55fc72cbe7b0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55bfd451ffc8-ExecutionPart", + "id": "0x55fc72d4ac18-ExecutionPart", "ExecutionPartConstruct": [ - "0x55bfd452bd90-ExecutionPartConstruct", - "0x55bfd452cb30-ExecutionPartConstruct", - "0x55bfd451cc60-ExecutionPartConstruct" + "0x55fc72d59ec0-ExecutionPartConstruct", + "0x55fc72d5a5c0-ExecutionPartConstruct", + "0x55fc72d5ac70-ExecutionPartConstruct" ] }, { - "id": "0x55bfd451ffc8-ExecutionPartConstruct" + "id": "0x55fc72d4ac18-ExecutionPartConstruct" }, { - "id": "0x55bfd452bd90-ExecutionPartConstruct", + "id": "0x55fc72d59ec0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452bd90-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d59ec0-ExecutableConstruct" }, { - "id": "0x55bfd452bd90-ExecutableConstruct", + "id": "0x55fc72d59ec0-ExecutableConstruct", + "variantKey": "OpenMPConstruct", + "OpenMPConstruct": "0x55fc72d5a400-OpenMPConstruct" + }, + { + "id": "0x55fc72d5a400-OpenMPConstruct", + "variantKey": "OpenMPLoopConstruct", + "OpenMPLoopConstruct": "0x55fc72d5a400-OpenMPLoopConstruct" + }, + { + "id": "0x55fc72d5a400-OpenMPLoopConstruct", + "OmpBeginLoopDirective": "0x55fc72d5a4c0-OmpBeginLoopDirective", + "ExecutionPartConstruct": [ + "0x55fc72d5b280-ExecutionPartConstruct" + ], + "OmpEndLoopDirective": "0x55fc72d5a410-OmpEndLoopDirective" + }, + { + "id": "0x55fc72d5a4c0-OmpBeginLoopDirective", + "OmpDirectiveName": "0x55fc72d5a538-OmpDirectiveName", + "OmpClauseList": "0x55fc72d5a4d8-OmpClauseList", + "Flags = {}": "0x55fc72d5a4d0-Flags = {}" + }, + { + "id": "0x55fc72d5a538-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x55fc72d5a4d8-OmpClauseList" + }, + { + "id": "0x55fc72d5a4a8-ExecutionPartConstruct" + }, + { + "id": "0x55fc72d5b280-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55fc72d5b280-ExecutableConstruct" + }, + { + "id": "0x55fc72d5b280-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55bfd44c7780-DoConstruct" + "DoConstruct": "0x55fc72cf4780-DoConstruct" }, { - "id": "0x55bfd44c7780-DoConstruct", - "Statement": "0x55bfd44c77d8-Statement", + "id": "0x55fc72cf4780-DoConstruct", + "Statement": "0x55fc72cf47d8-Statement", "ExecutionPartConstruct": [ - "0x55bfd452d3c0-ExecutionPartConstruct", - "0x55bfd452cdb0-ExecutionPartConstruct" + "0x55fc72d537e0-ExecutionPartConstruct", + "0x55fc72d5a060-ExecutionPartConstruct" ], - "Statement": "0x55bfd44c7780-Statement" + "Statement": "0x55fc72cf4780-Statement" }, { - "id": "0x55bfd44c77d8-Statement", - "statement": "0x55bfd44c77e8-NonLabelDoStmt", + "id": "0x55fc72cf47d8-Statement", + "statement": "0x55fc72cf47e8-NonLabelDoStmt", "source": "do i = 1, 5, a" }, { - "id": "0x55bfd44c77e8-NonLabelDoStmt", - "LoopControl": "0x55bfd44c77e8-LoopControl" + "id": "0x55fc72cf47e8-NonLabelDoStmt", + "LoopControl": "0x55fc72cf47e8-LoopControl" }, { - "id": "0x55bfd44c77e8-LoopControl", + "id": "0x55fc72cf47e8-LoopControl", "variantKey": "LoopBounds", - "LoopBounds": "0x55bfd44c77e8-LoopBounds" + "LoopBounds": "0x55fc72cf47e8-LoopBounds" }, { - "id": "0x55bfd44c77e8-LoopBounds", - "var": "0x55bfd44c77e8-Name", - "lower": "0x55bfd452c740-Expr", - "upper": "0x55bfd452c820-Expr", - "step": "0x55bfd452ca40-Expr" + "id": "0x55fc72cf47e8-LoopBounds", + "var": "0x55fc72cf47e8-Name", + "lower": "0x55fc72d594b0-Expr", + "upper": "0x55fc72d59dd0-Expr", + "step": "0x55fc72d59f70-Expr" }, { - "id": "0x55bfd44c77e8-Name", + "id": "0x55fc72cf47e8-Name", "source": "i" }, { - "id": "0x55bfd452c740-Expr", + "id": "0x55fc72d594b0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452c760-LiteralConstant" + "LiteralConstant": "0x55fc72d594d0-LiteralConstant" }, { - "id": "0x55bfd452c760-LiteralConstant", + "id": "0x55fc72d594d0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452c760-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d594d0-IntLiteralConstant" }, { - "id": "0x55bfd452c760-IntLiteralConstant", + "id": "0x55fc72d594d0-IntLiteralConstant", "CharBlock": "1" }, { - "id": "0x55bfd452c820-Expr", + "id": "0x55fc72d59dd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452c840-LiteralConstant" + "LiteralConstant": "0x55fc72d59df0-LiteralConstant" }, { - "id": "0x55bfd452c840-LiteralConstant", + "id": "0x55fc72d59df0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452c840-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d59df0-IntLiteralConstant" }, { - "id": "0x55bfd452c840-IntLiteralConstant", + "id": "0x55fc72d59df0-IntLiteralConstant", "CharBlock": "5" }, { - "id": "0x55bfd452ca40-Expr", + "id": "0x55fc72d59f70-Expr", "variantKey": "Designator", - "Designator": "0x55bfd452c900-Designator" + "Designator": "0x55fc72d5b410-Designator" }, { - "id": "0x55bfd452c900-Designator", + "id": "0x55fc72d5b410-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd452c910-DataRef" + "DataRef": "0x55fc72d5b420-DataRef" }, { - "id": "0x55bfd452c910-DataRef", + "id": "0x55fc72d5b420-DataRef", "variantKey": "Name", - "Name": "0x55bfd452c910-Name" + "Name": "0x55fc72d5b420-Name" }, { - "id": "0x55bfd452c910-Name", + "id": "0x55fc72d5b420-Name", "source": "a" }, { - "id": "0x55bfd44c77c0-ExecutionPartConstruct" + "id": "0x55fc72cf47c0-ExecutionPartConstruct" }, { - "id": "0x55bfd452d3c0-ExecutionPartConstruct", + "id": "0x55fc72d537e0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452d3c0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d537e0-ExecutableConstruct" }, { - "id": "0x55bfd452d3c0-ExecutableConstruct", + "id": "0x55fc72d537e0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd452d3c0-Statement" + "Statement": "0x55fc72d537e0-Statement" }, { - "id": "0x55bfd452d3c0-Statement", - "statement": "0x55bfd452d3d0-ActionStmt", + "id": "0x55fc72d537e0-Statement", + "statement": "0x55fc72d537f0-ActionStmt", "source": "dummy = 3" }, { - "id": "0x55bfd452d3d0-ActionStmt", + "id": "0x55fc72d537f0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd452cb80-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5a220-AssignmentStmt" }, { - "id": "0x55bfd452cb80-AssignmentStmt", - "Variable": "0x55bfd452cc60-Variable", - "Expr": "0x55bfd452cb90-Expr" + "id": "0x55fc72d5a220-AssignmentStmt", + "Variable": "0x55fc72d5a300-Variable", + "Expr": "0x55fc72d5a230-Expr" }, { - "id": "0x55bfd452cc60-Variable", + "id": "0x55fc72d5a300-Variable", "variantKey": "Designator", - "Designator": "0x55bfd44f04d0-Designator" + "Designator": "0x55fc72d5a0b0-Designator" }, { - "id": "0x55bfd44f04d0-Designator", + "id": "0x55fc72d5a0b0-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd44f04e0-DataRef" + "DataRef": "0x55fc72d5a0c0-DataRef" }, { - "id": "0x55bfd44f04e0-DataRef", + "id": "0x55fc72d5a0c0-DataRef", "variantKey": "Name", - "Name": "0x55bfd44f04e0-Name" + "Name": "0x55fc72d5a0c0-Name" }, { - "id": "0x55bfd44f04e0-Name", + "id": "0x55fc72d5a0c0-Name", "source": "dummy" }, { - "id": "0x55bfd452cb90-Expr", + "id": "0x55fc72d5a230-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452cbb0-LiteralConstant" + "LiteralConstant": "0x55fc72d5a250-LiteralConstant" }, { - "id": "0x55bfd452cbb0-LiteralConstant", + "id": "0x55fc72d5a250-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452cbb0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a250-IntLiteralConstant" }, { - "id": "0x55bfd452cbb0-IntLiteralConstant", + "id": "0x55fc72d5a250-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x55bfd452cdb0-ExecutionPartConstruct", + "id": "0x55fc72d5a060-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452cdb0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5a060-ExecutableConstruct" }, { - "id": "0x55bfd452cdb0-ExecutableConstruct", + "id": "0x55fc72d5a060-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd452cdb0-Statement" + "Statement": "0x55fc72d5a060-Statement" }, { - "id": "0x55bfd452cdb0-Statement", - "statement": "0x55bfd452cdc0-ActionStmt", + "id": "0x55fc72d5a060-Statement", + "statement": "0x55fc72d5a070-ActionStmt", "source": "dummy = 4" }, { - "id": "0x55bfd452cdc0-ActionStmt", + "id": "0x55fc72d5a070-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd452cc90-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5a110-AssignmentStmt" }, { - "id": "0x55bfd452cc90-AssignmentStmt", - "Variable": "0x55bfd452cd70-Variable", - "Expr": "0x55bfd452cca0-Expr" + "id": "0x55fc72d5a110-AssignmentStmt", + "Variable": "0x55fc72d5a1f0-Variable", + "Expr": "0x55fc72d5a120-Expr" }, { - "id": "0x55bfd452cd70-Variable", + "id": "0x55fc72d5a1f0-Variable", "variantKey": "Designator", - "Designator": "0x55bfd44ff100-Designator" + "Designator": "0x55fc72d5a330-Designator" }, { - "id": "0x55bfd44ff100-Designator", + "id": "0x55fc72d5a330-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd44ff110-DataRef" + "DataRef": "0x55fc72d5a340-DataRef" }, { - "id": "0x55bfd44ff110-DataRef", + "id": "0x55fc72d5a340-DataRef", "variantKey": "Name", - "Name": "0x55bfd44ff110-Name" + "Name": "0x55fc72d5a340-Name" }, { - "id": "0x55bfd44ff110-Name", + "id": "0x55fc72d5a340-Name", "source": "dummy" }, { - "id": "0x55bfd452cca0-Expr", + "id": "0x55fc72d5a120-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd452ccc0-LiteralConstant" + "LiteralConstant": "0x55fc72d5a140-LiteralConstant" }, { - "id": "0x55bfd452ccc0-LiteralConstant", + "id": "0x55fc72d5a140-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd452ccc0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a140-IntLiteralConstant" }, { - "id": "0x55bfd452ccc0-IntLiteralConstant", + "id": "0x55fc72d5a140-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55bfd44c7780-Statement", - "statement": "0x55bfd44c7790-EndDoStmt", + "id": "0x55fc72cf4780-Statement", + "statement": "0x55fc72cf4790-EndDoStmt", "source": "end do" }, { - "id": "0x55bfd44c7790-EndDoStmt" + "id": "0x55fc72cf4790-EndDoStmt" + }, + { + "id": "0x55fc72d5a410-OmpEndLoopDirective", + "OmpDirectiveName": "0x55fc72d5a488-OmpDirectiveName", + "OmpClauseList": "0x55fc72d5a428-OmpClauseList", + "Flags = {}": "0x55fc72d5a420-Flags = {}" }, { - "id": "0x55bfd452cb30-ExecutionPartConstruct", + "id": "0x55fc72d5a488-OmpDirectiveName", + "directive": "parallel do" + }, + { + "id": "0x55fc72d5a428-OmpClauseList" + }, + { + "id": "0x55fc72d5a5c0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd452cb30-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5a5c0-ExecutableConstruct" }, { - "id": "0x55bfd452cb30-ExecutableConstruct", + "id": "0x55fc72d5a5c0-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55bfd451cad0-DoConstruct" + "DoConstruct": "0x55fc72d5aae0-DoConstruct" }, { - "id": "0x55bfd451cad0-DoConstruct", - "Statement": "0x55bfd451cb28-Statement", + "id": "0x55fc72d5aae0-DoConstruct", + "Statement": "0x55fc72d5ab38-Statement", "ExecutionPartConstruct": [ - "0x55bfd451ca80-ExecutionPartConstruct" + "0x55fc72d5aa90-ExecutionPartConstruct" ], - "Statement": "0x55bfd451cad0-Statement" + "Statement": "0x55fc72d5aae0-Statement" }, { - "id": "0x55bfd451cb28-Statement", - "statement": "0x55bfd451cb38-NonLabelDoStmt", + "id": "0x55fc72d5ab38-Statement", + "statement": "0x55fc72d5ab48-NonLabelDoStmt", "source": "do while(2 > 0)" }, { - "id": "0x55bfd451cb38-NonLabelDoStmt", - "LoopControl": "0x55bfd451cb38-LoopControl" + "id": "0x55fc72d5ab48-NonLabelDoStmt", + "LoopControl": "0x55fc72d5ab48-LoopControl" }, { - "id": "0x55bfd451cb38-LoopControl", + "id": "0x55fc72d5ab48-LoopControl", "variantKey": "Expr", - "Expr": "0x55bfd451c7c0-Expr" + "Expr": "0x55fc72d5a7d0-Expr" }, { - "id": "0x55bfd451c7c0-Expr", + "id": "0x55fc72d5a7d0-Expr", "variantKey": "GT", - "GT": "0x55bfd451c7e0-GT" + "GT": "0x55fc72d5a7f0-GT" }, { - "id": "0x55bfd451c7e0-GT", - "left": "0x55bfd451c6e0-Expr", - "right": "0x55bfd451c600-Expr", + "id": "0x55fc72d5a7f0-GT", + "left": "0x55fc72d5a6f0-Expr", + "right": "0x55fc72d5a610-Expr", "op": "GT" }, { - "id": "0x55bfd451c6e0-Expr", + "id": "0x55fc72d5a6f0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451c700-LiteralConstant" + "LiteralConstant": "0x55fc72d5a710-LiteralConstant" }, { - "id": "0x55bfd451c700-LiteralConstant", + "id": "0x55fc72d5a710-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451c700-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a710-IntLiteralConstant" }, { - "id": "0x55bfd451c700-IntLiteralConstant", + "id": "0x55fc72d5a710-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55bfd451c600-Expr", + "id": "0x55fc72d5a610-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451c620-LiteralConstant" + "LiteralConstant": "0x55fc72d5a630-LiteralConstant" }, { - "id": "0x55bfd451c620-LiteralConstant", + "id": "0x55fc72d5a630-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451c620-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a630-IntLiteralConstant" }, { - "id": "0x55bfd451c620-IntLiteralConstant", + "id": "0x55fc72d5a630-IntLiteralConstant", "CharBlock": "0" }, { - "id": "0x55bfd451cb10-ExecutionPartConstruct" + "id": "0x55fc72d5ab20-ExecutionPartConstruct" }, { - "id": "0x55bfd451ca80-ExecutionPartConstruct", + "id": "0x55fc72d5aa90-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd451ca80-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5aa90-ExecutableConstruct" }, { - "id": "0x55bfd451ca80-ExecutableConstruct", + "id": "0x55fc72d5aa90-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd451ca80-Statement" + "Statement": "0x55fc72d5aa90-Statement" }, { - "id": "0x55bfd451ca80-Statement", - "statement": "0x55bfd451ca90-ActionStmt", + "id": "0x55fc72d5aa90-Statement", + "statement": "0x55fc72d5aaa0-ActionStmt", "source": "dummy = 2" }, { - "id": "0x55bfd451ca90-ActionStmt", + "id": "0x55fc72d5aaa0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd451c960-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5a970-AssignmentStmt" }, { - "id": "0x55bfd451c960-AssignmentStmt", - "Variable": "0x55bfd451ca40-Variable", - "Expr": "0x55bfd451c970-Expr" + "id": "0x55fc72d5a970-AssignmentStmt", + "Variable": "0x55fc72d5aa50-Variable", + "Expr": "0x55fc72d5a980-Expr" }, { - "id": "0x55bfd451ca40-Variable", + "id": "0x55fc72d5aa50-Variable", "variantKey": "Designator", - "Designator": "0x55bfd452c960-Designator" + "Designator": "0x55fc72d59f10-Designator" }, { - "id": "0x55bfd452c960-Designator", + "id": "0x55fc72d59f10-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd452c970-DataRef" + "DataRef": "0x55fc72d59f20-DataRef" }, { - "id": "0x55bfd452c970-DataRef", + "id": "0x55fc72d59f20-DataRef", "variantKey": "Name", - "Name": "0x55bfd452c970-Name" + "Name": "0x55fc72d59f20-Name" }, { - "id": "0x55bfd452c970-Name", + "id": "0x55fc72d59f20-Name", "source": "dummy" }, { - "id": "0x55bfd451c970-Expr", + "id": "0x55fc72d5a980-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451c990-LiteralConstant" + "LiteralConstant": "0x55fc72d5a9a0-LiteralConstant" }, { - "id": "0x55bfd451c990-LiteralConstant", + "id": "0x55fc72d5a9a0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451c990-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5a9a0-IntLiteralConstant" }, { - "id": "0x55bfd451c990-IntLiteralConstant", + "id": "0x55fc72d5a9a0-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x55bfd451cad0-Statement", - "statement": "0x55bfd451cae0-EndDoStmt", + "id": "0x55fc72d5aae0-Statement", + "statement": "0x55fc72d5aaf0-EndDoStmt", "source": "end do" }, { - "id": "0x55bfd451cae0-EndDoStmt" + "id": "0x55fc72d5aaf0-EndDoStmt" }, { - "id": "0x55bfd451cc60-ExecutionPartConstruct", + "id": "0x55fc72d5ac70-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd451cc60-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5ac70-ExecutableConstruct" }, { - "id": "0x55bfd451cc60-ExecutableConstruct", + "id": "0x55fc72d5ac70-ExecutableConstruct", "variantKey": "DoConstruct", - "DoConstruct": "0x55bfd451ce20-DoConstruct" + "DoConstruct": "0x55fc72d5ff30-DoConstruct" }, { - "id": "0x55bfd451ce20-DoConstruct", - "Statement": "0x55bfd451ce78-Statement", + "id": "0x55fc72d5ff30-DoConstruct", + "Statement": "0x55fc72d5ff88-Statement", "ExecutionPartConstruct": [ - "0x55bfd451cdd0-ExecutionPartConstruct" + "0x55fc72d5fee0-ExecutionPartConstruct" ], - "Statement": "0x55bfd451ce20-Statement" + "Statement": "0x55fc72d5ff30-Statement" }, { - "id": "0x55bfd451ce78-Statement", - "statement": "0x55bfd451ce88-NonLabelDoStmt", + "id": "0x55fc72d5ff88-Statement", + "statement": "0x55fc72d5ff98-NonLabelDoStmt", "source": "name: do" }, { - "id": "0x55bfd451ce88-NonLabelDoStmt", - "Name": "0x55bfd451cf08-Name" + "id": "0x55fc72d5ff98-NonLabelDoStmt", + "Name": "0x55fc72d60018-Name" }, { - "id": "0x55bfd451cf08-Name", + "id": "0x55fc72d60018-Name", "source": "name" }, { - "id": "0x55bfd451ce60-ExecutionPartConstruct" + "id": "0x55fc72d5ff70-ExecutionPartConstruct" }, { - "id": "0x55bfd451cdd0-ExecutionPartConstruct", + "id": "0x55fc72d5fee0-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x55bfd451cdd0-ExecutableConstruct" + "ExecutableConstruct": "0x55fc72d5fee0-ExecutableConstruct" }, { - "id": "0x55bfd451cdd0-ExecutableConstruct", + "id": "0x55fc72d5fee0-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x55bfd451cdd0-Statement" + "Statement": "0x55fc72d5fee0-Statement" }, { - "id": "0x55bfd451cdd0-Statement", - "statement": "0x55bfd451cde0-ActionStmt", + "id": "0x55fc72d5fee0-Statement", + "statement": "0x55fc72d5fef0-ActionStmt", "source": "dummy = 4" }, { - "id": "0x55bfd451cde0-ActionStmt", + "id": "0x55fc72d5fef0-ActionStmt", "variantKey": "AssignmentStmt", - "AssignmentStmt": "0x55bfd451ccb0-AssignmentStmt" + "AssignmentStmt": "0x55fc72d5fdc0-AssignmentStmt" }, { - "id": "0x55bfd451ccb0-AssignmentStmt", - "Variable": "0x55bfd451cd90-Variable", - "Expr": "0x55bfd451ccc0-Expr" + "id": "0x55fc72d5fdc0-AssignmentStmt", + "Variable": "0x55fc72d5fea0-Variable", + "Expr": "0x55fc72d5fdd0-Expr" }, { - "id": "0x55bfd451cd90-Variable", + "id": "0x55fc72d5fea0-Variable", "variantKey": "Designator", - "Designator": "0x55bfd451cbf0-Designator" + "Designator": "0x55fc72d5ac00-Designator" }, { - "id": "0x55bfd451cbf0-Designator", + "id": "0x55fc72d5ac00-Designator", "variantKey": "DataRef", - "DataRef": "0x55bfd451cc00-DataRef" + "DataRef": "0x55fc72d5ac10-DataRef" }, { - "id": "0x55bfd451cc00-DataRef", + "id": "0x55fc72d5ac10-DataRef", "variantKey": "Name", - "Name": "0x55bfd451cc00-Name" + "Name": "0x55fc72d5ac10-Name" }, { - "id": "0x55bfd451cc00-Name", + "id": "0x55fc72d5ac10-Name", "source": "dummy" }, { - "id": "0x55bfd451ccc0-Expr", + "id": "0x55fc72d5fdd0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x55bfd451cce0-LiteralConstant" + "LiteralConstant": "0x55fc72d5fdf0-LiteralConstant" }, { - "id": "0x55bfd451cce0-LiteralConstant", + "id": "0x55fc72d5fdf0-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x55bfd451cce0-IntLiteralConstant" + "IntLiteralConstant": "0x55fc72d5fdf0-IntLiteralConstant" }, { - "id": "0x55bfd451cce0-IntLiteralConstant", + "id": "0x55fc72d5fdf0-IntLiteralConstant", "CharBlock": "4" }, { - "id": "0x55bfd451ce20-Statement", - "statement": "0x55bfd451ce30-EndDoStmt", + "id": "0x55fc72d5ff30-Statement", + "statement": "0x55fc72d5ff40-EndDoStmt", "source": "end do name" }, { - "id": "0x55bfd451ce30-EndDoStmt", - "Name": "0x55bfd451ce30-Name" + "id": "0x55fc72d5ff40-EndDoStmt", + "Name": "0x55fc72d5ff40-Name" }, { - "id": "0x55bfd451ce30-Name", + "id": "0x55fc72d5ff40-Name", "source": "name" }, { - "id": "0x55bfd451ff40-Statement", - "statement": "0x55bfd451ff50-EndProgramStmt", + "id": "0x55fc72d4ab90-Statement", + "statement": "0x55fc72d4aba0-EndProgramStmt", "source": "end program SIMPLE_LOOP" }, { - "id": "0x55bfd451ff50-EndProgramStmt", - "Name": "0x55bfd451ff50-Name" + "id": "0x55fc72d4aba0-EndProgramStmt", + "Name": "0x55fc72d4aba0-Name" }, { - "id": "0x55bfd451ff50-Name", + "id": "0x55fc72d4aba0-Name", "source": "SIMPLE_LOOP" } ], + "comments": [ + { + "text": "!use omp_lib", + "stmtId": "0x55fc72d2c110-Statement", + "trailing": false + } + ], "enums": { "Fortran::common::CUDADataAttr": [ "Constant", 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..8e09f548 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/expr/subscript_triplet.json @@ -0,0 +1,1278 @@ +{ + "nodes": [ + { + "id": "0x56478def6f00-Program", + "ProgramUnit": [ + "0x56478df326f0-ProgramUnit" + ] + }, + { + "id": "0x56478df326f0-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x56478df28680-MainProgram" + }, + { + "id": "0x56478df28680-MainProgram", + "Statement": "0x56478df287c8-Statement", + "SpecificationPart": "0x56478df28720-SpecificationPart", + "ExecutionPart": "0x56478df28708-ExecutionPart", + "Statement": "0x56478df28680-Statement" + }, + { + "id": "0x56478df287c8-Statement", + "statement": "0x56478df287d8-ProgramStmt", + "source": "program SUBSCRIPT_TRIPLET" + }, + { + "id": "0x56478df287d8-ProgramStmt", + "Name": "0x56478df287d8-Name" + }, + { + "id": "0x56478df287d8-Name", + "source": "SUBSCRIPT_TRIPLET" + }, + { + "id": "0x56478df28720-SpecificationPart", + "ImplicitPart": "0x56478df28738-ImplicitPart", + "DeclarationConstruct": [ + "0x56478df23a30-DeclarationConstruct" + ] + }, + { + "id": "0x56478df28738-ImplicitPart" + }, + { + "id": "0x56478df23a30-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x56478df23a30-SpecificationConstruct" + }, + { + "id": "0x56478df23a30-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x56478df23a30-Statement" + }, + { + "id": "0x56478df23a30-Statement", + "statement": "0x56478df3a460-TypeDeclarationStmt", + "source": "integer :: vec(10) = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]" + }, + { + "id": "0x56478df3a460-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x56478df3a490-DeclarationTypeSpec", + "EntityDecl": [ + "0x56478df23860-EntityDecl" + ] + }, + { + "id": "0x56478df3a490-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x56478df3a490-IntrinsicTypeSpec" + }, + { + "id": "0x56478df3a490-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x56478df3a490-IntegerTypeSpec" + }, + { + "id": "0x56478df3a490-IntegerTypeSpec" + }, + { + "id": "0x56478df23860-EntityDecl", + "Name": "0x56478df23918-Name", + "ArraySpec": "0x56478df238e0-ArraySpec", + "Initialization": "0x56478df23860-Initialization" + }, + { + "id": "0x56478df23918-Name", + "source": "vec" + }, + { + "id": "0x56478df238e0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x56478df326c0-ExplicitShapeSpec" + ] + }, + { + "id": "0x56478df326c0-ExplicitShapeSpec", + "upper_bound": "0x56478df326c0-SpecificationExpr" + }, + { + "id": "0x56478df326c0-SpecificationExpr", + "Expr": "0x56478df3a5d0-Expr" + }, + { + "id": "0x56478df3a5d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df3a5f0-LiteralConstant" + }, + { + "id": "0x56478df3a5f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df3a5f0-IntLiteralConstant" + }, + { + "id": "0x56478df3a5f0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56478df23860-Initialization", + "variantKey": "Expr", + "Expr": "0x56478df23770-Expr" + }, + { + "id": "0x56478df23770-Expr", + "variantKey": "ArrayConstructor", + "ArrayConstructor": "0x56478df23790-ArrayConstructor" + }, + { + "id": "0x56478df23790-ArrayConstructor", + "AcSpec": "0x56478df23790-AcSpec" + }, + { + "id": "0x56478df23790-AcSpec", + "values": [ + "0x56478df311d0-AcValue", + "0x56478df313d0-AcValue", + "0x56478df31ab0-AcValue", + "0x56478df31b70-AcValue", + "0x56478df31f70-AcValue", + "0x56478df327a0-AcValue", + "0x56478df32800-AcValue", + "0x56478df32840-AcValue", + "0x56478df31350-AcValue", + "0x56478df31120-AcValue" + ] + }, + { + "id": "0x56478df311d0-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df21b10-Expr" + }, + { + "id": "0x56478df21b10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df21b30-LiteralConstant" + }, + { + "id": "0x56478df21b30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df21b30-IntLiteralConstant" + }, + { + "id": "0x56478df21b30-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x56478df313d0-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df21db0-Expr" + }, + { + "id": "0x56478df21db0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df21dd0-LiteralConstant" + }, + { + "id": "0x56478df21dd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df21dd0-IntLiteralConstant" + }, + { + "id": "0x56478df21dd0-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x56478df31ab0-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df220b0-Expr" + }, + { + "id": "0x56478df220b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df220d0-LiteralConstant" + }, + { + "id": "0x56478df220d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df220d0-IntLiteralConstant" + }, + { + "id": "0x56478df220d0-IntLiteralConstant", + "CharBlock": "30" + }, + { + "id": "0x56478df31b70-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df223b0-Expr" + }, + { + "id": "0x56478df223b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df223d0-LiteralConstant" + }, + { + "id": "0x56478df223d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df223d0-IntLiteralConstant" + }, + { + "id": "0x56478df223d0-IntLiteralConstant", + "CharBlock": "40" + }, + { + "id": "0x56478df31f70-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df226b0-Expr" + }, + { + "id": "0x56478df226b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df226d0-LiteralConstant" + }, + { + "id": "0x56478df226d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df226d0-IntLiteralConstant" + }, + { + "id": "0x56478df226d0-IntLiteralConstant", + "CharBlock": "50" + }, + { + "id": "0x56478df327a0-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df229b0-Expr" + }, + { + "id": "0x56478df229b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df229d0-LiteralConstant" + }, + { + "id": "0x56478df229d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df229d0-IntLiteralConstant" + }, + { + "id": "0x56478df229d0-IntLiteralConstant", + "CharBlock": "60" + }, + { + "id": "0x56478df32800-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df22cb0-Expr" + }, + { + "id": "0x56478df22cb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df22cd0-LiteralConstant" + }, + { + "id": "0x56478df22cd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df22cd0-IntLiteralConstant" + }, + { + "id": "0x56478df22cd0-IntLiteralConstant", + "CharBlock": "70" + }, + { + "id": "0x56478df32840-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df22fb0-Expr" + }, + { + "id": "0x56478df22fb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df22fd0-LiteralConstant" + }, + { + "id": "0x56478df22fd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df22fd0-IntLiteralConstant" + }, + { + "id": "0x56478df22fd0-IntLiteralConstant", + "CharBlock": "80" + }, + { + "id": "0x56478df31350-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df232b0-Expr" + }, + { + "id": "0x56478df232b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df232d0-LiteralConstant" + }, + { + "id": "0x56478df232d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df232d0-IntLiteralConstant" + }, + { + "id": "0x56478df232d0-IntLiteralConstant", + "CharBlock": "90" + }, + { + "id": "0x56478df31120-AcValue", + "variantKey": "Expr", + "Expr": "0x56478df235b0-Expr" + }, + { + "id": "0x56478df235b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df235d0-LiteralConstant" + }, + { + "id": "0x56478df235d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df235d0-IntLiteralConstant" + }, + { + "id": "0x56478df235d0-IntLiteralConstant", + "CharBlock": "100" + }, + { + "id": "0x56478df28708-ExecutionPart", + "ExecutionPartConstruct": [ + "0x56478df22da0-ExecutionPartConstruct", + "0x56478df3a730-ExecutionPartConstruct", + "0x56478df24b80-ExecutionPartConstruct", + "0x56478df25000-ExecutionPartConstruct", + "0x56478df25690-ExecutionPartConstruct" + ] + }, + { + "id": "0x56478df28708-ExecutionPartConstruct" + }, + { + "id": "0x56478df22da0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56478df22da0-ExecutableConstruct" + }, + { + "id": "0x56478df22da0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56478df22da0-Statement" + }, + { + "id": "0x56478df22da0-Statement", + "statement": "0x56478df22db0-ActionStmt", + "source": "print *, vec(2:5)" + }, + { + "id": "0x56478df22db0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56478df23c00-PrintStmt" + }, + { + "id": "0x56478df23c00-PrintStmt", + "Format": "0x56478df23c18-Format", + "OutputItem": [ + "0x56478df24380-OutputItem" + ] + }, + { + "id": "0x56478df23c18-Format", + "variantKey": "Star", + "Star": "0x56478df23c18-Star" + }, + { + "id": "0x56478df23c18-Star" + }, + { + "id": "0x56478df24380-OutputItem", + "variantKey": "Expr", + "Expr": "0x56478df24380-Expr" + }, + { + "id": "0x56478df24380-Expr", + "variantKey": "Designator", + "Designator": "0x56478def54d0-Designator" + }, + { + "id": "0x56478def54d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x56478def54e0-DataRef" + }, + { + "id": "0x56478def54e0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56478df31180-ArrayElement" + }, + { + "id": "0x56478df31180-ArrayElement", + "base": "0x56478df31180-DataRef", + "subscripts": [ + "0x56478df2d250-SectionSubscript" + ] + }, + { + "id": "0x56478df31180-DataRef", + "variantKey": "Name", + "Name": "0x56478df31180-Name" + }, + { + "id": "0x56478df31180-Name", + "source": "vec" + }, + { + "id": "0x56478df2d250-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56478df2d250-SubscriptTriplet" + }, + { + "id": "0x56478df2d250-SubscriptTriplet", + "start": "0x56478df24290-Expr", + "end": "0x56478df340c0-Expr" + }, + { + "id": "0x56478df24290-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df242b0-LiteralConstant" + }, + { + "id": "0x56478df242b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df242b0-IntLiteralConstant" + }, + { + "id": "0x56478df242b0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x56478df340c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df340e0-LiteralConstant" + }, + { + "id": "0x56478df340e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df340e0-IntLiteralConstant" + }, + { + "id": "0x56478df340e0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x56478df3a730-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56478df3a730-ExecutableConstruct" + }, + { + "id": "0x56478df3a730-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56478df3a730-Statement" + }, + { + "id": "0x56478df3a730-Statement", + "statement": "0x56478df3a740-ActionStmt", + "source": "print *, vec(:4)" + }, + { + "id": "0x56478df3a740-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56478df23ed0-PrintStmt" + }, + { + "id": "0x56478df23ed0-PrintStmt", + "Format": "0x56478df23ee8-Format", + "OutputItem": [ + "0x56478df23df0-OutputItem" + ] + }, + { + "id": "0x56478df23ee8-Format", + "variantKey": "Star", + "Star": "0x56478df23ee8-Star" + }, + { + "id": "0x56478df23ee8-Star" + }, + { + "id": "0x56478df23df0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56478df23df0-Expr" + }, + { + "id": "0x56478df23df0-Expr", + "variantKey": "Designator", + "Designator": "0x56478df23090-Designator" + }, + { + "id": "0x56478df23090-Designator", + "variantKey": "DataRef", + "DataRef": "0x56478df230a0-DataRef" + }, + { + "id": "0x56478df230a0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56478df31200-ArrayElement" + }, + { + "id": "0x56478df31200-ArrayElement", + "base": "0x56478df31200-DataRef", + "subscripts": [ + "0x56478df3a850-SectionSubscript" + ] + }, + { + "id": "0x56478df31200-DataRef", + "variantKey": "Name", + "Name": "0x56478df31200-Name" + }, + { + "id": "0x56478df31200-Name", + "source": "vec" + }, + { + "id": "0x56478df3a850-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56478df3a850-SubscriptTriplet" + }, + { + "id": "0x56478df3a850-SubscriptTriplet", + "end": "0x56478df23d00-Expr" + }, + { + "id": "0x56478df23d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df23d20-LiteralConstant" + }, + { + "id": "0x56478df23d20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df23d20-IntLiteralConstant" + }, + { + "id": "0x56478df23d20-IntLiteralConstant", + "CharBlock": "4" + }, + { + "id": "0x56478df24b80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56478df24b80-ExecutableConstruct" + }, + { + "id": "0x56478df24b80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56478df24b80-Statement" + }, + { + "id": "0x56478df24b80-Statement", + "statement": "0x56478df24b90-ActionStmt", + "source": "print *, vec(1:9:2)" + }, + { + "id": "0x56478df24b90-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56478df24a70-PrintStmt" + }, + { + "id": "0x56478df24a70-PrintStmt", + "Format": "0x56478df24a88-Format", + "OutputItem": [ + "0x56478df24990-OutputItem" + ] + }, + { + "id": "0x56478df24a88-Format", + "variantKey": "Star", + "Star": "0x56478df24a88-Star" + }, + { + "id": "0x56478df24a88-Star" + }, + { + "id": "0x56478df24990-OutputItem", + "variantKey": "Expr", + "Expr": "0x56478df24990-Expr" + }, + { + "id": "0x56478df24990-Expr", + "variantKey": "Designator", + "Designator": "0x56478df04100-Designator" + }, + { + "id": "0x56478df04100-Designator", + "variantKey": "DataRef", + "DataRef": "0x56478df04110-DataRef" + }, + { + "id": "0x56478df04110-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56478df31260-ArrayElement" + }, + { + "id": "0x56478df31260-ArrayElement", + "base": "0x56478df31260-DataRef", + "subscripts": [ + "0x56478df2dcc0-SectionSubscript" + ] + }, + { + "id": "0x56478df31260-DataRef", + "variantKey": "Name", + "Name": "0x56478df31260-Name" + }, + { + "id": "0x56478df31260-Name", + "source": "vec" + }, + { + "id": "0x56478df2dcc0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56478df2dcc0-SubscriptTriplet" + }, + { + "id": "0x56478df2dcc0-SubscriptTriplet", + "start": "0x56478df24580-Expr", + "end": "0x56478df247c0-Expr", + "stride": "0x56478df248a0-Expr" + }, + { + "id": "0x56478df24580-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df245a0-LiteralConstant" + }, + { + "id": "0x56478df245a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df245a0-IntLiteralConstant" + }, + { + "id": "0x56478df245a0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x56478df247c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df247e0-LiteralConstant" + }, + { + "id": "0x56478df247e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df247e0-IntLiteralConstant" + }, + { + "id": "0x56478df247e0-IntLiteralConstant", + "CharBlock": "9" + }, + { + "id": "0x56478df248a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df248c0-LiteralConstant" + }, + { + "id": "0x56478df248c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df248c0-IntLiteralConstant" + }, + { + "id": "0x56478df248c0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x56478df25000-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56478df25000-ExecutableConstruct" + }, + { + "id": "0x56478df25000-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56478df25000-Statement" + }, + { + "id": "0x56478df25000-Statement", + "statement": "0x56478df25010-ActionStmt", + "source": "print *, vec(:)" + }, + { + "id": "0x56478df25010-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56478df24e80-PrintStmt" + }, + { + "id": "0x56478df24e80-PrintStmt", + "Format": "0x56478df24e98-Format", + "OutputItem": [ + "0x56478df24d30-OutputItem" + ] + }, + { + "id": "0x56478df24e98-Format", + "variantKey": "Star", + "Star": "0x56478df24e98-Star" + }, + { + "id": "0x56478df24e98-Star" + }, + { + "id": "0x56478df24d30-OutputItem", + "variantKey": "Expr", + "Expr": "0x56478df24d30-Expr" + }, + { + "id": "0x56478df24d30-Expr", + "variantKey": "Designator", + "Designator": "0x56478df04160-Designator" + }, + { + "id": "0x56478df04160-Designator", + "variantKey": "DataRef", + "DataRef": "0x56478df04170-DataRef" + }, + { + "id": "0x56478df04170-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56478df312a0-ArrayElement" + }, + { + "id": "0x56478df312a0-ArrayElement", + "base": "0x56478df312a0-DataRef", + "subscripts": [ + "0x56478df2dea0-SectionSubscript" + ] + }, + { + "id": "0x56478df312a0-DataRef", + "variantKey": "Name", + "Name": "0x56478df312a0-Name" + }, + { + "id": "0x56478df312a0-Name", + "source": "vec" + }, + { + "id": "0x56478df2dea0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56478df2dea0-SubscriptTriplet" + }, + { + "id": "0x56478df2dea0-SubscriptTriplet" + }, + { + "id": "0x56478df25690-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x56478df25690-ExecutableConstruct" + }, + { + "id": "0x56478df25690-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x56478df25690-Statement" + }, + { + "id": "0x56478df25690-Statement", + "statement": "0x56478df256a0-ActionStmt", + "source": "print *, vec(8:3:-2)" + }, + { + "id": "0x56478df256a0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x56478df25580-PrintStmt" + }, + { + "id": "0x56478df25580-PrintStmt", + "Format": "0x56478df25598-Format", + "OutputItem": [ + "0x56478df254a0-OutputItem" + ] + }, + { + "id": "0x56478df25598-Format", + "variantKey": "Star", + "Star": "0x56478df25598-Star" + }, + { + "id": "0x56478df25598-Star" + }, + { + "id": "0x56478df254a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x56478df254a0-Expr" + }, + { + "id": "0x56478df254a0-Expr", + "variantKey": "Designator", + "Designator": "0x56478df25430-Designator" + }, + { + "id": "0x56478df25430-Designator", + "variantKey": "DataRef", + "DataRef": "0x56478df25440-DataRef" + }, + { + "id": "0x56478df25440-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x56478df31300-ArrayElement" + }, + { + "id": "0x56478df31300-ArrayElement", + "base": "0x56478df31300-DataRef", + "subscripts": [ + "0x56478df2e040-SectionSubscript" + ] + }, + { + "id": "0x56478df31300-DataRef", + "variantKey": "Name", + "Name": "0x56478df31300-Name" + }, + { + "id": "0x56478df31300-Name", + "source": "vec" + }, + { + "id": "0x56478df2e040-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x56478df2e040-SubscriptTriplet" + }, + { + "id": "0x56478df2e040-SubscriptTriplet", + "start": "0x56478df25050-Expr", + "end": "0x56478df25130-Expr", + "stride": "0x56478df252f0-Expr" + }, + { + "id": "0x56478df25050-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df25070-LiteralConstant" + }, + { + "id": "0x56478df25070-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df25070-IntLiteralConstant" + }, + { + "id": "0x56478df25070-IntLiteralConstant", + "CharBlock": "8" + }, + { + "id": "0x56478df25130-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df25150-LiteralConstant" + }, + { + "id": "0x56478df25150-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df25150-IntLiteralConstant" + }, + { + "id": "0x56478df25150-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x56478df252f0-Expr", + "variantKey": "Negate", + "Negate": "0x56478df25310-Negate" + }, + { + "id": "0x56478df25310-Negate", + "Expr": "0x56478df25210-Expr", + "op": "NEGATE" + }, + { + "id": "0x56478df25210-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x56478df25230-LiteralConstant" + }, + { + "id": "0x56478df25230-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x56478df25230-IntLiteralConstant" + }, + { + "id": "0x56478df25230-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x56478df28680-Statement", + "statement": "0x56478df28690-EndProgramStmt", + "source": "end program SUBSCRIPT_TRIPLET" + }, + { + "id": "0x56478df28690-EndProgramStmt", + "Name": "0x56478df28690-Name" + }, + { + "id": "0x56478df28690-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/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_0001.json b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json index e69de29b..abbbe011 100644 --- a/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0001.json @@ -0,0 +1,1801 @@ +{ + "nodes": [ + { + "id": "0x55e6178d1cc0-Program", + "ProgramUnit": [ + "0x55e6178fa660-ProgramUnit" + ] + }, + { + "id": "0x55e6178fa660-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55e6178fba50-MainProgram" + }, + { + "id": "0x55e6178fba50-MainProgram", + "SpecificationPart": "0x55e6178fbaf0-SpecificationPart", + "ExecutionPart": "0x55e6178fbad8-ExecutionPart", + "Statement": "0x55e6178fba50-Statement" + }, + { + "id": "0x55e6178fbaf0-SpecificationPart", + "ImplicitPart": "0x55e6178fbb08-ImplicitPart", + "DeclarationConstruct": [ + "0x55e6178d85b0-DeclarationConstruct", + "0x55e6178d8240-DeclarationConstruct", + "0x55e6178aa140-DeclarationConstruct" + ] + }, + { + "id": "0x55e6178fbb08-ImplicitPart" + }, + { + "id": "0x55e6178d85b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e6178d85b0-SpecificationConstruct" + }, + { + "id": "0x55e6178d85b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178d85b0-Statement" + }, + { + "id": "0x55e6178d85b0-Statement", + "statement": "0x55e6178e0250-TypeDeclarationStmt", + "source": "integer*1 a1, a2" + }, + { + "id": "0x55e6178e0250-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e6178e0280-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e6178fcf30-EntityDecl", + "0x55e6178aa050-EntityDecl" + ] + }, + { + "id": "0x55e6178e0280-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e6178e0280-IntrinsicTypeSpec" + }, + { + "id": "0x55e6178e0280-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55e6178e0280-IntegerTypeSpec" + }, + { + "id": "0x55e6178e0280-IntegerTypeSpec", + "KindSelector": "0x55e6178e0280-KindSelector" + }, + { + "id": "0x55e6178e0280-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55e6178e0280-StarSize" + }, + { + "id": "0x55e6178e0280-StarSize", + "uint64_t": "1" + }, + { + "id": "0x55e6178fcf30-EntityDecl", + "Name": "0x55e6178fcfe8-Name" + }, + { + "id": "0x55e6178fcfe8-Name", + "source": "a1" + }, + { + "id": "0x55e6178aa050-EntityDecl", + "Name": "0x55e6178aa108-Name" + }, + { + "id": "0x55e6178aa108-Name", + "source": "a2" + }, + { + "id": "0x55e6178d8240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e6178d8240-SpecificationConstruct" + }, + { + "id": "0x55e6178d8240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178d8240-Statement" + }, + { + "id": "0x55e6178d8240-Statement", + "statement": "0x55e6178fcd00-TypeDeclarationStmt", + "source": "real*16 b1, b2" + }, + { + "id": "0x55e6178fcd00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e6178fcd30-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e6178fc2f0-EntityDecl", + "0x55e6178fc200-EntityDecl" + ] + }, + { + "id": "0x55e6178fcd30-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e6178fcd30-IntrinsicTypeSpec" + }, + { + "id": "0x55e6178fcd30-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x55e6178fcd30-Real" + }, + { + "id": "0x55e6178fcd30-Real", + "KindSelector": "0x55e6178fcd30-KindSelector" + }, + { + "id": "0x55e6178fcd30-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55e6178fcd30-StarSize" + }, + { + "id": "0x55e6178fcd30-StarSize", + "uint64_t": "16" + }, + { + "id": "0x55e6178fc2f0-EntityDecl", + "Name": "0x55e6178fc3a8-Name" + }, + { + "id": "0x55e6178fc3a8-Name", + "source": "b1" + }, + { + "id": "0x55e6178fc200-EntityDecl", + "Name": "0x55e6178fc2b8-Name" + }, + { + "id": "0x55e6178fc2b8-Name", + "source": "b2" + }, + { + "id": "0x55e6178aa140-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55e6178aa140-SpecificationConstruct" + }, + { + "id": "0x55e6178aa140-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178aa140-Statement" + }, + { + "id": "0x55e6178aa140-Statement", + "statement": "0x55e6178fcd80-TypeDeclarationStmt", + "source": "logical ok" + }, + { + "id": "0x55e6178fcd80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55e6178fcdb0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55e6178fc460-EntityDecl" + ] + }, + { + "id": "0x55e6178fcdb0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55e6178fcdb0-IntrinsicTypeSpec" + }, + { + "id": "0x55e6178fcdb0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55e6178fcdb0-Logical" + }, + { + "id": "0x55e6178fcdb0-Logical" + }, + { + "id": "0x55e6178fc460-EntityDecl", + "Name": "0x55e6178fc518-Name" + }, + { + "id": "0x55e6178fc518-Name", + "source": "ok" + }, + { + "id": "0x55e6178fbad8-ExecutionPart", + "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": "0x55e6178fbad8-ExecutionPartConstruct" + }, + { + "id": "0x55e6178fd890-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fd890-ExecutableConstruct" + }, + { + "id": "0x55e6178fd890-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fd890-Statement" + }, + { + "id": "0x55e6178fd890-Statement", + "statement": "0x55e6178fd8a0-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x55e6178fd8a0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e6178fb940-AssignmentStmt" + }, + { + "id": "0x55e6178fb940-AssignmentStmt", + "Variable": "0x55e6178fba20-Variable", + "Expr": "0x55e6178fb950-Expr" + }, + { + "id": "0x55e6178fba20-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178aa190-Designator" + }, + { + "id": "0x55e6178aa190-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178aa1a0-DataRef" + }, + { + "id": "0x55e6178aa1a0-DataRef", + "variantKey": "Name", + "Name": "0x55e6178aa1a0-Name" + }, + { + "id": "0x55e6178aa1a0-Name", + "source": "ok" + }, + { + "id": "0x55e6178fb950-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e6178fb970-LiteralConstant" + }, + { + "id": "0x55e6178fb970-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55e6178fb970-LogicalLiteralConstant" + }, + { + "id": "0x55e6178fb970-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x55e6178fdb60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fdb60-ExecutableConstruct" + }, + { + "id": "0x55e6178fdb60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fdb60-Statement" + }, + { + "id": "0x55e6178fdb60-Statement", + "statement": "0x55e6178fdb70-ActionStmt", + "source": "a1 = 1" + }, + { + "id": "0x55e6178fdb70-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e6178fda40-AssignmentStmt" + }, + { + "id": "0x55e6178fda40-AssignmentStmt", + "Variable": "0x55e6178fdb20-Variable", + "Expr": "0x55e6178fda50-Expr" + }, + { + "id": "0x55e6178fdb20-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178fc820-Designator" + }, + { + "id": "0x55e6178fc820-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fc830-DataRef" + }, + { + "id": "0x55e6178fc830-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fc830-Name" + }, + { + "id": "0x55e6178fc830-Name", + "source": "a1" + }, + { + "id": "0x55e6178fda50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e6178fda70-LiteralConstant" + }, + { + "id": "0x55e6178fda70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e6178fda70-IntLiteralConstant" + }, + { + "id": "0x55e6178fda70-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55e6178fd520-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fd520-ExecutableConstruct" + }, + { + "id": "0x55e6178fd520-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fd520-Statement" + }, + { + "id": "0x55e6178fd520-Statement", + "statement": "0x55e6178fd530-ActionStmt", + "source": "b1 = 1.1" + }, + { + "id": "0x55e6178fd530-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e6178fd400-AssignmentStmt" + }, + { + "id": "0x55e6178fd400-AssignmentStmt", + "Variable": "0x55e6178fd4e0-Variable", + "Expr": "0x55e6178fd410-Expr" + }, + { + "id": "0x55e6178fd4e0-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178fd140-Designator" + }, + { + "id": "0x55e6178fd140-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fd150-DataRef" + }, + { + "id": "0x55e6178fd150-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fd150-Name" + }, + { + "id": "0x55e6178fd150-Name", + "source": "b1" + }, + { + "id": "0x55e6178fd410-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e6178fd430-LiteralConstant" + }, + { + "id": "0x55e6178fd430-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55e6178fd430-RealLiteralConstant" + }, + { + "id": "0x55e6178fd430-RealLiteralConstant", + "real": "0x55e6178fd430-Real" + }, + { + "id": "0x55e6178fd430-Real", + "source": "1.1" + }, + { + "id": "0x55e6178fd1b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fd1b0-ExecutableConstruct" + }, + { + "id": "0x55e6178fd1b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fd1b0-Statement" + }, + { + "id": "0x55e6178fd1b0-Statement", + "statement": "0x55e6178fd1c0-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55e6178fd1c0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e6178fde30-AssignmentStmt" + }, + { + "id": "0x55e6178fde30-AssignmentStmt", + "Variable": "0x55e6178fdf10-Variable", + "Expr": "0x55e6178fde40-Expr" + }, + { + "id": "0x55e6178fdf10-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178fdbb0-Designator" + }, + { + "id": "0x55e6178fdbb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fdbc0-DataRef" + }, + { + "id": "0x55e6178fdbc0-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fdbc0-Name" + }, + { + "id": "0x55e6178fdbc0-Name", + "source": "a2" + }, + { + "id": "0x55e6178fde40-Expr", + "variantKey": "Designator", + "Designator": "0x55e6178fd630-Designator" + }, + { + "id": "0x55e6178fd630-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fd640-DataRef" + }, + { + "id": "0x55e6178fd640-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fd640-Name" + }, + { + "id": "0x55e6178fd640-Name", + "source": "b1" + }, + { + "id": "0x55e6178fe130-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fe130-ExecutableConstruct" + }, + { + "id": "0x55e6178fe130-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fe130-Statement" + }, + { + "id": "0x55e6178fe130-Statement", + "statement": "0x55e6178fe140-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55e6178fe140-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e6178fdfa0-AssignmentStmt" + }, + { + "id": "0x55e6178fdfa0-AssignmentStmt", + "Variable": "0x55e6178fe080-Variable", + "Expr": "0x55e6178fdfb0-Expr" + }, + { + "id": "0x55e6178fe080-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178fd570-Designator" + }, + { + "id": "0x55e6178fd570-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fd580-DataRef" + }, + { + "id": "0x55e6178fd580-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fd580-Name" + }, + { + "id": "0x55e6178fd580-Name", + "source": "b2" + }, + { + "id": "0x55e6178fdfb0-Expr", + "variantKey": "Designator", + "Designator": "0x55e6178fdf40-Designator" + }, + { + "id": "0x55e6178fdf40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fdf50-DataRef" + }, + { + "id": "0x55e6178fdf50-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fdf50-Name" + }, + { + "id": "0x55e6178fdf50-Name", + "source": "a1" + }, + { + "id": "0x55e6178fe1f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fe1f0-ExecutableConstruct" + }, + { + "id": "0x55e6178fe1f0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55e6178bb490-IfConstruct" + }, + { + "id": "0x55e6178bb490-IfConstruct", + "Statement": "0x55e6178bb560-Statement", + "ExecutionPartConstruct": [ + "0x55e6178fd210-ExecutionPartConstruct", + "0x55e617901b90-ExecutionPartConstruct" + ], + "Statement": "0x55e6178bb490-Statement" + }, + { + "id": "0x55e6178bb560-Statement", + "statement": "0x55e6178bb570-IfThenStmt", + "source": "if((a2 - b2) .ne. 0) then" + }, + { + "id": "0x55e6178bb570-IfThenStmt", + "Expr": "0x55e6178fead0-Expr" + }, + { + "id": "0x55e6178fead0-Expr", + "variantKey": "NE", + "NE": "0x55e6178feaf0-NE" + }, + { + "id": "0x55e6178feaf0-NE", + "left": "0x55e6178fe760-Expr", + "right": "0x55e6178fe680-Expr", + "op": "NE" + }, + { + "id": "0x55e6178fe760-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55e6178fe780-Parentheses" + }, + { + "id": "0x55e6178fe780-Parentheses", + "Expr": "0x55e6178fe5a0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55e6178fe5a0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e6178fe5c0-Subtract" + }, + { + "id": "0x55e6178fe5c0-Subtract", + "left": "0x55e6178fec90-Expr", + "right": "0x55e6178febb0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e6178fec90-Expr", + "variantKey": "Designator", + "Designator": "0x55e6178ff730-Designator" + }, + { + "id": "0x55e6178ff730-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178ff740-DataRef" + }, + { + "id": "0x55e6178ff740-DataRef", + "variantKey": "Name", + "Name": "0x55e6178ff740-Name" + }, + { + "id": "0x55e6178ff740-Name", + "source": "a2" + }, + { + "id": "0x55e6178febb0-Expr", + "variantKey": "Designator", + "Designator": "0x55e6178ff950-Designator" + }, + { + "id": "0x55e6178ff950-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178ff960-DataRef" + }, + { + "id": "0x55e6178ff960-DataRef", + "variantKey": "Name", + "Name": "0x55e6178ff960-Name" + }, + { + "id": "0x55e6178ff960-Name", + "source": "b2" + }, + { + "id": "0x55e6178fe680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e6178fe6a0-LiteralConstant" + }, + { + "id": "0x55e6178fe6a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e6178fe6a0-IntLiteralConstant" + }, + { + "id": "0x55e6178fe6a0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55e6178bb548-ExecutionPartConstruct" + }, + { + "id": "0x55e6178fd210-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fd210-ExecutableConstruct" + }, + { + "id": "0x55e6178fd210-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fd210-Statement" + }, + { + "id": "0x55e6178fd210-Statement", + "statement": "0x55e6178fd220-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55e6178fd220-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e6178feeb0-AssignmentStmt" + }, + { + "id": "0x55e6178feeb0-AssignmentStmt", + "Variable": "0x55e6178fef90-Variable", + "Expr": "0x55e6178feec0-Expr" + }, + { + "id": "0x55e6178fef90-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178fc7c0-Designator" + }, + { + "id": "0x55e6178fc7c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fc7d0-DataRef" + }, + { + "id": "0x55e6178fc7d0-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fc7d0-Name" + }, + { + "id": "0x55e6178fc7d0-Name", + "source": "ok" + }, + { + "id": "0x55e6178feec0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e6178feee0-LiteralConstant" + }, + { + "id": "0x55e6178feee0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55e6178feee0-LogicalLiteralConstant" + }, + { + "id": "0x55e6178feee0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55e617901b90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e617901b90-ExecutableConstruct" + }, + { + "id": "0x55e617901b90-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e617901b90-Statement" + }, + { + "id": "0x55e617901b90-Statement", + "statement": "0x55e617901ba0-ActionStmt", + "source": "print *, \"TEST1-NG =>\", a2 - b2" + }, + { + "id": "0x55e617901ba0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e617901a80-PrintStmt" + }, + { + "id": "0x55e617901a80-PrintStmt", + "Format": "0x55e617901a98-Format", + "OutputItem": [ + "0x55e6179019a0-OutputItem", + "0x55e6179018b0-OutputItem" + ] + }, + { + "id": "0x55e617901a98-Format", + "variantKey": "Star", + "Star": "0x55e617901a98-Star" + }, + { + "id": "0x55e617901a98-Star" + }, + { + "id": "0x55e6179019a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e6179019a0-Expr" + }, + { + "id": "0x55e6179019a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e6179019c0-LiteralConstant" + }, + { + "id": "0x55e6179019c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e6179019c0-CharLiteralConstant" + }, + { + "id": "0x55e6179019c0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x55e6179018b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e6179018b0-Expr" + }, + { + "id": "0x55e6179018b0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e6179018d0-Subtract" + }, + { + "id": "0x55e6179018d0-Subtract", + "left": "0x55e6179017c0-Expr", + "right": "0x55e6179016e0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e6179017c0-Expr", + "variantKey": "Designator", + "Designator": "0x55e6178fed70-Designator" + }, + { + "id": "0x55e6178fed70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fed80-DataRef" + }, + { + "id": "0x55e6178fed80-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fed80-Name" + }, + { + "id": "0x55e6178fed80-Name", + "source": "a2" + }, + { + "id": "0x55e6179016e0-Expr", + "variantKey": "Designator", + "Designator": "0x55e617901680-Designator" + }, + { + "id": "0x55e617901680-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617901690-DataRef" + }, + { + "id": "0x55e617901690-DataRef", + "variantKey": "Name", + "Name": "0x55e617901690-Name" + }, + { + "id": "0x55e617901690-Name", + "source": "b2" + }, + { + "id": "0x55e6178bb490-Statement", + "statement": "0x55e6178bb4a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55e6178bb4a0-EndIfStmt" + }, + { + "id": "0x55e6178fe8c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fe8c0-ExecutableConstruct" + }, + { + "id": "0x55e6178fe8c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fe8c0-Statement" + }, + { + "id": "0x55e6178fe8c0-Statement", + "statement": "0x55e6178fe8d0-ActionStmt", + "source": "a1 = -1" + }, + { + "id": "0x55e6178fe8d0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e617901cc0-AssignmentStmt" + }, + { + "id": "0x55e617901cc0-AssignmentStmt", + "Variable": "0x55e617901da0-Variable", + "Expr": "0x55e617901cd0-Expr" + }, + { + "id": "0x55e617901da0-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178d1af0-Designator" + }, + { + "id": "0x55e6178d1af0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178d1b00-DataRef" + }, + { + "id": "0x55e6178d1b00-DataRef", + "variantKey": "Name", + "Name": "0x55e6178d1b00-Name" + }, + { + "id": "0x55e6178d1b00-Name", + "source": "a1" + }, + { + "id": "0x55e617901cd0-Expr", + "variantKey": "Negate", + "Negate": "0x55e617901cf0-Negate" + }, + { + "id": "0x55e617901cf0-Negate", + "Expr": "0x55e617901be0-Expr", + "op": "NEGATE" + }, + { + "id": "0x55e617901be0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e617901c00-LiteralConstant" + }, + { + "id": "0x55e617901c00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e617901c00-IntLiteralConstant" + }, + { + "id": "0x55e617901c00-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55e6178fe4e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6178fe4e0-ExecutableConstruct" + }, + { + "id": "0x55e6178fe4e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e6178fe4e0-Statement" + }, + { + "id": "0x55e6178fe4e0-Statement", + "statement": "0x55e6178fe4f0-ActionStmt", + "source": "b1 = -1.1" + }, + { + "id": "0x55e6178fe4f0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e617901eb0-AssignmentStmt" + }, + { + "id": "0x55e617901eb0-AssignmentStmt", + "Variable": "0x55e617901f90-Variable", + "Expr": "0x55e617901ec0-Expr" + }, + { + "id": "0x55e617901f90-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178fe2b0-Designator" + }, + { + "id": "0x55e6178fe2b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fe2c0-DataRef" + }, + { + "id": "0x55e6178fe2c0-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fe2c0-Name" + }, + { + "id": "0x55e6178fe2c0-Name", + "source": "b1" + }, + { + "id": "0x55e617901ec0-Expr", + "variantKey": "Negate", + "Negate": "0x55e617901ee0-Negate" + }, + { + "id": "0x55e617901ee0-Negate", + "Expr": "0x55e617901dd0-Expr", + "op": "NEGATE" + }, + { + "id": "0x55e617901dd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e617901df0-LiteralConstant" + }, + { + "id": "0x55e617901df0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55e617901df0-RealLiteralConstant" + }, + { + "id": "0x55e617901df0-RealLiteralConstant", + "real": "0x55e617901df0-Real" + }, + { + "id": "0x55e617901df0-Real", + "source": "1.1" + }, + { + "id": "0x55e617902200-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e617902200-ExecutableConstruct" + }, + { + "id": "0x55e617902200-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e617902200-Statement" + }, + { + "id": "0x55e617902200-Statement", + "statement": "0x55e617902210-ActionStmt", + "source": "a2 = b1" + }, + { + "id": "0x55e617902210-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e6179020e0-AssignmentStmt" + }, + { + "id": "0x55e6179020e0-AssignmentStmt", + "Variable": "0x55e6179021c0-Variable", + "Expr": "0x55e6179020f0-Expr" + }, + { + "id": "0x55e6179021c0-Variable", + "variantKey": "Designator", + "Designator": "0x55e617901620-Designator" + }, + { + "id": "0x55e617901620-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617901630-DataRef" + }, + { + "id": "0x55e617901630-DataRef", + "variantKey": "Name", + "Name": "0x55e617901630-Name" + }, + { + "id": "0x55e617901630-Name", + "source": "a2" + }, + { + "id": "0x55e6179020f0-Expr", + "variantKey": "Designator", + "Designator": "0x55e617902080-Designator" + }, + { + "id": "0x55e617902080-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617902090-DataRef" + }, + { + "id": "0x55e617902090-DataRef", + "variantKey": "Name", + "Name": "0x55e617902090-Name" + }, + { + "id": "0x55e617902090-Name", + "source": "b1" + }, + { + "id": "0x55e617902430-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e617902430-ExecutableConstruct" + }, + { + "id": "0x55e617902430-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e617902430-Statement" + }, + { + "id": "0x55e617902430-Statement", + "statement": "0x55e617902440-ActionStmt", + "source": "b2 = a1" + }, + { + "id": "0x55e617902440-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e617902310-AssignmentStmt" + }, + { + "id": "0x55e617902310-AssignmentStmt", + "Variable": "0x55e6179023f0-Variable", + "Expr": "0x55e617902320-Expr" + }, + { + "id": "0x55e6179023f0-Variable", + "variantKey": "Designator", + "Designator": "0x55e617901fc0-Designator" + }, + { + "id": "0x55e617901fc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617901fd0-DataRef" + }, + { + "id": "0x55e617901fd0-DataRef", + "variantKey": "Name", + "Name": "0x55e617901fd0-Name" + }, + { + "id": "0x55e617901fd0-Name", + "source": "b2" + }, + { + "id": "0x55e617902320-Expr", + "variantKey": "Designator", + "Designator": "0x55e6179022b0-Designator" + }, + { + "id": "0x55e6179022b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6179022c0-DataRef" + }, + { + "id": "0x55e6179022c0-DataRef", + "variantKey": "Name", + "Name": "0x55e6179022c0-Name" + }, + { + "id": "0x55e6179022c0-Name", + "source": "a1" + }, + { + "id": "0x55e6179024f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e6179024f0-ExecutableConstruct" + }, + { + "id": "0x55e6179024f0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55e617903390-IfConstruct" + }, + { + "id": "0x55e617903390-IfConstruct", + "Statement": "0x55e617903460-Statement", + "ExecutionPartConstruct": [ + "0x55e617902260-ExecutionPartConstruct", + "0x55e617903340-ExecutionPartConstruct" + ], + "Statement": "0x55e617903390-Statement" + }, + { + "id": "0x55e617903460-Statement", + "statement": "0x55e617903470-IfThenStmt", + "source": "if((a2 - b2) .ne. 0) then" + }, + { + "id": "0x55e617903470-IfThenStmt", + "Expr": "0x55e617902900-Expr" + }, + { + "id": "0x55e617902900-Expr", + "variantKey": "NE", + "NE": "0x55e617902920-NE" + }, + { + "id": "0x55e617902920-NE", + "left": "0x55e6179027c0-Expr", + "right": "0x55e6179026e0-Expr", + "op": "NE" + }, + { + "id": "0x55e6179027c0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55e6179027e0-Parentheses" + }, + { + "id": "0x55e6179027e0-Parentheses", + "Expr": "0x55e617902600-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55e617902600-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e617902620-Subtract" + }, + { + "id": "0x55e617902620-Subtract", + "left": "0x55e617902ac0-Expr", + "right": "0x55e6179029e0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e617902ac0-Expr", + "variantKey": "Designator", + "Designator": "0x55e617902d10-Designator" + }, + { + "id": "0x55e617902d10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617902d20-DataRef" + }, + { + "id": "0x55e617902d20-DataRef", + "variantKey": "Name", + "Name": "0x55e617902d20-Name" + }, + { + "id": "0x55e617902d20-Name", + "source": "a2" + }, + { + "id": "0x55e6179029e0-Expr", + "variantKey": "Designator", + "Designator": "0x55e617902d70-Designator" + }, + { + "id": "0x55e617902d70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617902d80-DataRef" + }, + { + "id": "0x55e617902d80-DataRef", + "variantKey": "Name", + "Name": "0x55e617902d80-Name" + }, + { + "id": "0x55e617902d80-Name", + "source": "b2" + }, + { + "id": "0x55e6179026e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e617902700-LiteralConstant" + }, + { + "id": "0x55e617902700-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55e617902700-IntLiteralConstant" + }, + { + "id": "0x55e617902700-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55e617903448-ExecutionPartConstruct" + }, + { + "id": "0x55e617902260-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e617902260-ExecutableConstruct" + }, + { + "id": "0x55e617902260-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e617902260-Statement" + }, + { + "id": "0x55e617902260-Statement", + "statement": "0x55e617902270-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55e617902270-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55e617902c00-AssignmentStmt" + }, + { + "id": "0x55e617902c00-AssignmentStmt", + "Variable": "0x55e617902ce0-Variable", + "Expr": "0x55e617902c10-Expr" + }, + { + "id": "0x55e617902ce0-Variable", + "variantKey": "Designator", + "Designator": "0x55e6178fe180-Designator" + }, + { + "id": "0x55e6178fe180-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fe190-DataRef" + }, + { + "id": "0x55e6178fe190-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fe190-Name" + }, + { + "id": "0x55e6178fe190-Name", + "source": "ok" + }, + { + "id": "0x55e617902c10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e617902c30-LiteralConstant" + }, + { + "id": "0x55e617902c30-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55e617902c30-LogicalLiteralConstant" + }, + { + "id": "0x55e617902c30-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55e617903340-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e617903340-ExecutableConstruct" + }, + { + "id": "0x55e617903340-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e617903340-Statement" + }, + { + "id": "0x55e617903340-Statement", + "statement": "0x55e617903350-ActionStmt", + "source": "print *, \"TEST2-NG =>\", a2 - b2" + }, + { + "id": "0x55e617903350-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e617903230-PrintStmt" + }, + { + "id": "0x55e617903230-PrintStmt", + "Format": "0x55e617903248-Format", + "OutputItem": [ + "0x55e617903150-OutputItem", + "0x55e617903060-OutputItem" + ] + }, + { + "id": "0x55e617903248-Format", + "variantKey": "Star", + "Star": "0x55e617903248-Star" + }, + { + "id": "0x55e617903248-Star" + }, + { + "id": "0x55e617903150-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e617903150-Expr" + }, + { + "id": "0x55e617903150-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e617903170-LiteralConstant" + }, + { + "id": "0x55e617903170-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e617903170-CharLiteralConstant" + }, + { + "id": "0x55e617903170-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x55e617903060-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e617903060-Expr" + }, + { + "id": "0x55e617903060-Expr", + "variantKey": "Subtract", + "Subtract": "0x55e617903080-Subtract" + }, + { + "id": "0x55e617903080-Subtract", + "left": "0x55e617902f70-Expr", + "right": "0x55e617902e90-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55e617902f70-Expr", + "variantKey": "Designator", + "Designator": "0x55e617902ba0-Designator" + }, + { + "id": "0x55e617902ba0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617902bb0-DataRef" + }, + { + "id": "0x55e617902bb0-DataRef", + "variantKey": "Name", + "Name": "0x55e617902bb0-Name" + }, + { + "id": "0x55e617902bb0-Name", + "source": "a2" + }, + { + "id": "0x55e617902e90-Expr", + "variantKey": "Designator", + "Designator": "0x55e617902e30-Designator" + }, + { + "id": "0x55e617902e30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e617902e40-DataRef" + }, + { + "id": "0x55e617902e40-DataRef", + "variantKey": "Name", + "Name": "0x55e617902e40-Name" + }, + { + "id": "0x55e617902e40-Name", + "source": "b2" + }, + { + "id": "0x55e617903390-Statement", + "statement": "0x55e6179033a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55e6179033a0-EndIfStmt" + }, + { + "id": "0x55e617902030-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e617902030-ExecutableConstruct" + }, + { + "id": "0x55e617902030-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55e617903890-IfConstruct" + }, + { + "id": "0x55e617903890-IfConstruct", + "Statement": "0x55e617903960-Statement", + "ExecutionPartConstruct": [ + "0x55e617902550-ExecutionPartConstruct" + ], + "Statement": "0x55e617903890-Statement" + }, + { + "id": "0x55e617903960-Statement", + "statement": "0x55e617903970-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x55e617903970-IfThenStmt", + "Expr": "0x55e6179034b0-Expr" + }, + { + "id": "0x55e6179034b0-Expr", + "variantKey": "Designator", + "Designator": "0x55e6178fd5d0-Designator" + }, + { + "id": "0x55e6178fd5d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55e6178fd5e0-DataRef" + }, + { + "id": "0x55e6178fd5e0-DataRef", + "variantKey": "Name", + "Name": "0x55e6178fd5e0-Name" + }, + { + "id": "0x55e6178fd5e0-Name", + "source": "ok" + }, + { + "id": "0x55e617903948-ExecutionPartConstruct" + }, + { + "id": "0x55e617902550-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55e617902550-ExecutableConstruct" + }, + { + "id": "0x55e617902550-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55e617902550-Statement" + }, + { + "id": "0x55e617902550-Statement", + "statement": "0x55e617902560-ActionStmt", + "source": "print *, \"OK\"" + }, + { + "id": "0x55e617902560-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55e617903790-PrintStmt" + }, + { + "id": "0x55e617903790-PrintStmt", + "Format": "0x55e6179037a8-Format", + "OutputItem": [ + "0x55e6179036b0-OutputItem" + ] + }, + { + "id": "0x55e6179037a8-Format", + "variantKey": "Star", + "Star": "0x55e6179037a8-Star" + }, + { + "id": "0x55e6179037a8-Star" + }, + { + "id": "0x55e6179036b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55e6179036b0-Expr" + }, + { + "id": "0x55e6179036b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55e6179036d0-LiteralConstant" + }, + { + "id": "0x55e6179036d0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55e6179036d0-CharLiteralConstant" + }, + { + "id": "0x55e6179036d0-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55e617903890-Statement", + "statement": "0x55e6179038a0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55e6179038a0-EndIfStmt" + }, + { + "id": "0x55e6178fba50-Statement", + "statement": "0x55e6178fba60-EndProgramStmt", + "source": "end" + }, + { + "id": "0x55e6178fba60-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/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 new file mode 100644 index 00000000..e34d6ac3 --- /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 PROGRAM \ 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..34cc3b1c --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0029.json @@ -0,0 +1,1523 @@ +{ + "nodes": [ + { + "id": "0x561d88ccaf00-Program", + "ProgramUnit": [ + "0x561d88d06810-ProgramUnit" + ] + }, + { + "id": "0x561d88d06810-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x561d88cfea10-MainProgram" + }, + { + "id": "0x561d88cfea10-MainProgram", + "SpecificationPart": "0x561d88cfeab0-SpecificationPart", + "ExecutionPart": "0x561d88cfea98-ExecutionPart", + "Statement": "0x561d88cfea10-Statement" + }, + { + "id": "0x561d88cfeab0-SpecificationPart", + "ImplicitPart": "0x561d88cfeac8-ImplicitPart", + "DeclarationConstruct": [ + "0x561d88cd7da0-DeclarationConstruct", + "0x561d88cd8110-DeclarationConstruct", + "0x561d88cf7c00-DeclarationConstruct" + ] + }, + { + "id": "0x561d88cfeac8-ImplicitPart" + }, + { + "id": "0x561d88cd7da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561d88cd7da0-SpecificationConstruct" + }, + { + "id": "0x561d88cd7da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561d88cd7da0-Statement" + }, + { + "id": "0x561d88cd7da0-Statement", + "statement": "0x561d88d07860-TypeDeclarationStmt", + "source": "real,dimension(1:10) :: a" + }, + { + "id": "0x561d88d07860-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561d88d07890-DeclarationTypeSpec", + "AttrSpec": [ + "0x561d88d01250-AttrSpec" + ], + "EntityDecl": [ + "0x561d88cf5b70-EntityDecl" + ] + }, + { + "id": "0x561d88d07890-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561d88d07890-IntrinsicTypeSpec" + }, + { + "id": "0x561d88d07890-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x561d88d07890-Real" + }, + { + "id": "0x561d88d07890-Real" + }, + { + "id": "0x561d88d01250-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x561d88d01250-ArraySpec" + }, + { + "id": "0x561d88d01250-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x561d88d067b0-ExplicitShapeSpec" + ] + }, + { + "id": "0x561d88d067b0-ExplicitShapeSpec", + "lower_bound": "0x561d88d067b8-SpecificationExpr", + "upper_bound": "0x561d88d067b0-SpecificationExpr" + }, + { + "id": "0x561d88d067b8-SpecificationExpr", + "Expr": "0x561d88c6a790-Expr" + }, + { + "id": "0x561d88c6a790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88c6a7b0-LiteralConstant" + }, + { + "id": "0x561d88c6a7b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88c6a7b0-IntLiteralConstant" + }, + { + "id": "0x561d88c6a7b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561d88d067b0-SpecificationExpr", + "Expr": "0x561d88cf5780-Expr" + }, + { + "id": "0x561d88cf5780-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf57a0-LiteralConstant" + }, + { + "id": "0x561d88cf57a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf57a0-IntLiteralConstant" + }, + { + "id": "0x561d88cf57a0-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561d88cf5b70-EntityDecl", + "Name": "0x561d88cf5c28-Name" + }, + { + "id": "0x561d88cf5c28-Name", + "source": "a" + }, + { + "id": "0x561d88cd8110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x561d88cd8110-SpecificationConstruct" + }, + { + "id": "0x561d88cd8110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x561d88cd8110-Statement" + }, + { + "id": "0x561d88cd8110-Statement", + "statement": "0x561d88cf6950-TypeDeclarationStmt", + "source": "real,parameter :: ans=45." + }, + { + "id": "0x561d88cf6950-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x561d88cf6980-DeclarationTypeSpec", + "AttrSpec": [ + "0x561d88d0e850-AttrSpec" + ], + "EntityDecl": [ + "0x561d88d0e4a0-EntityDecl" + ] + }, + { + "id": "0x561d88cf6980-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x561d88cf6980-IntrinsicTypeSpec" + }, + { + "id": "0x561d88cf6980-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x561d88cf6980-Real" + }, + { + "id": "0x561d88cf6980-Real" + }, + { + "id": "0x561d88d0e850-AttrSpec", + "variantKey": "Parameter", + "Parameter": "0x561d88d0e850-Parameter" + }, + { + "id": "0x561d88d0e850-Parameter", + "keyword": "Parameter" + }, + { + "id": "0x561d88d0e4a0-EntityDecl", + "Name": "0x561d88d0e558-Name", + "Initialization": "0x561d88d0e4a0-Initialization" + }, + { + "id": "0x561d88d0e558-Name", + "source": "ans" + }, + { + "id": "0x561d88d0e4a0-Initialization", + "variantKey": "Expr", + "Expr": "0x561d88d0e3b0-Expr" + }, + { + "id": "0x561d88d0e3b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88d0e3d0-LiteralConstant" + }, + { + "id": "0x561d88d0e3d0-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88d0e3d0-RealLiteralConstant" + }, + { + "id": "0x561d88d0e3d0-RealLiteralConstant", + "real": "0x561d88d0e3d0-Real" + }, + { + "id": "0x561d88d0e3d0-Real", + "source": "45." + }, + { + "id": "0x561d88cf7c00-DeclarationConstruct", + "variantKey": "Statement", + "Statement": "0x561d88cf7c00-Statement" + }, + { + "id": "0x561d88cf7c00-Statement", + "statement": "0x561d88d06700-DataStmt", + "source": "data a/1.,2.,3.,4.,5.,6.,7.,8.,9.,10./" + }, + { + "id": "0x561d88d06700-DataStmt", + "DataStmtSet": [ + "0x561d88d077e0-DataStmtSet" + ] + }, + { + "id": "0x561d88d077e0-DataStmtSet", + "DataStmtObject": [ + "0x561d88cf6720-DataStmtObject" + ], + "DataStmtValue": [ + "0x561d88cf7760-DataStmtValue", + "0x561d88d07220-DataStmtValue", + "0x561d88d074a0-DataStmtValue", + "0x561d88cf5f20-DataStmtValue", + "0x561d88cf6210-DataStmtValue", + "0x561d88cf6a60-DataStmtValue", + "0x561d88cf6d50-DataStmtValue", + "0x561d88cf7040-DataStmtValue", + "0x561d88cf7330-DataStmtValue", + "0x561d88cf7620-DataStmtValue" + ] + }, + { + "id": "0x561d88cf6720-DataStmtObject", + "variantKey": "Variable", + "Variable": "0x561d88d067d0-Variable" + }, + { + "id": "0x561d88d067d0-Variable", + "variantKey": "Designator", + "Designator": "0x561d88d0e680-Designator" + }, + { + "id": "0x561d88d0e680-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88d0e690-DataRef" + }, + { + "id": "0x561d88d0e690-DataRef", + "variantKey": "Name", + "Name": "0x561d88d0e690-Name" + }, + { + "id": "0x561d88d0e690-Name", + "source": "a" + }, + { + "id": "0x561d88cf7760-DataStmtValue", + "DataStmtConstant": "0x561d88cf7768-DataStmtConstant" + }, + { + "id": "0x561d88cf7768-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7788-LiteralConstant" + }, + { + "id": "0x561d88cf7788-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf7788-RealLiteralConstant" + }, + { + "id": "0x561d88cf7788-RealLiteralConstant", + "real": "0x561d88cf7788-Real" + }, + { + "id": "0x561d88cf7788-Real", + "source": "1." + }, + { + "id": "0x561d88d07220-DataStmtValue", + "DataStmtConstant": "0x561d88d07228-DataStmtConstant" + }, + { + "id": "0x561d88d07228-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88d07248-LiteralConstant" + }, + { + "id": "0x561d88d07248-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88d07248-RealLiteralConstant" + }, + { + "id": "0x561d88d07248-RealLiteralConstant", + "real": "0x561d88d07248-Real" + }, + { + "id": "0x561d88d07248-Real", + "source": "2." + }, + { + "id": "0x561d88d074a0-DataStmtValue", + "DataStmtConstant": "0x561d88d074a8-DataStmtConstant" + }, + { + "id": "0x561d88d074a8-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88d074c8-LiteralConstant" + }, + { + "id": "0x561d88d074c8-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88d074c8-RealLiteralConstant" + }, + { + "id": "0x561d88d074c8-RealLiteralConstant", + "real": "0x561d88d074c8-Real" + }, + { + "id": "0x561d88d074c8-Real", + "source": "3." + }, + { + "id": "0x561d88cf5f20-DataStmtValue", + "DataStmtConstant": "0x561d88cf5f28-DataStmtConstant" + }, + { + "id": "0x561d88cf5f28-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf5f48-LiteralConstant" + }, + { + "id": "0x561d88cf5f48-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf5f48-RealLiteralConstant" + }, + { + "id": "0x561d88cf5f48-RealLiteralConstant", + "real": "0x561d88cf5f48-Real" + }, + { + "id": "0x561d88cf5f48-Real", + "source": "4." + }, + { + "id": "0x561d88cf6210-DataStmtValue", + "DataStmtConstant": "0x561d88cf6218-DataStmtConstant" + }, + { + "id": "0x561d88cf6218-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf6238-LiteralConstant" + }, + { + "id": "0x561d88cf6238-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf6238-RealLiteralConstant" + }, + { + "id": "0x561d88cf6238-RealLiteralConstant", + "real": "0x561d88cf6238-Real" + }, + { + "id": "0x561d88cf6238-Real", + "source": "5." + }, + { + "id": "0x561d88cf6a60-DataStmtValue", + "DataStmtConstant": "0x561d88cf6a68-DataStmtConstant" + }, + { + "id": "0x561d88cf6a68-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf6a88-LiteralConstant" + }, + { + "id": "0x561d88cf6a88-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf6a88-RealLiteralConstant" + }, + { + "id": "0x561d88cf6a88-RealLiteralConstant", + "real": "0x561d88cf6a88-Real" + }, + { + "id": "0x561d88cf6a88-Real", + "source": "6." + }, + { + "id": "0x561d88cf6d50-DataStmtValue", + "DataStmtConstant": "0x561d88cf6d58-DataStmtConstant" + }, + { + "id": "0x561d88cf6d58-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf6d78-LiteralConstant" + }, + { + "id": "0x561d88cf6d78-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf6d78-RealLiteralConstant" + }, + { + "id": "0x561d88cf6d78-RealLiteralConstant", + "real": "0x561d88cf6d78-Real" + }, + { + "id": "0x561d88cf6d78-Real", + "source": "7." + }, + { + "id": "0x561d88cf7040-DataStmtValue", + "DataStmtConstant": "0x561d88cf7048-DataStmtConstant" + }, + { + "id": "0x561d88cf7048-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7068-LiteralConstant" + }, + { + "id": "0x561d88cf7068-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf7068-RealLiteralConstant" + }, + { + "id": "0x561d88cf7068-RealLiteralConstant", + "real": "0x561d88cf7068-Real" + }, + { + "id": "0x561d88cf7068-Real", + "source": "8." + }, + { + "id": "0x561d88cf7330-DataStmtValue", + "DataStmtConstant": "0x561d88cf7338-DataStmtConstant" + }, + { + "id": "0x561d88cf7338-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7358-LiteralConstant" + }, + { + "id": "0x561d88cf7358-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf7358-RealLiteralConstant" + }, + { + "id": "0x561d88cf7358-RealLiteralConstant", + "real": "0x561d88cf7358-Real" + }, + { + "id": "0x561d88cf7358-Real", + "source": "9." + }, + { + "id": "0x561d88cf7620-DataStmtValue", + "DataStmtConstant": "0x561d88cf7628-DataStmtConstant" + }, + { + "id": "0x561d88cf7628-DataStmtConstant", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7648-LiteralConstant" + }, + { + "id": "0x561d88cf7648-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x561d88cf7648-RealLiteralConstant" + }, + { + "id": "0x561d88cf7648-RealLiteralConstant", + "real": "0x561d88cf7648-Real" + }, + { + "id": "0x561d88cf7648-Real", + "source": "10." + }, + { + "id": "0x561d88cfea98-ExecutionPart", + "ExecutionPartConstruct": [ + "0x561d88cf7ac0-ExecutionPartConstruct", + "0x561d88cf8d30-ExecutionPartConstruct", + "0x561d88cf9780-ExecutionPartConstruct" + ] + }, + { + "id": "0x561d88cfea98-ExecutionPartConstruct" + }, + { + "id": "0x561d88cf7ac0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561d88cf7ac0-ExecutableConstruct" + }, + { + "id": "0x561d88cf7ac0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561d88cf7ac0-Statement" + }, + { + "id": "0x561d88cf7ac0-Statement", + "statement": "0x561d88cf7ad0-ActionStmt", + "source": "i=2*2147483648_8-2147483648_8-2147483646_8" + }, + { + "id": "0x561d88cf7ad0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561d88cd8cf0-AssignmentStmt" + }, + { + "id": "0x561d88cd8cf0-AssignmentStmt", + "Variable": "0x561d88cd8dd0-Variable", + "Expr": "0x561d88cd8d00-Expr" + }, + { + "id": "0x561d88cd8dd0-Variable", + "variantKey": "Designator", + "Designator": "0x561d88cf6340-Designator" + }, + { + "id": "0x561d88cf6340-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88cf6350-DataRef" + }, + { + "id": "0x561d88cf6350-DataRef", + "variantKey": "Name", + "Name": "0x561d88cf6350-Name" + }, + { + "id": "0x561d88cf6350-Name", + "source": "i" + }, + { + "id": "0x561d88cd8d00-Expr", + "variantKey": "Subtract", + "Subtract": "0x561d88cd8d20-Subtract" + }, + { + "id": "0x561d88cd8d20-Subtract", + "left": "0x561d88cf6580-Expr", + "right": "0x561d88cf5d80-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x561d88cf6580-Expr", + "variantKey": "Subtract", + "Subtract": "0x561d88cf65a0-Subtract" + }, + { + "id": "0x561d88cf65a0-Subtract", + "left": "0x561d88cf84d0-Expr", + "right": "0x561d88cf83f0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x561d88cf84d0-Expr", + "variantKey": "Multiply", + "Multiply": "0x561d88cf84f0-Multiply" + }, + { + "id": "0x561d88cf84f0-Multiply", + "left": "0x561d88cf7db0-Expr", + "right": "0x561d88cf7cd0-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x561d88cf7db0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7dd0-LiteralConstant" + }, + { + "id": "0x561d88cf7dd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf7dd0-IntLiteralConstant" + }, + { + "id": "0x561d88cf7dd0-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x561d88cf7cd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7cf0-LiteralConstant" + }, + { + "id": "0x561d88cf7cf0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf7cf0-IntLiteralConstant" + }, + { + "id": "0x561d88cf7cf0-IntLiteralConstant", + "CharBlock": "2147483648", + "KindParam": "0x561d88cf7cf0-KindParam" + }, + { + "id": "0x561d88cf7cf0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x561d88cf83f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf8410-LiteralConstant" + }, + { + "id": "0x561d88cf8410-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf8410-IntLiteralConstant" + }, + { + "id": "0x561d88cf8410-IntLiteralConstant", + "CharBlock": "2147483648", + "KindParam": "0x561d88cf8410-KindParam" + }, + { + "id": "0x561d88cf8410-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x561d88cf5d80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf5da0-LiteralConstant" + }, + { + "id": "0x561d88cf5da0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf5da0-IntLiteralConstant" + }, + { + "id": "0x561d88cf5da0-IntLiteralConstant", + "CharBlock": "2147483646", + "KindParam": "0x561d88cf5da0-KindParam" + }, + { + "id": "0x561d88cf5da0-KindParam", + "variantKey": "uint64_t", + "uint64_t": "8" + }, + { + "id": "0x561d88cf8d30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561d88cf8d30-ExecutableConstruct" + }, + { + "id": "0x561d88cf8d30-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561d88cf8d30-Statement" + }, + { + "id": "0x561d88cf8d30-Statement", + "statement": "0x561d88cf8d40-ActionStmt", + "source": "a(1:10:i) = a(1:5)" + }, + { + "id": "0x561d88cf8d40-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x561d88cf8b40-AssignmentStmt" + }, + { + "id": "0x561d88cf8b40-AssignmentStmt", + "Variable": "0x561d88cf8c20-Variable", + "Expr": "0x561d88cf8b50-Expr" + }, + { + "id": "0x561d88cf8c20-Variable", + "variantKey": "Designator", + "Designator": "0x561d88cf6b90-Designator" + }, + { + "id": "0x561d88cf6b90-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88cf6ba0-DataRef" + }, + { + "id": "0x561d88cf6ba0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561d88d054b0-ArrayElement" + }, + { + "id": "0x561d88d054b0-ArrayElement", + "base": "0x561d88d054b0-DataRef", + "subscripts": [ + "0x561d88d01cc0-SectionSubscript" + ] + }, + { + "id": "0x561d88d054b0-DataRef", + "variantKey": "Name", + "Name": "0x561d88d054b0-Name" + }, + { + "id": "0x561d88d054b0-Name", + "source": "a" + }, + { + "id": "0x561d88d01cc0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561d88d01cc0-SubscriptTriplet" + }, + { + "id": "0x561d88d01cc0-SubscriptTriplet", + "start": "0x561d88cf7e90-Expr", + "end": "0x561d88cf7f70-Expr", + "stride": "0x561d88cf8050-Expr" + }, + { + "id": "0x561d88cf7e90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7eb0-LiteralConstant" + }, + { + "id": "0x561d88cf7eb0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf7eb0-IntLiteralConstant" + }, + { + "id": "0x561d88cf7eb0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561d88cf7f70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf7f90-LiteralConstant" + }, + { + "id": "0x561d88cf7f90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf7f90-IntLiteralConstant" + }, + { + "id": "0x561d88cf7f90-IntLiteralConstant", + "CharBlock": "10" + }, + { + "id": "0x561d88cf8050-Expr", + "variantKey": "Designator", + "Designator": "0x561d88cc94d0-Designator" + }, + { + "id": "0x561d88cc94d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88cc94e0-DataRef" + }, + { + "id": "0x561d88cc94e0-DataRef", + "variantKey": "Name", + "Name": "0x561d88cc94e0-Name" + }, + { + "id": "0x561d88cc94e0-Name", + "source": "i" + }, + { + "id": "0x561d88cf8b50-Expr", + "variantKey": "Designator", + "Designator": "0x561d88cf8c50-Designator" + }, + { + "id": "0x561d88cf8c50-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88cf8c60-DataRef" + }, + { + "id": "0x561d88cf8c60-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x561d88d05b90-ArrayElement" + }, + { + "id": "0x561d88d05b90-ArrayElement", + "base": "0x561d88d05b90-DataRef", + "subscripts": [ + "0x561d88d01ea0-SectionSubscript" + ] + }, + { + "id": "0x561d88d05b90-DataRef", + "variantKey": "Name", + "Name": "0x561d88d05b90-Name" + }, + { + "id": "0x561d88d05b90-Name", + "source": "a" + }, + { + "id": "0x561d88d01ea0-SectionSubscript", + "variantKey": "SubscriptTriplet", + "SubscriptTriplet": "0x561d88d01ea0-SubscriptTriplet" + }, + { + "id": "0x561d88d01ea0-SubscriptTriplet", + "start": "0x561d88cf8920-Expr", + "end": "0x561d88cf8a00-Expr" + }, + { + "id": "0x561d88cf8920-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf8940-LiteralConstant" + }, + { + "id": "0x561d88cf8940-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf8940-IntLiteralConstant" + }, + { + "id": "0x561d88cf8940-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x561d88cf8a00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cf8a20-LiteralConstant" + }, + { + "id": "0x561d88cf8a20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x561d88cf8a20-IntLiteralConstant" + }, + { + "id": "0x561d88cf8a20-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x561d88cf9780-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561d88cf9780-ExecutableConstruct" + }, + { + "id": "0x561d88cf9780-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x561d88cf86e0-IfConstruct" + }, + { + "id": "0x561d88cf86e0-IfConstruct", + "Statement": "0x561d88cf87b0-Statement", + "ExecutionPartConstruct": [ + "0x561d88cf7180-ExecutionPartConstruct" + ], + "ElseBlock": "0x561d88cf8720-ElseBlock", + "Statement": "0x561d88cf86e0-Statement" + }, + { + "id": "0x561d88cf87b0-Statement", + "statement": "0x561d88cf87c0-IfThenStmt", + "source": "if(sum(a) == ans) then" + }, + { + "id": "0x561d88cf87c0-IfThenStmt", + "Expr": "0x561d88cf9130-Expr" + }, + { + "id": "0x561d88cf9130-Expr", + "variantKey": "EQ", + "EQ": "0x561d88cf9150-EQ" + }, + { + "id": "0x561d88cf9150-EQ", + "left": "0x561d88cf8d80-Expr", + "right": "0x561d88cf9050-Expr", + "op": "EQ" + }, + { + "id": "0x561d88cf8d80-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x561d88cf75a0-FunctionReference" + }, + { + "id": "0x561d88cf75a0-FunctionReference", + "Call": "0x561d88cf75a0-Call" + }, + { + "id": "0x561d88cf75a0-Call", + "ProcedureDesignator": "0x561d88cf75b8-ProcedureDesignator", + "ActualArgSpec": [ + "0x561d88cf9220-ActualArgSpec" + ] + }, + { + "id": "0x561d88cf75b8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x561d88cf75b8-Name" + }, + { + "id": "0x561d88cf75b8-Name", + "source": "sum" + }, + { + "id": "0x561d88cf9220-ActualArgSpec", + "ActualArg": "0x561d88cf9220-ActualArg" + }, + { + "id": "0x561d88cf9220-ActualArg", + "variantKey": "Expr", + "Expr": "0x561d88cf8f70-Expr" + }, + { + "id": "0x561d88cf8f70-Expr", + "variantKey": "Designator", + "Designator": "0x561d88cf9550-Designator" + }, + { + "id": "0x561d88cf9550-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88cf9560-DataRef" + }, + { + "id": "0x561d88cf9560-DataRef", + "variantKey": "Name", + "Name": "0x561d88cf9560-Name" + }, + { + "id": "0x561d88cf9560-Name", + "source": "a" + }, + { + "id": "0x561d88cf9050-Expr", + "variantKey": "Designator", + "Designator": "0x561d88d07350-Designator" + }, + { + "id": "0x561d88d07350-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88d07360-DataRef" + }, + { + "id": "0x561d88d07360-DataRef", + "variantKey": "Name", + "Name": "0x561d88d07360-Name" + }, + { + "id": "0x561d88d07360-Name", + "source": "ans" + }, + { + "id": "0x561d88cf8798-ExecutionPartConstruct" + }, + { + "id": "0x561d88cf7180-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561d88cf7180-ExecutableConstruct" + }, + { + "id": "0x561d88cf7180-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561d88cf7180-Statement" + }, + { + "id": "0x561d88cf7180-Statement", + "statement": "0x561d88cf7190-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x561d88cf7190-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x561d88cfb4c0-PrintStmt" + }, + { + "id": "0x561d88cfb4c0-PrintStmt", + "Format": "0x561d88cfb4d8-Format", + "OutputItem": [ + "0x561d88cfb3e0-OutputItem" + ] + }, + { + "id": "0x561d88cfb4d8-Format", + "variantKey": "Star", + "Star": "0x561d88cfb4d8-Star" + }, + { + "id": "0x561d88cfb4d8-Star" + }, + { + "id": "0x561d88cfb3e0-OutputItem", + "variantKey": "Expr", + "Expr": "0x561d88cfb3e0-Expr" + }, + { + "id": "0x561d88cfb3e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cfb400-LiteralConstant" + }, + { + "id": "0x561d88cfb400-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x561d88cfb400-CharLiteralConstant" + }, + { + "id": "0x561d88cfb400-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x561d88cf8720-ElseBlock", + "Statement": "0x561d88cf8738-Statement", + "ExecutionPartConstruct": [ + "0x561d88cfb990-ExecutionPartConstruct" + ] + }, + { + "id": "0x561d88cf8738-Statement", + "statement": "0x561d88cf8748-ElseStmt", + "source": "else" + }, + { + "id": "0x561d88cf8748-ElseStmt" + }, + { + "id": "0x561d88cf8720-ExecutionPartConstruct" + }, + { + "id": "0x561d88cfb990-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x561d88cfb990-ExecutableConstruct" + }, + { + "id": "0x561d88cfb990-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x561d88cfb990-Statement" + }, + { + "id": "0x561d88cfb990-Statement", + "statement": "0x561d88cfb9a0-ActionStmt", + "source": "print *,\"NG\",sum(a)" + }, + { + "id": "0x561d88cfb9a0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x561d88cfb880-PrintStmt" + }, + { + "id": "0x561d88cfb880-PrintStmt", + "Format": "0x561d88cfb898-Format", + "OutputItem": [ + "0x561d88cfb7a0-OutputItem", + "0x561d88cfb6b0-OutputItem" + ] + }, + { + "id": "0x561d88cfb898-Format", + "variantKey": "Star", + "Star": "0x561d88cfb898-Star" + }, + { + "id": "0x561d88cfb898-Star" + }, + { + "id": "0x561d88cfb7a0-OutputItem", + "variantKey": "Expr", + "Expr": "0x561d88cfb7a0-Expr" + }, + { + "id": "0x561d88cfb7a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x561d88cfb7c0-LiteralConstant" + }, + { + "id": "0x561d88cfb7c0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x561d88cfb7c0-CharLiteralConstant" + }, + { + "id": "0x561d88cfb7c0-CharLiteralConstant", + "string": "NG" + }, + { + "id": "0x561d88cfb6b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x561d88cfb6b0-Expr" + }, + { + "id": "0x561d88cfb6b0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x561d88cf6ee0-FunctionReference" + }, + { + "id": "0x561d88cf6ee0-FunctionReference", + "Call": "0x561d88cf6ee0-Call" + }, + { + "id": "0x561d88cf6ee0-Call", + "ProcedureDesignator": "0x561d88cf6ef8-ProcedureDesignator", + "ActualArgSpec": [ + "0x561d88cf8e70-ActualArgSpec" + ] + }, + { + "id": "0x561d88cf6ef8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x561d88cf6ef8-Name" + }, + { + "id": "0x561d88cf6ef8-Name", + "source": "sum" + }, + { + "id": "0x561d88cf8e70-ActualArgSpec", + "ActualArg": "0x561d88cf8e70-ActualArg" + }, + { + "id": "0x561d88cf8e70-ActualArg", + "variantKey": "Expr", + "Expr": "0x561d88cfb5c0-Expr" + }, + { + "id": "0x561d88cfb5c0-Expr", + "variantKey": "Designator", + "Designator": "0x561d88cf7890-Designator" + }, + { + "id": "0x561d88cf7890-Designator", + "variantKey": "DataRef", + "DataRef": "0x561d88cf78a0-DataRef" + }, + { + "id": "0x561d88cf78a0-DataRef", + "variantKey": "Name", + "Name": "0x561d88cf78a0-Name" + }, + { + "id": "0x561d88cf78a0-Name", + "source": "a" + }, + { + "id": "0x561d88cf86e0-Statement", + "statement": "0x561d88cf86f0-EndIfStmt", + "source": "endif" + }, + { + "id": "0x561d88cf86f0-EndIfStmt" + }, + { + "id": "0x561d88cfea10-Statement", + "statement": "0x561d88cfea20-EndProgramStmt", + "source": "end" + }, + { + "id": "0x561d88cfea20-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/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..35e0d10e --- /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 PROGRAM \ 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/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..97d19048 --- /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 PROGRAM + +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 test1 + +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 test2 + +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 test3 \ 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..b4a2b9c0 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/fujitsu/0000/0000_0033.json @@ -0,0 +1,2915 @@ +{ + "nodes": [ + { + "id": "0x55cfa2cf8f00-Program", + "ProgramUnit": [ + "0x55cfa2d36d10-ProgramUnit", + "0x55cfa2d36d70-ProgramUnit", + "0x55cfa2d36eb0-ProgramUnit", + "0x55cfa2d33810-ProgramUnit" + ] + }, + { + "id": "0x55cfa2d36d10-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55cfa2d35fe0-MainProgram" + }, + { + "id": "0x55cfa2d35fe0-MainProgram", + "SpecificationPart": "0x55cfa2d36080-SpecificationPart", + "ExecutionPart": "0x55cfa2d36068-ExecutionPart", + "Statement": "0x55cfa2d35fe0-Statement" + }, + { + "id": "0x55cfa2d36080-SpecificationPart", + "ImplicitPart": "0x55cfa2d36098-ImplicitPart", + "DeclarationConstruct": [ + "0x55cfa2d06170-DeclarationConstruct", + "0x55cfa2d05da0-DeclarationConstruct" + ] + }, + { + "id": "0x55cfa2d36098-ImplicitPart" + }, + { + "id": "0x55cfa2d06170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d06170-SpecificationConstruct" + }, + { + "id": "0x55cfa2d06170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d06170-Statement" + }, + { + "id": "0x55cfa2d06170-Statement", + "statement": "0x55cfa2d06180-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x55cfa2d06180-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x55cfa2d36cd0-CommonStmt" + }, + { + "id": "0x55cfa2d36cd0-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d2f250-CommonStmtBlock" + ] + }, + { + "id": "0x55cfa2d2f250-CommonStmtBlock", + "Name": "0x55cfa2d2f268-Name", + "CommonBlockObject": [ + "0x55cfa2cae270-CommonBlockObject" + ] + }, + { + "id": "0x55cfa2d2f268-Name", + "source": "com" + }, + { + "id": "0x55cfa2cae270-CommonBlockObject", + "Name": "0x55cfa2cae2a8-Name" + }, + { + "id": "0x55cfa2cae2a8-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d05da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d05da0-SpecificationConstruct" + }, + { + "id": "0x55cfa2d05da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d05da0-Statement" + }, + { + "id": "0x55cfa2d05da0-Statement", + "statement": "0x55cfa2d23dd0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x55cfa2d23dd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d23e00-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cfa2d24040-EntityDecl" + ] + }, + { + "id": "0x55cfa2d23e00-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cfa2d23e00-IntrinsicTypeSpec" + }, + { + "id": "0x55cfa2d23e00-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55cfa2d23e00-Logical" + }, + { + "id": "0x55cfa2d23e00-Logical", + "KindSelector": "0x55cfa2d23e00-KindSelector" + }, + { + "id": "0x55cfa2d23e00-KindSelector", + "variantKey": "Expr", + "Expr": "0x55cfa2c98790-Expr" + }, + { + "id": "0x55cfa2c98790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2c987b0-LiteralConstant" + }, + { + "id": "0x55cfa2c987b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2c987b0-IntLiteralConstant" + }, + { + "id": "0x55cfa2c987b0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cfa2d24040-EntityDecl", + "Name": "0x55cfa2d240f8-Name" + }, + { + "id": "0x55cfa2d240f8-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d36068-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55cfa2d252b0-ExecutionPartConstruct", + "0x55cfa2d25760-ExecutionPartConstruct", + "0x55cfa2d25880-ExecutionPartConstruct", + "0x55cfa2d259a0-ExecutionPartConstruct", + "0x55cfa2d06110-ExecutionPartConstruct", + "0x55cfa2d25f60-ExecutionPartConstruct" + ] + }, + { + "id": "0x55cfa2d36068-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d252b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d252b0-ExecutableConstruct" + }, + { + "id": "0x55cfa2d252b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d252b0-Statement" + }, + { + "id": "0x55cfa2d252b0-Statement", + "statement": "0x55cfa2d252c0-ActionStmt", + "source": "ok = .true." + }, + { + "id": "0x55cfa2d252c0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cfa2d06cf0-AssignmentStmt" + }, + { + "id": "0x55cfa2d06cf0-AssignmentStmt", + "Variable": "0x55cfa2d06dd0-Variable", + "Expr": "0x55cfa2d06d00-Expr" + }, + { + "id": "0x55cfa2d06dd0-Variable", + "variantKey": "Designator", + "Designator": "0x55cfa2cf74d0-Designator" + }, + { + "id": "0x55cfa2cf74d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2cf74e0-DataRef" + }, + { + "id": "0x55cfa2cf74e0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2cf74e0-Name" + }, + { + "id": "0x55cfa2cf74e0-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d06d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d06d20-LiteralConstant" + }, + { + "id": "0x55cfa2d06d20-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55cfa2d06d20-LogicalLiteralConstant" + }, + { + "id": "0x55cfa2d06d20-LogicalLiteralConstant", + "bool": "1" + }, + { + "id": "0x55cfa2d25760-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d25760-ExecutableConstruct" + }, + { + "id": "0x55cfa2d25760-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d25760-Statement" + }, + { + "id": "0x55cfa2d25760-Statement", + "statement": "0x55cfa2d25770-ActionStmt", + "source": "call test1" + }, + { + "id": "0x55cfa2d25770-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55cfa2d2fee0-CallStmt" + }, + { + "id": "0x55cfa2d2fee0-CallStmt", + "call": "0x55cfa2d2fee0-Call" + }, + { + "id": "0x55cfa2d2fee0-Call", + "ProcedureDesignator": "0x55cfa2d2fef8-ProcedureDesignator" + }, + { + "id": "0x55cfa2d2fef8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d2fef8-Name" + }, + { + "id": "0x55cfa2d2fef8-Name", + "source": "test1" + }, + { + "id": "0x55cfa2d25880-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d25880-ExecutableConstruct" + }, + { + "id": "0x55cfa2d25880-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d25880-Statement" + }, + { + "id": "0x55cfa2d25880-Statement", + "statement": "0x55cfa2d25890-ActionStmt", + "source": "call test2" + }, + { + "id": "0x55cfa2d25890-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55cfa2d257b0-CallStmt" + }, + { + "id": "0x55cfa2d257b0-CallStmt", + "call": "0x55cfa2d257b0-Call" + }, + { + "id": "0x55cfa2d257b0-Call", + "ProcedureDesignator": "0x55cfa2d257c8-ProcedureDesignator" + }, + { + "id": "0x55cfa2d257c8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d257c8-Name" + }, + { + "id": "0x55cfa2d257c8-Name", + "source": "test2" + }, + { + "id": "0x55cfa2d259a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d259a0-ExecutableConstruct" + }, + { + "id": "0x55cfa2d259a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d259a0-Statement" + }, + { + "id": "0x55cfa2d259a0-Statement", + "statement": "0x55cfa2d259b0-ActionStmt", + "source": "call test3" + }, + { + "id": "0x55cfa2d259b0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55cfa2d258d0-CallStmt" + }, + { + "id": "0x55cfa2d258d0-CallStmt", + "call": "0x55cfa2d258d0-Call" + }, + { + "id": "0x55cfa2d258d0-Call", + "ProcedureDesignator": "0x55cfa2d258e8-ProcedureDesignator" + }, + { + "id": "0x55cfa2d258e8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d258e8-Name" + }, + { + "id": "0x55cfa2d258e8-Name", + "source": "test3" + }, + { + "id": "0x55cfa2d06110-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d06110-ExecutableConstruct" + }, + { + "id": "0x55cfa2d06110-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55cfa2cce780-IfConstruct" + }, + { + "id": "0x55cfa2cce780-IfConstruct", + "Statement": "0x55cfa2cce850-Statement", + "ExecutionPartConstruct": [ + "0x55cfa2d25020-ExecutionPartConstruct" + ], + "Statement": "0x55cfa2cce780-Statement" + }, + { + "id": "0x55cfa2cce850-Statement", + "statement": "0x55cfa2cce860-IfThenStmt", + "source": "if(ok) then" + }, + { + "id": "0x55cfa2cce860-IfThenStmt", + "Expr": "0x55cfa2d259f0-Expr" + }, + { + "id": "0x55cfa2d259f0-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d25300-Designator" + }, + { + "id": "0x55cfa2d25300-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d25310-DataRef" + }, + { + "id": "0x55cfa2d25310-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d25310-Name" + }, + { + "id": "0x55cfa2d25310-Name", + "source": "ok" + }, + { + "id": "0x55cfa2cce838-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d25020-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d25020-ExecutableConstruct" + }, + { + "id": "0x55cfa2d25020-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d25020-Statement" + }, + { + "id": "0x55cfa2d25020-Statement", + "statement": "0x55cfa2d25030-ActionStmt", + "source": "print *,\"OK\"" + }, + { + "id": "0x55cfa2d25030-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55cfa2d27f30-PrintStmt" + }, + { + "id": "0x55cfa2d27f30-PrintStmt", + "Format": "0x55cfa2d27f48-Format", + "OutputItem": [ + "0x55cfa2d27e50-OutputItem" + ] + }, + { + "id": "0x55cfa2d27f48-Format", + "variantKey": "Star", + "Star": "0x55cfa2d27f48-Star" + }, + { + "id": "0x55cfa2d27f48-Star" + }, + { + "id": "0x55cfa2d27e50-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cfa2d27e50-Expr" + }, + { + "id": "0x55cfa2d27e50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d27e70-LiteralConstant" + }, + { + "id": "0x55cfa2d27e70-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55cfa2d27e70-CharLiteralConstant" + }, + { + "id": "0x55cfa2d27e70-CharLiteralConstant", + "string": "OK" + }, + { + "id": "0x55cfa2cce780-Statement", + "statement": "0x55cfa2cce790-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55cfa2cce790-EndIfStmt" + }, + { + "id": "0x55cfa2d25f60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d25f60-ExecutableConstruct" + }, + { + "id": "0x55cfa2d25f60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d25f60-Statement" + }, + { + "id": "0x55cfa2d25f60-Statement", + "statement": "0x55cfa2d25f70-ActionStmt", + "source": "stop" + }, + { + "id": "0x55cfa2d25f70-ActionStmt", + "variantKey": "StopStmt", + "StopStmt": "0x55cfa2d28030-StopStmt" + }, + { + "id": "0x55cfa2d28030-StopStmt", + "kind": "0x55cfa2d28118-Kind = Stop" + }, + { + "id": "0x55cfa2d28118-Kind = Stop", + "disambiguation": "Fortran::parser::StopStmt::Kind", + "value": "Stop" + }, + { + "id": "0x55cfa2d35fe0-Statement", + "statement": "0x55cfa2d35ff0-EndProgramStmt", + "source": "end" + }, + { + "id": "0x55cfa2d35ff0-EndProgramStmt" + }, + { + "id": "0x55cfa2d36d70-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55cfa2d2c7b0-SubroutineSubprogram" + }, + { + "id": "0x55cfa2d2c7b0-SubroutineSubprogram", + "Statement": "0x55cfa2d2c8f8-Statement", + "SpecificationPart": "0x55cfa2d2c850-SpecificationPart", + "ExecutionPart": "0x55cfa2d2c838-ExecutionPart", + "Statement": "0x55cfa2d2c7b0-Statement" + }, + { + "id": "0x55cfa2d2c8f8-Statement", + "statement": "0x55cfa2d2c908-SubroutineStmt", + "source": "subroutine test1" + }, + { + "id": "0x55cfa2d2c908-SubroutineStmt", + "Name": "0x55cfa2d2c940-Name" + }, + { + "id": "0x55cfa2d2c940-Name", + "source": "test1" + }, + { + "id": "0x55cfa2d2c850-SpecificationPart", + "ImplicitPart": "0x55cfa2d2c868-ImplicitPart", + "DeclarationConstruct": [ + "0x55cfa2d24fc0-DeclarationConstruct", + "0x55cfa2d23c40-DeclarationConstruct", + "0x55cfa2d25ae0-DeclarationConstruct", + "0x55cfa2d286e0-DeclarationConstruct" + ] + }, + { + "id": "0x55cfa2d2c868-ImplicitPart" + }, + { + "id": "0x55cfa2d24fc0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d24fc0-SpecificationConstruct" + }, + { + "id": "0x55cfa2d24fc0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d24fc0-Statement" + }, + { + "id": "0x55cfa2d24fc0-Statement", + "statement": "0x55cfa2d24fd0-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x55cfa2d24fd0-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x55cfa2d36d30-CommonStmt" + }, + { + "id": "0x55cfa2d36d30-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d35dd0-CommonStmtBlock" + ] + }, + { + "id": "0x55cfa2d35dd0-CommonStmtBlock", + "Name": "0x55cfa2d35de8-Name", + "CommonBlockObject": [ + "0x55cfa2d26e20-CommonBlockObject" + ] + }, + { + "id": "0x55cfa2d35de8-Name", + "source": "com" + }, + { + "id": "0x55cfa2d26e20-CommonBlockObject", + "Name": "0x55cfa2d26e58-Name" + }, + { + "id": "0x55cfa2d26e58-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d23c40-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d23c40-SpecificationConstruct" + }, + { + "id": "0x55cfa2d23c40-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d23c40-Statement" + }, + { + "id": "0x55cfa2d23c40-Statement", + "statement": "0x55cfa2d2f7e0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x55cfa2d2f7e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d2f810-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cfa2d23b50-EntityDecl" + ] + }, + { + "id": "0x55cfa2d2f810-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cfa2d2f810-IntrinsicTypeSpec" + }, + { + "id": "0x55cfa2d2f810-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55cfa2d2f810-Logical" + }, + { + "id": "0x55cfa2d2f810-Logical", + "KindSelector": "0x55cfa2d2f810-KindSelector" + }, + { + "id": "0x55cfa2d2f810-KindSelector", + "variantKey": "Expr", + "Expr": "0x55cfa2d28d10-Expr" + }, + { + "id": "0x55cfa2d28d10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d28d30-LiteralConstant" + }, + { + "id": "0x55cfa2d28d30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d28d30-IntLiteralConstant" + }, + { + "id": "0x55cfa2d28d30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cfa2d23b50-EntityDecl", + "Name": "0x55cfa2d23c08-Name" + }, + { + "id": "0x55cfa2d23c08-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d25ae0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d25ae0-SpecificationConstruct" + }, + { + "id": "0x55cfa2d25ae0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d25ae0-Statement" + }, + { + "id": "0x55cfa2d25ae0-Statement", + "statement": "0x55cfa2d24200-TypeDeclarationStmt", + "source": "integer*4 m,d,ans" + }, + { + "id": "0x55cfa2d24200-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d24230-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cfa2d28510-EntityDecl", + "0x55cfa2d281d0-EntityDecl", + "0x55cfa2cae0c0-EntityDecl" + ] + }, + { + "id": "0x55cfa2d24230-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cfa2d24230-IntrinsicTypeSpec" + }, + { + "id": "0x55cfa2d24230-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55cfa2d24230-IntegerTypeSpec" + }, + { + "id": "0x55cfa2d24230-IntegerTypeSpec", + "KindSelector": "0x55cfa2d24230-KindSelector" + }, + { + "id": "0x55cfa2d24230-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55cfa2d24230-StarSize" + }, + { + "id": "0x55cfa2d24230-StarSize", + "uint64_t": "4" + }, + { + "id": "0x55cfa2d28510-EntityDecl", + "Name": "0x55cfa2d285c8-Name" + }, + { + "id": "0x55cfa2d285c8-Name", + "source": "m" + }, + { + "id": "0x55cfa2d281d0-EntityDecl", + "Name": "0x55cfa2d28288-Name" + }, + { + "id": "0x55cfa2d28288-Name", + "source": "d" + }, + { + "id": "0x55cfa2cae0c0-EntityDecl", + "Name": "0x55cfa2cae178-Name" + }, + { + "id": "0x55cfa2cae178-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d286e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d286e0-SpecificationConstruct" + }, + { + "id": "0x55cfa2d286e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d286e0-Statement" + }, + { + "id": "0x55cfa2d286e0-Statement", + "statement": "0x55cfa2d35710-ParameterStmt", + "source": "parameter(m=19,d=3,ans=1)" + }, + { + "id": "0x55cfa2d35710-ParameterStmt", + "NamedConstantDef": [ + "0x55cfa2d34bd0-NamedConstantDef", + "0x55cfa2d34430-NamedConstantDef", + "0x55cfa2d34b10-NamedConstantDef" + ] + }, + { + "id": "0x55cfa2d34bd0-NamedConstantDef", + "NamedConstant": "0x55cfa2d34bd8-NamedConstant", + "Expr": "0x55cfa2d285f0-Expr" + }, + { + "id": "0x55cfa2d34bd8-NamedConstant", + "Name": "0x55cfa2d34bd8-Name" + }, + { + "id": "0x55cfa2d34bd8-Name", + "source": "m" + }, + { + "id": "0x55cfa2d285f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d28610-LiteralConstant" + }, + { + "id": "0x55cfa2d28610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d28610-IntLiteralConstant" + }, + { + "id": "0x55cfa2d28610-IntLiteralConstant", + "CharBlock": "19" + }, + { + "id": "0x55cfa2d34430-NamedConstantDef", + "NamedConstant": "0x55cfa2d34438-NamedConstant", + "Expr": "0x55cfa2d24380-Expr" + }, + { + "id": "0x55cfa2d34438-NamedConstant", + "Name": "0x55cfa2d34438-Name" + }, + { + "id": "0x55cfa2d34438-Name", + "source": "d" + }, + { + "id": "0x55cfa2d24380-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d243a0-LiteralConstant" + }, + { + "id": "0x55cfa2d243a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d243a0-IntLiteralConstant" + }, + { + "id": "0x55cfa2d243a0-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x55cfa2d34b10-NamedConstantDef", + "NamedConstant": "0x55cfa2d34b18-NamedConstant", + "Expr": "0x55cfa2d244c0-Expr" + }, + { + "id": "0x55cfa2d34b18-NamedConstant", + "Name": "0x55cfa2d34b18-Name" + }, + { + "id": "0x55cfa2d34b18-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d244c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d244e0-LiteralConstant" + }, + { + "id": "0x55cfa2d244e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d244e0-IntLiteralConstant" + }, + { + "id": "0x55cfa2d244e0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cfa2d2c838-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55cfa2d29e20-ExecutionPartConstruct" + ] + }, + { + "id": "0x55cfa2d2c838-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d29e20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d29e20-ExecutableConstruct" + }, + { + "id": "0x55cfa2d29e20-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55cfa2d2b7f0-IfConstruct" + }, + { + "id": "0x55cfa2d2b7f0-IfConstruct", + "Statement": "0x55cfa2d2b8c0-Statement", + "ExecutionPartConstruct": [ + "0x55cfa2d2f630-ExecutionPartConstruct", + "0x55cfa2d2b7a0-ExecutionPartConstruct" + ], + "Statement": "0x55cfa2d2b7f0-Statement" + }, + { + "id": "0x55cfa2d2b8c0-Statement", + "statement": "0x55cfa2d2b8d0-IfThenStmt", + "source": "if(mod(m,d) .ne. ans) then" + }, + { + "id": "0x55cfa2d2b8d0-IfThenStmt", + "Expr": "0x55cfa2d29d30-Expr" + }, + { + "id": "0x55cfa2d29d30-Expr", + "variantKey": "NE", + "NE": "0x55cfa2d29d50-NE" + }, + { + "id": "0x55cfa2d29d50-NE", + "left": "0x55cfa2d29b70-Expr", + "right": "0x55cfa2d2a8d0-Expr", + "op": "NE" + }, + { + "id": "0x55cfa2d29b70-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55cfa2d26780-FunctionReference" + }, + { + "id": "0x55cfa2d26780-FunctionReference", + "Call": "0x55cfa2d26780-Call" + }, + { + "id": "0x55cfa2d26780-Call", + "ProcedureDesignator": "0x55cfa2d26798-ProcedureDesignator", + "ActualArgSpec": [ + "0x55cfa2d246e0-ActualArgSpec", + "0x55cfa2d2aa20-ActualArgSpec" + ] + }, + { + "id": "0x55cfa2d26798-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d26798-Name" + }, + { + "id": "0x55cfa2d26798-Name", + "source": "mod" + }, + { + "id": "0x55cfa2d246e0-ActualArgSpec", + "ActualArg": "0x55cfa2d246e0-ActualArg" + }, + { + "id": "0x55cfa2d246e0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d29c50-Expr" + }, + { + "id": "0x55cfa2d29c50-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2f5c0-Designator" + }, + { + "id": "0x55cfa2d2f5c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2f5d0-DataRef" + }, + { + "id": "0x55cfa2d2f5d0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2f5d0-Name" + }, + { + "id": "0x55cfa2d2f5d0-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2aa20-ActualArgSpec", + "ActualArg": "0x55cfa2d2aa20-ActualArg" + }, + { + "id": "0x55cfa2d2aa20-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2f480-Expr" + }, + { + "id": "0x55cfa2d2f480-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2a9b0-Designator" + }, + { + "id": "0x55cfa2d2a9b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2a9c0-DataRef" + }, + { + "id": "0x55cfa2d2a9c0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2a9c0-Name" + }, + { + "id": "0x55cfa2d2a9c0-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2a8d0-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2a160-Designator" + }, + { + "id": "0x55cfa2d2a160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2a170-DataRef" + }, + { + "id": "0x55cfa2d2a170-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2a170-Name" + }, + { + "id": "0x55cfa2d2a170-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d2b8a8-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d2f630-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d2f630-ExecutableConstruct" + }, + { + "id": "0x55cfa2d2f630-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2f630-Statement" + }, + { + "id": "0x55cfa2d2f630-Statement", + "statement": "0x55cfa2d2f640-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55cfa2d2f640-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cfa2d25b30-AssignmentStmt" + }, + { + "id": "0x55cfa2d25b30-AssignmentStmt", + "Variable": "0x55cfa2d25c10-Variable", + "Expr": "0x55cfa2d25b40-Expr" + }, + { + "id": "0x55cfa2d25c10-Variable", + "variantKey": "Designator", + "Designator": "0x55cfa2d288d0-Designator" + }, + { + "id": "0x55cfa2d288d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d288e0-DataRef" + }, + { + "id": "0x55cfa2d288e0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d288e0-Name" + }, + { + "id": "0x55cfa2d288e0-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d25b40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d25b60-LiteralConstant" + }, + { + "id": "0x55cfa2d25b60-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55cfa2d25b60-LogicalLiteralConstant" + }, + { + "id": "0x55cfa2d25b60-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55cfa2d2b7a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d2b7a0-ExecutableConstruct" + }, + { + "id": "0x55cfa2d2b7a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2b7a0-Statement" + }, + { + "id": "0x55cfa2d2b7a0-Statement", + "statement": "0x55cfa2d2b7b0-ActionStmt", + "source": "print *,\"TEST1-NG =>\",mod(m,d)" + }, + { + "id": "0x55cfa2d2b7b0-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55cfa2d2b690-PrintStmt" + }, + { + "id": "0x55cfa2d2b690-PrintStmt", + "Format": "0x55cfa2d2b6a8-Format", + "OutputItem": [ + "0x55cfa2d2b5b0-OutputItem", + "0x55cfa2d29e80-OutputItem" + ] + }, + { + "id": "0x55cfa2d2b6a8-Format", + "variantKey": "Star", + "Star": "0x55cfa2d2b6a8-Star" + }, + { + "id": "0x55cfa2d2b6a8-Star" + }, + { + "id": "0x55cfa2d2b5b0-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cfa2d2b5b0-Expr" + }, + { + "id": "0x55cfa2d2b5b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2b5d0-LiteralConstant" + }, + { + "id": "0x55cfa2d2b5d0-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55cfa2d2b5d0-CharLiteralConstant" + }, + { + "id": "0x55cfa2d2b5d0-CharLiteralConstant", + "string": "TEST1-NG =>" + }, + { + "id": "0x55cfa2d29e80-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cfa2d29e80-Expr" + }, + { + "id": "0x55cfa2d29e80-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55cfa2d2ad20-FunctionReference" + }, + { + "id": "0x55cfa2d2ad20-FunctionReference", + "Call": "0x55cfa2d2ad20-Call" + }, + { + "id": "0x55cfa2d2ad20-Call", + "ProcedureDesignator": "0x55cfa2d2ad38-ProcedureDesignator", + "ActualArgSpec": [ + "0x55cfa2d2b4a0-ActualArgSpec", + "0x55cfa2d2b390-ActualArgSpec" + ] + }, + { + "id": "0x55cfa2d2ad38-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d2ad38-Name" + }, + { + "id": "0x55cfa2d2ad38-Name", + "source": "mod" + }, + { + "id": "0x55cfa2d2b4a0-ActualArgSpec", + "ActualArg": "0x55cfa2d2b4a0-ActualArg" + }, + { + "id": "0x55cfa2d2b4a0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2b240-Expr" + }, + { + "id": "0x55cfa2d2b240-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d24e50-Designator" + }, + { + "id": "0x55cfa2d24e50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d24e60-DataRef" + }, + { + "id": "0x55cfa2d24e60-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d24e60-Name" + }, + { + "id": "0x55cfa2d24e60-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2b390-ActualArgSpec", + "ActualArg": "0x55cfa2d2b390-ActualArg" + }, + { + "id": "0x55cfa2d2b390-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2b160-Expr" + }, + { + "id": "0x55cfa2d2b160-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d245a0-Designator" + }, + { + "id": "0x55cfa2d245a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d245b0-DataRef" + }, + { + "id": "0x55cfa2d245b0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d245b0-Name" + }, + { + "id": "0x55cfa2d245b0-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2b7f0-Statement", + "statement": "0x55cfa2d2b800-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55cfa2d2b800-EndIfStmt" + }, + { + "id": "0x55cfa2d2c7b0-Statement", + "statement": "0x55cfa2d2c7c0-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x55cfa2d2c7c0-EndSubroutineStmt" + }, + { + "id": "0x55cfa2d36eb0-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55cfa2d2e770-SubroutineSubprogram" + }, + { + "id": "0x55cfa2d2e770-SubroutineSubprogram", + "Statement": "0x55cfa2d2e8b8-Statement", + "SpecificationPart": "0x55cfa2d2e810-SpecificationPart", + "ExecutionPart": "0x55cfa2d2e7f8-ExecutionPart", + "Statement": "0x55cfa2d2e770-Statement" + }, + { + "id": "0x55cfa2d2e8b8-Statement", + "statement": "0x55cfa2d2e8c8-SubroutineStmt", + "source": "subroutine test2" + }, + { + "id": "0x55cfa2d2e8c8-SubroutineStmt", + "Name": "0x55cfa2d2e900-Name" + }, + { + "id": "0x55cfa2d2e900-Name", + "source": "test2" + }, + { + "id": "0x55cfa2d2e810-SpecificationPart", + "ImplicitPart": "0x55cfa2d2e828-ImplicitPart", + "DeclarationConstruct": [ + "0x55cfa2d2f570-DeclarationConstruct", + "0x55cfa2d26180-DeclarationConstruct", + "0x55cfa2d247f0-DeclarationConstruct", + "0x55cfa2d24850-DeclarationConstruct" + ] + }, + { + "id": "0x55cfa2d2e828-ImplicitPart" + }, + { + "id": "0x55cfa2d2f570-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d2f570-SpecificationConstruct" + }, + { + "id": "0x55cfa2d2f570-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2f570-Statement" + }, + { + "id": "0x55cfa2d2f570-Statement", + "statement": "0x55cfa2d2f580-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x55cfa2d2f580-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x55cfa2d36e70-CommonStmt" + }, + { + "id": "0x55cfa2d36e70-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d3ce40-CommonStmtBlock" + ] + }, + { + "id": "0x55cfa2d3ce40-CommonStmtBlock", + "Name": "0x55cfa2d3ce58-Name", + "CommonBlockObject": [ + "0x55cfa2d27360-CommonBlockObject" + ] + }, + { + "id": "0x55cfa2d3ce58-Name", + "source": "com" + }, + { + "id": "0x55cfa2d27360-CommonBlockObject", + "Name": "0x55cfa2d27398-Name" + }, + { + "id": "0x55cfa2d27398-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d26180-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d26180-SpecificationConstruct" + }, + { + "id": "0x55cfa2d26180-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d26180-Statement" + }, + { + "id": "0x55cfa2d26180-Statement", + "statement": "0x55cfa2d24eb0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x55cfa2d24eb0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d24ee0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cfa2d2c9a0-EntityDecl" + ] + }, + { + "id": "0x55cfa2d24ee0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cfa2d24ee0-IntrinsicTypeSpec" + }, + { + "id": "0x55cfa2d24ee0-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55cfa2d24ee0-Logical" + }, + { + "id": "0x55cfa2d24ee0-Logical", + "KindSelector": "0x55cfa2d24ee0-KindSelector" + }, + { + "id": "0x55cfa2d24ee0-KindSelector", + "variantKey": "Expr", + "Expr": "0x55cfa2d2f680-Expr" + }, + { + "id": "0x55cfa2d2f680-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2f6a0-LiteralConstant" + }, + { + "id": "0x55cfa2d2f6a0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2f6a0-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2f6a0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cfa2d2c9a0-EntityDecl", + "Name": "0x55cfa2d2ca58-Name" + }, + { + "id": "0x55cfa2d2ca58-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d247f0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d247f0-SpecificationConstruct" + }, + { + "id": "0x55cfa2d247f0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d247f0-Statement" + }, + { + "id": "0x55cfa2d247f0-Statement", + "statement": "0x55cfa2d2a410-TypeDeclarationStmt", + "source": "integer*2 m,d,ans" + }, + { + "id": "0x55cfa2d2a410-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d2a440-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cfa2d2cc70-EntityDecl", + "0x55cfa2d2ca90-EntityDecl", + "0x55cfa2d2cb80-EntityDecl" + ] + }, + { + "id": "0x55cfa2d2a440-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cfa2d2a440-IntrinsicTypeSpec" + }, + { + "id": "0x55cfa2d2a440-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55cfa2d2a440-IntegerTypeSpec" + }, + { + "id": "0x55cfa2d2a440-IntegerTypeSpec", + "KindSelector": "0x55cfa2d2a440-KindSelector" + }, + { + "id": "0x55cfa2d2a440-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55cfa2d2a440-StarSize" + }, + { + "id": "0x55cfa2d2a440-StarSize", + "uint64_t": "2" + }, + { + "id": "0x55cfa2d2cc70-EntityDecl", + "Name": "0x55cfa2d2cd28-Name" + }, + { + "id": "0x55cfa2d2cd28-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2ca90-EntityDecl", + "Name": "0x55cfa2d2cb48-Name" + }, + { + "id": "0x55cfa2d2cb48-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2cb80-EntityDecl", + "Name": "0x55cfa2d2cc38-Name" + }, + { + "id": "0x55cfa2d2cc38-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d24850-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d24850-SpecificationConstruct" + }, + { + "id": "0x55cfa2d24850-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d24850-Statement" + }, + { + "id": "0x55cfa2d24850-Statement", + "statement": "0x55cfa2d36dd0-ParameterStmt", + "source": "parameter(m=19,d=3,ans=1)" + }, + { + "id": "0x55cfa2d36dd0-ParameterStmt", + "NamedConstantDef": [ + "0x55cfa2d36e00-NamedConstantDef", + "0x55cfa2d34fd0-NamedConstantDef", + "0x55cfa2d36da0-NamedConstantDef" + ] + }, + { + "id": "0x55cfa2d36e00-NamedConstantDef", + "NamedConstant": "0x55cfa2d36e08-NamedConstant", + "Expr": "0x55cfa2d2cd50-Expr" + }, + { + "id": "0x55cfa2d36e08-NamedConstant", + "Name": "0x55cfa2d36e08-Name" + }, + { + "id": "0x55cfa2d36e08-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2cd50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2cd70-LiteralConstant" + }, + { + "id": "0x55cfa2d2cd70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2cd70-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2cd70-IntLiteralConstant", + "CharBlock": "19" + }, + { + "id": "0x55cfa2d34fd0-NamedConstantDef", + "NamedConstant": "0x55cfa2d34fd8-NamedConstant", + "Expr": "0x55cfa2d2ce30-Expr" + }, + { + "id": "0x55cfa2d34fd8-NamedConstant", + "Name": "0x55cfa2d34fd8-Name" + }, + { + "id": "0x55cfa2d34fd8-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2ce30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2ce50-LiteralConstant" + }, + { + "id": "0x55cfa2d2ce50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2ce50-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2ce50-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x55cfa2d36da0-NamedConstantDef", + "NamedConstant": "0x55cfa2d36da8-NamedConstant", + "Expr": "0x55cfa2d2cf10-Expr" + }, + { + "id": "0x55cfa2d36da8-NamedConstant", + "Name": "0x55cfa2d36da8-Name" + }, + { + "id": "0x55cfa2d36da8-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d2cf10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2cf30-LiteralConstant" + }, + { + "id": "0x55cfa2d2cf30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2cf30-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2cf30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cfa2d2e7f8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55cfa2d2c0d0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55cfa2d2e7f8-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d2c0d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d2c0d0-ExecutableConstruct" + }, + { + "id": "0x55cfa2d2c0d0-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55cfa2d2d840-IfConstruct" + }, + { + "id": "0x55cfa2d2d840-IfConstruct", + "Statement": "0x55cfa2d2d910-Statement", + "ExecutionPartConstruct": [ + "0x55cfa2d2d1a0-ExecutionPartConstruct", + "0x55cfa2d2d7f0-ExecutionPartConstruct" + ], + "Statement": "0x55cfa2d2d840-Statement" + }, + { + "id": "0x55cfa2d2d910-Statement", + "statement": "0x55cfa2d2d920-IfThenStmt", + "source": "if(mod(m,d) .ne. ans) then" + }, + { + "id": "0x55cfa2d2d920-IfThenStmt", + "Expr": "0x55cfa2d2bfe0-Expr" + }, + { + "id": "0x55cfa2d2bfe0-Expr", + "variantKey": "NE", + "NE": "0x55cfa2d2c000-NE" + }, + { + "id": "0x55cfa2d2c000-NE", + "left": "0x55cfa2d2be20-Expr", + "right": "0x55cfa2d2b910-Expr", + "op": "NE" + }, + { + "id": "0x55cfa2d2be20-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55cfa2d27660-FunctionReference" + }, + { + "id": "0x55cfa2d27660-FunctionReference", + "Call": "0x55cfa2d27660-Call" + }, + { + "id": "0x55cfa2d27660-Call", + "ProcedureDesignator": "0x55cfa2d27678-ProcedureDesignator", + "ActualArgSpec": [ + "0x55cfa2d2c130-ActualArgSpec", + "0x55cfa2d2bb70-ActualArgSpec" + ] + }, + { + "id": "0x55cfa2d27678-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d27678-Name" + }, + { + "id": "0x55cfa2d27678-Name", + "source": "mod" + }, + { + "id": "0x55cfa2d2c130-ActualArgSpec", + "ActualArg": "0x55cfa2d2c130-ActualArg" + }, + { + "id": "0x55cfa2d2c130-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2bf00-Expr" + }, + { + "id": "0x55cfa2d2bf00-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2d130-Designator" + }, + { + "id": "0x55cfa2d2d130-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2d140-DataRef" + }, + { + "id": "0x55cfa2d2d140-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2d140-Name" + }, + { + "id": "0x55cfa2d2d140-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2bb70-ActualArgSpec", + "ActualArg": "0x55cfa2d2bb70-ActualArg" + }, + { + "id": "0x55cfa2d2bb70-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2cff0-Expr" + }, + { + "id": "0x55cfa2d2cff0-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2b9f0-Designator" + }, + { + "id": "0x55cfa2d2b9f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2ba00-DataRef" + }, + { + "id": "0x55cfa2d2ba00-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2ba00-Name" + }, + { + "id": "0x55cfa2d2ba00-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2b910-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2bd30-Designator" + }, + { + "id": "0x55cfa2d2bd30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2bd40-DataRef" + }, + { + "id": "0x55cfa2d2bd40-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2bd40-Name" + }, + { + "id": "0x55cfa2d2bd40-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d2d8f8-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d2d1a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d2d1a0-ExecutableConstruct" + }, + { + "id": "0x55cfa2d2d1a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2d1a0-Statement" + }, + { + "id": "0x55cfa2d2d1a0-Statement", + "statement": "0x55cfa2d2d1b0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55cfa2d2d1b0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cfa2d2ba50-AssignmentStmt" + }, + { + "id": "0x55cfa2d2ba50-AssignmentStmt", + "Variable": "0x55cfa2d2bb30-Variable", + "Expr": "0x55cfa2d2ba60-Expr" + }, + { + "id": "0x55cfa2d2bb30-Variable", + "variantKey": "Designator", + "Designator": "0x55cfa2d2bcd0-Designator" + }, + { + "id": "0x55cfa2d2bcd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2bce0-DataRef" + }, + { + "id": "0x55cfa2d2bce0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2bce0-Name" + }, + { + "id": "0x55cfa2d2bce0-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d2ba60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2ba80-LiteralConstant" + }, + { + "id": "0x55cfa2d2ba80-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55cfa2d2ba80-LogicalLiteralConstant" + }, + { + "id": "0x55cfa2d2ba80-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55cfa2d2d7f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d2d7f0-ExecutableConstruct" + }, + { + "id": "0x55cfa2d2d7f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2d7f0-Statement" + }, + { + "id": "0x55cfa2d2d7f0-Statement", + "statement": "0x55cfa2d2d800-ActionStmt", + "source": "print *,\"TEST2-NG =>\",mod(m,d)" + }, + { + "id": "0x55cfa2d2d800-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55cfa2d2d6e0-PrintStmt" + }, + { + "id": "0x55cfa2d2d6e0-PrintStmt", + "Format": "0x55cfa2d2d6f8-Format", + "OutputItem": [ + "0x55cfa2d2d600-OutputItem", + "0x55cfa2d2d510-OutputItem" + ] + }, + { + "id": "0x55cfa2d2d6f8-Format", + "variantKey": "Star", + "Star": "0x55cfa2d2d6f8-Star" + }, + { + "id": "0x55cfa2d2d6f8-Star" + }, + { + "id": "0x55cfa2d2d600-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cfa2d2d600-Expr" + }, + { + "id": "0x55cfa2d2d600-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2d620-LiteralConstant" + }, + { + "id": "0x55cfa2d2d620-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55cfa2d2d620-CharLiteralConstant" + }, + { + "id": "0x55cfa2d2d620-CharLiteralConstant", + "string": "TEST2-NG =>" + }, + { + "id": "0x55cfa2d2d510-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cfa2d2d510-Expr" + }, + { + "id": "0x55cfa2d2d510-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55cfa2d2c360-FunctionReference" + }, + { + "id": "0x55cfa2d2c360-FunctionReference", + "Call": "0x55cfa2d2c360-Call" + }, + { + "id": "0x55cfa2d2c360-Call", + "ProcedureDesignator": "0x55cfa2d2c378-ProcedureDesignator", + "ActualArgSpec": [ + "0x55cfa2d2d400-ActualArgSpec", + "0x55cfa2d2c660-ActualArgSpec" + ] + }, + { + "id": "0x55cfa2d2c378-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d2c378-Name" + }, + { + "id": "0x55cfa2d2c378-Name", + "source": "mod" + }, + { + "id": "0x55cfa2d2d400-ActualArgSpec", + "ActualArg": "0x55cfa2d2d400-ActualArg" + }, + { + "id": "0x55cfa2d2d400-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2c510-Expr" + }, + { + "id": "0x55cfa2d2c510-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2c4b0-Designator" + }, + { + "id": "0x55cfa2d2c4b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2c4c0-DataRef" + }, + { + "id": "0x55cfa2d2c4c0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2c4c0-Name" + }, + { + "id": "0x55cfa2d2c4c0-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2c660-ActualArgSpec", + "ActualArg": "0x55cfa2d2c660-ActualArg" + }, + { + "id": "0x55cfa2d2c660-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2c3d0-Expr" + }, + { + "id": "0x55cfa2d2c3d0-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d29730-Designator" + }, + { + "id": "0x55cfa2d29730-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d29740-DataRef" + }, + { + "id": "0x55cfa2d29740-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d29740-Name" + }, + { + "id": "0x55cfa2d29740-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2d840-Statement", + "statement": "0x55cfa2d2d850-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55cfa2d2d850-EndIfStmt" + }, + { + "id": "0x55cfa2d2e770-Statement", + "statement": "0x55cfa2d2e780-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x55cfa2d2e780-EndSubroutineStmt" + }, + { + "id": "0x55cfa2d33810-ProgramUnit", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55cfa2d3e2c0-SubroutineSubprogram" + }, + { + "id": "0x55cfa2d3e2c0-SubroutineSubprogram", + "Statement": "0x55cfa2d3e408-Statement", + "SpecificationPart": "0x55cfa2d3e360-SpecificationPart", + "ExecutionPart": "0x55cfa2d3e348-ExecutionPart", + "Statement": "0x55cfa2d3e2c0-Statement" + }, + { + "id": "0x55cfa2d3e408-Statement", + "statement": "0x55cfa2d3e418-SubroutineStmt", + "source": "subroutine test3" + }, + { + "id": "0x55cfa2d3e418-SubroutineStmt", + "Name": "0x55cfa2d3e450-Name" + }, + { + "id": "0x55cfa2d3e450-Name", + "source": "test3" + }, + { + "id": "0x55cfa2d3e360-SpecificationPart", + "ImplicitPart": "0x55cfa2d3e378-ImplicitPart", + "DeclarationConstruct": [ + "0x55cfa2d2d0e0-DeclarationConstruct", + "0x55cfa2d24470-DeclarationConstruct", + "0x55cfa2d2c240-DeclarationConstruct", + "0x55cfa2d2c2a0-DeclarationConstruct" + ] + }, + { + "id": "0x55cfa2d3e378-ImplicitPart" + }, + { + "id": "0x55cfa2d2d0e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d2d0e0-SpecificationConstruct" + }, + { + "id": "0x55cfa2d2d0e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2d0e0-Statement" + }, + { + "id": "0x55cfa2d2d0e0-Statement", + "statement": "0x55cfa2d2d0f0-OtherSpecificationStmt", + "source": "common /com/ok" + }, + { + "id": "0x55cfa2d2d0f0-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x55cfa2d36ef0-CommonStmt" + }, + { + "id": "0x55cfa2d36ef0-CommonStmt", + "CommonStmtBlock": [ + "0x55cfa2d2fcc0-CommonStmtBlock" + ] + }, + { + "id": "0x55cfa2d2fcc0-CommonStmtBlock", + "Name": "0x55cfa2d2fcd8-Name", + "CommonBlockObject": [ + "0x55cfa2d25080-CommonBlockObject" + ] + }, + { + "id": "0x55cfa2d2fcd8-Name", + "source": "com" + }, + { + "id": "0x55cfa2d25080-CommonBlockObject", + "Name": "0x55cfa2d250b8-Name" + }, + { + "id": "0x55cfa2d250b8-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d24470-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d24470-SpecificationConstruct" + }, + { + "id": "0x55cfa2d24470-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d24470-Statement" + }, + { + "id": "0x55cfa2d24470-Statement", + "statement": "0x55cfa2d29fe0-TypeDeclarationStmt", + "source": "logical(kind=1) ok" + }, + { + "id": "0x55cfa2d29fe0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d2a010-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cfa2d2ea40-EntityDecl" + ] + }, + { + "id": "0x55cfa2d2a010-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cfa2d2a010-IntrinsicTypeSpec" + }, + { + "id": "0x55cfa2d2a010-IntrinsicTypeSpec", + "variantKey": "Logical", + "Logical": "0x55cfa2d2a010-Logical" + }, + { + "id": "0x55cfa2d2a010-Logical", + "KindSelector": "0x55cfa2d2a010-KindSelector" + }, + { + "id": "0x55cfa2d2a010-KindSelector", + "variantKey": "Expr", + "Expr": "0x55cfa2d2e950-Expr" + }, + { + "id": "0x55cfa2d2e950-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2e970-LiteralConstant" + }, + { + "id": "0x55cfa2d2e970-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2e970-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2e970-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cfa2d2ea40-EntityDecl", + "Name": "0x55cfa2d2eaf8-Name" + }, + { + "id": "0x55cfa2d2eaf8-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d2c240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d2c240-SpecificationConstruct" + }, + { + "id": "0x55cfa2d2c240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2c240-Statement" + }, + { + "id": "0x55cfa2d2c240-Statement", + "statement": "0x55cfa2d296b0-TypeDeclarationStmt", + "source": "integer*1 m,d,ans" + }, + { + "id": "0x55cfa2d296b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55cfa2d296e0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55cfa2d2ed10-EntityDecl", + "0x55cfa2d2eb30-EntityDecl", + "0x55cfa2d2ec20-EntityDecl" + ] + }, + { + "id": "0x55cfa2d296e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55cfa2d296e0-IntrinsicTypeSpec" + }, + { + "id": "0x55cfa2d296e0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55cfa2d296e0-IntegerTypeSpec" + }, + { + "id": "0x55cfa2d296e0-IntegerTypeSpec", + "KindSelector": "0x55cfa2d296e0-KindSelector" + }, + { + "id": "0x55cfa2d296e0-KindSelector", + "variantKey": "StarSize", + "StarSize": "0x55cfa2d296e0-StarSize" + }, + { + "id": "0x55cfa2d296e0-StarSize", + "uint64_t": "1" + }, + { + "id": "0x55cfa2d2ed10-EntityDecl", + "Name": "0x55cfa2d2edc8-Name" + }, + { + "id": "0x55cfa2d2edc8-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2eb30-EntityDecl", + "Name": "0x55cfa2d2ebe8-Name" + }, + { + "id": "0x55cfa2d2ebe8-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2ec20-EntityDecl", + "Name": "0x55cfa2d2ecd8-Name" + }, + { + "id": "0x55cfa2d2ecd8-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d2c2a0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55cfa2d2c2a0-SpecificationConstruct" + }, + { + "id": "0x55cfa2d2c2a0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2c2a0-Statement" + }, + { + "id": "0x55cfa2d2c2a0-Statement", + "statement": "0x55cfa2d356c0-ParameterStmt", + "source": "parameter(m=19,d=3,ans=1)" + }, + { + "id": "0x55cfa2d356c0-ParameterStmt", + "NamedConstantDef": [ + "0x55cfa2d34180-NamedConstantDef", + "0x55cfa2d36e40-NamedConstantDef", + "0x55cfa2d343b0-NamedConstantDef" + ] + }, + { + "id": "0x55cfa2d34180-NamedConstantDef", + "NamedConstant": "0x55cfa2d34188-NamedConstant", + "Expr": "0x55cfa2d2edf0-Expr" + }, + { + "id": "0x55cfa2d34188-NamedConstant", + "Name": "0x55cfa2d34188-Name" + }, + { + "id": "0x55cfa2d34188-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2edf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2ee10-LiteralConstant" + }, + { + "id": "0x55cfa2d2ee10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2ee10-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2ee10-IntLiteralConstant", + "CharBlock": "19" + }, + { + "id": "0x55cfa2d36e40-NamedConstantDef", + "NamedConstant": "0x55cfa2d36e48-NamedConstant", + "Expr": "0x55cfa2d2eed0-Expr" + }, + { + "id": "0x55cfa2d36e48-NamedConstant", + "Name": "0x55cfa2d36e48-Name" + }, + { + "id": "0x55cfa2d36e48-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2eed0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2eef0-LiteralConstant" + }, + { + "id": "0x55cfa2d2eef0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2eef0-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2eef0-IntLiteralConstant", + "CharBlock": "3" + }, + { + "id": "0x55cfa2d343b0-NamedConstantDef", + "NamedConstant": "0x55cfa2d343b8-NamedConstant", + "Expr": "0x55cfa2d2efb0-Expr" + }, + { + "id": "0x55cfa2d343b8-NamedConstant", + "Name": "0x55cfa2d343b8-Name" + }, + { + "id": "0x55cfa2d343b8-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d2efb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2efd0-LiteralConstant" + }, + { + "id": "0x55cfa2d2efd0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55cfa2d2efd0-IntLiteralConstant" + }, + { + "id": "0x55cfa2d2efd0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55cfa2d3e348-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55cfa2d2e090-ExecutionPartConstruct" + ] + }, + { + "id": "0x55cfa2d3e348-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d2e090-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d2e090-ExecutableConstruct" + }, + { + "id": "0x55cfa2d2e090-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55cfa2d3d420-IfConstruct" + }, + { + "id": "0x55cfa2d3d420-IfConstruct", + "Statement": "0x55cfa2d3d4f0-Statement", + "ExecutionPartConstruct": [ + "0x55cfa2d2bda0-ExecutionPartConstruct", + "0x55cfa2d29850-ExecutionPartConstruct" + ], + "Statement": "0x55cfa2d3d420-Statement" + }, + { + "id": "0x55cfa2d3d4f0-Statement", + "statement": "0x55cfa2d3d500-IfThenStmt", + "source": "if(mod(m,d) .ne. ans) then" + }, + { + "id": "0x55cfa2d3d500-IfThenStmt", + "Expr": "0x55cfa2d2dfa0-Expr" + }, + { + "id": "0x55cfa2d2dfa0-Expr", + "variantKey": "NE", + "NE": "0x55cfa2d2dfc0-NE" + }, + { + "id": "0x55cfa2d2dfc0-NE", + "left": "0x55cfa2d2dde0-Expr", + "right": "0x55cfa2d2d960-Expr", + "op": "NE" + }, + { + "id": "0x55cfa2d2dde0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55cfa2d26b00-FunctionReference" + }, + { + "id": "0x55cfa2d26b00-FunctionReference", + "Call": "0x55cfa2d26b00-Call" + }, + { + "id": "0x55cfa2d26b00-Call", + "ProcedureDesignator": "0x55cfa2d26b18-ProcedureDesignator", + "ActualArgSpec": [ + "0x55cfa2d2e0f0-ActualArgSpec", + "0x55cfa2d2dbc0-ActualArgSpec" + ] + }, + { + "id": "0x55cfa2d26b18-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d26b18-Name" + }, + { + "id": "0x55cfa2d26b18-Name", + "source": "mod" + }, + { + "id": "0x55cfa2d2e0f0-ActualArgSpec", + "ActualArg": "0x55cfa2d2e0f0-ActualArg" + }, + { + "id": "0x55cfa2d2e0f0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2dec0-Expr" + }, + { + "id": "0x55cfa2d2dec0-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2da40-Designator" + }, + { + "id": "0x55cfa2d2da40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2da50-DataRef" + }, + { + "id": "0x55cfa2d2da50-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2da50-Name" + }, + { + "id": "0x55cfa2d2da50-Name", + "source": "m" + }, + { + "id": "0x55cfa2d2dbc0-ActualArgSpec", + "ActualArg": "0x55cfa2d2dbc0-ActualArg" + }, + { + "id": "0x55cfa2d2dbc0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2f090-Expr" + }, + { + "id": "0x55cfa2d2f090-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2dcc0-Designator" + }, + { + "id": "0x55cfa2d2dcc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2dcd0-DataRef" + }, + { + "id": "0x55cfa2d2dcd0-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2dcd0-Name" + }, + { + "id": "0x55cfa2d2dcd0-Name", + "source": "d" + }, + { + "id": "0x55cfa2d2d960-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2dd80-Designator" + }, + { + "id": "0x55cfa2d2dd80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2dd90-DataRef" + }, + { + "id": "0x55cfa2d2dd90-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2dd90-Name" + }, + { + "id": "0x55cfa2d2dd90-Name", + "source": "ans" + }, + { + "id": "0x55cfa2d3d4d8-ExecutionPartConstruct" + }, + { + "id": "0x55cfa2d2bda0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d2bda0-ExecutableConstruct" + }, + { + "id": "0x55cfa2d2bda0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d2bda0-Statement" + }, + { + "id": "0x55cfa2d2bda0-Statement", + "statement": "0x55cfa2d2bdb0-ActionStmt", + "source": "ok = .false." + }, + { + "id": "0x55cfa2d2bdb0-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55cfa2d2daa0-AssignmentStmt" + }, + { + "id": "0x55cfa2d2daa0-AssignmentStmt", + "Variable": "0x55cfa2d2db80-Variable", + "Expr": "0x55cfa2d2dab0-Expr" + }, + { + "id": "0x55cfa2d2db80-Variable", + "variantKey": "Designator", + "Designator": "0x55cfa2d2dd20-Designator" + }, + { + "id": "0x55cfa2d2dd20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2dd30-DataRef" + }, + { + "id": "0x55cfa2d2dd30-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2dd30-Name" + }, + { + "id": "0x55cfa2d2dd30-Name", + "source": "ok" + }, + { + "id": "0x55cfa2d2dab0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d2dad0-LiteralConstant" + }, + { + "id": "0x55cfa2d2dad0-LiteralConstant", + "variantKey": "LogicalLiteralConstant", + "LogicalLiteralConstant": "0x55cfa2d2dad0-LogicalLiteralConstant" + }, + { + "id": "0x55cfa2d2dad0-LogicalLiteralConstant", + "bool": "0" + }, + { + "id": "0x55cfa2d29850-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55cfa2d29850-ExecutableConstruct" + }, + { + "id": "0x55cfa2d29850-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55cfa2d29850-Statement" + }, + { + "id": "0x55cfa2d29850-Statement", + "statement": "0x55cfa2d29860-ActionStmt", + "source": "print *,\"TEST3-NG =>\",mod(m,d)" + }, + { + "id": "0x55cfa2d29860-ActionStmt", + "variantKey": "PrintStmt", + "PrintStmt": "0x55cfa2d3d320-PrintStmt" + }, + { + "id": "0x55cfa2d3d320-PrintStmt", + "Format": "0x55cfa2d3d338-Format", + "OutputItem": [ + "0x55cfa2d3d240-OutputItem", + "0x55cfa2d3d150-OutputItem" + ] + }, + { + "id": "0x55cfa2d3d338-Format", + "variantKey": "Star", + "Star": "0x55cfa2d3d338-Star" + }, + { + "id": "0x55cfa2d3d338-Star" + }, + { + "id": "0x55cfa2d3d240-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cfa2d3d240-Expr" + }, + { + "id": "0x55cfa2d3d240-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55cfa2d3d260-LiteralConstant" + }, + { + "id": "0x55cfa2d3d260-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55cfa2d3d260-CharLiteralConstant" + }, + { + "id": "0x55cfa2d3d260-CharLiteralConstant", + "string": "TEST3-NG =>" + }, + { + "id": "0x55cfa2d3d150-OutputItem", + "variantKey": "Expr", + "Expr": "0x55cfa2d3d150-Expr" + }, + { + "id": "0x55cfa2d3d150-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55cfa2d2e390-FunctionReference" + }, + { + "id": "0x55cfa2d2e390-FunctionReference", + "Call": "0x55cfa2d2e390-Call" + }, + { + "id": "0x55cfa2d2e390-Call", + "ProcedureDesignator": "0x55cfa2d2e3a8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55cfa2d3d040-ActualArgSpec", + "0x55cfa2d3cf30-ActualArgSpec" + ] + }, + { + "id": "0x55cfa2d2e3a8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55cfa2d2e3a8-Name" + }, + { + "id": "0x55cfa2d2e3a8-Name", + "source": "mod" + }, + { + "id": "0x55cfa2d3d040-ActualArgSpec", + "ActualArg": "0x55cfa2d3d040-ActualArg" + }, + { + "id": "0x55cfa2d3d040-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2e5a0-Expr" + }, + { + "id": "0x55cfa2d2e5a0-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2e540-Designator" + }, + { + "id": "0x55cfa2d2e540-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2e550-DataRef" + }, + { + "id": "0x55cfa2d2e550-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2e550-Name" + }, + { + "id": "0x55cfa2d2e550-Name", + "source": "m" + }, + { + "id": "0x55cfa2d3cf30-ActualArgSpec", + "ActualArg": "0x55cfa2d3cf30-ActualArg" + }, + { + "id": "0x55cfa2d3cf30-ActualArg", + "variantKey": "Expr", + "Expr": "0x55cfa2d2e460-Expr" + }, + { + "id": "0x55cfa2d2e460-Expr", + "variantKey": "Designator", + "Designator": "0x55cfa2d2e400-Designator" + }, + { + "id": "0x55cfa2d2e400-Designator", + "variantKey": "DataRef", + "DataRef": "0x55cfa2d2e410-DataRef" + }, + { + "id": "0x55cfa2d2e410-DataRef", + "variantKey": "Name", + "Name": "0x55cfa2d2e410-Name" + }, + { + "id": "0x55cfa2d2e410-Name", + "source": "d" + }, + { + "id": "0x55cfa2d3d420-Statement", + "statement": "0x55cfa2d3d430-EndIfStmt", + "source": "endif" + }, + { + "id": "0x55cfa2d3d430-EndIfStmt" + }, + { + "id": "0x55cfa2d3e2c0-Statement", + "statement": "0x55cfa2d3e2d0-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x55cfa2d3e2d0-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/resources-test/fortran/parser/hello.expected.f90 b/FortranParser/resources-test/fortran/parser/hello.expected.f90 index 22033216..d1f980db 100644 --- a/FortranParser/resources-test/fortran/parser/hello.expected.f90 +++ b/FortranParser/resources-test/fortran/parser/hello.expected.f90 @@ -1,7 +1,7 @@ PROGRAM HELLO + ! This is a comment line; it is ignored by the compiler 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 diff --git a/FortranParser/resources-test/fortran/parser/hello.json b/FortranParser/resources-test/fortran/parser/hello.json index 1f320bf9..2a1cef6a 100644 --- a/FortranParser/resources-test/fortran/parser/hello.json +++ b/FortranParser/resources-test/fortran/parser/hello.json @@ -1,328 +1,335 @@ { "nodes": [ { - "id": "0x56012713ff00-Program", + "id": "0x561cfdde3f00-Program", "ProgramUnit": [ - "0x560127174e30-ProgramUnit" + "0x561cfde18cb0-ProgramUnit" ] }, { - "id": "0x560127174e30-ProgramUnit", + "id": "0x561cfde18cb0-ProgramUnit", "variantKey": "MainProgram", - "MainProgram": "0x56012716deb0-MainProgram" + "MainProgram": "0x561cfde11d00-MainProgram" }, { - "id": "0x56012716deb0-MainProgram", - "Statement": "0x56012716dff8-Statement", - "SpecificationPart": "0x56012716df50-SpecificationPart", - "ExecutionPart": "0x56012716df38-ExecutionPart", - "Statement": "0x56012716deb0-Statement" + "id": "0x561cfde11d00-MainProgram", + "Statement": "0x561cfde11e48-Statement", + "SpecificationPart": "0x561cfde11da0-SpecificationPart", + "ExecutionPart": "0x561cfde11d88-ExecutionPart", + "Statement": "0x561cfde11d00-Statement" }, { - "id": "0x56012716dff8-Statement", - "statement": "0x56012716e008-ProgramStmt", + "id": "0x561cfde11e48-Statement", + "statement": "0x561cfde11e58-ProgramStmt", "source": "program HELLO" }, { - "id": "0x56012716e008-ProgramStmt", - "Name": "0x56012716e008-Name" + "id": "0x561cfde11e58-ProgramStmt", + "Name": "0x561cfde11e58-Name" }, { - "id": "0x56012716e008-Name", + "id": "0x561cfde11e58-Name", "source": "HELLO" }, { - "id": "0x56012716df50-SpecificationPart", - "ImplicitPart": "0x56012716df68-ImplicitPart" + "id": "0x561cfde11da0-SpecificationPart", + "ImplicitPart": "0x561cfde11db8-ImplicitPart" }, { - "id": "0x56012716df68-ImplicitPart" + "id": "0x561cfde11db8-ImplicitPart" }, { - "id": "0x56012716df38-ExecutionPart", + "id": "0x561cfde11d88-ExecutionPart", "ExecutionPartConstruct": [ - "0x56012717fbc0-ExecutionPartConstruct", - "0x56012717f460-ExecutionPartConstruct", - "0x56012717f4c0-ExecutionPartConstruct", - "0x56012714d110-ExecutionPartConstruct" + "0x561cfde23c10-ExecutionPartConstruct", + "0x561cfde20560-ExecutionPartConstruct", + "0x561cfde23c70-ExecutionPartConstruct", + "0x561cfddf1170-ExecutionPartConstruct" ] }, { - "id": "0x56012716df38-ExecutionPartConstruct" + "id": "0x561cfde11d88-ExecutionPartConstruct" }, { - "id": "0x56012717fbc0-ExecutionPartConstruct", + "id": "0x561cfde23c10-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56012717fbc0-ExecutableConstruct" + "ExecutableConstruct": "0x561cfde23c10-ExecutableConstruct" }, { - "id": "0x56012717fbc0-ExecutableConstruct", + "id": "0x561cfde23c10-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56012717fbc0-Statement" + "Statement": "0x561cfde23c10-Statement" }, { - "id": "0x56012717fbc0-Statement", - "statement": "0x56012717fbd0-ActionStmt", + "id": "0x561cfde23c10-Statement", + "statement": "0x561cfde23c20-ActionStmt", "source": "print *, 'Hello, World!'" }, { - "id": "0x56012717fbd0-ActionStmt", + "id": "0x561cfde23c20-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56012717edc0-PrintStmt" + "PrintStmt": "0x561cfdd99260-PrintStmt" }, { - "id": "0x56012717edc0-PrintStmt", - "Format": "0x56012717edd8-Format", + "id": "0x561cfdd99260-PrintStmt", + "Format": "0x561cfdd99278-Format", "OutputItem": [ - "0x5601270f5270-OutputItem" + "0x561cfde24ea0-OutputItem" ] }, { - "id": "0x56012717edd8-Format", + "id": "0x561cfdd99278-Format", "variantKey": "Star", - "Star": "0x56012717edd8-Star" + "Star": "0x561cfdd99278-Star" }, { - "id": "0x56012717edd8-Star" + "id": "0x561cfdd99278-Star" }, { - "id": "0x5601270f5270-OutputItem", + "id": "0x561cfde24ea0-OutputItem", "variantKey": "Expr", - "Expr": "0x5601270f5270-Expr" + "Expr": "0x561cfde24ea0-Expr" }, { - "id": "0x5601270f5270-Expr", + "id": "0x561cfde24ea0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x5601270f5290-LiteralConstant" + "LiteralConstant": "0x561cfde24ec0-LiteralConstant" }, { - "id": "0x5601270f5290-LiteralConstant", + "id": "0x561cfde24ec0-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x5601270f5290-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde24ec0-CharLiteralConstant" }, { - "id": "0x5601270f5290-CharLiteralConstant", + "id": "0x561cfde24ec0-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x56012717f460-ExecutionPartConstruct", + "id": "0x561cfde20560-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56012717f460-ExecutableConstruct" + "ExecutableConstruct": "0x561cfde20560-ExecutableConstruct" }, { - "id": "0x56012717f460-ExecutableConstruct", + "id": "0x561cfde20560-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56012717f460-Statement" + "Statement": "0x561cfde20560-Statement" }, { - "id": "0x56012717f460-Statement", - "statement": "0x56012717f470-ActionStmt", + "id": "0x561cfde20560-Statement", + "statement": "0x561cfde20570-ActionStmt", "source": "print 100, 'Hello, World!', 2" }, { - "id": "0x56012717f470-ActionStmt", + "id": "0x561cfde20570-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56012717f350-PrintStmt" + "PrintStmt": "0x561cfde20450-PrintStmt" }, { - "id": "0x56012717f350-PrintStmt", - "Format": "0x56012717f368-Format", + "id": "0x561cfde20450-PrintStmt", + "Format": "0x561cfde20468-Format", "OutputItem": [ - "0x56012717c4d0-OutputItem", - "0x56012717c3e0-OutputItem" + "0x561cfde20370-OutputItem", + "0x561cfde22c70-OutputItem" ] }, { - "id": "0x56012717f368-Format", + "id": "0x561cfde20468-Format", "variantKey": "uint64_t", "uint64_t": "100" }, { - "id": "0x56012717c4d0-OutputItem", + "id": "0x561cfde20370-OutputItem", "variantKey": "Expr", - "Expr": "0x56012717c4d0-Expr" + "Expr": "0x561cfde20370-Expr" }, { - "id": "0x56012717c4d0-Expr", + "id": "0x561cfde20370-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012717c4f0-LiteralConstant" + "LiteralConstant": "0x561cfde20390-LiteralConstant" }, { - "id": "0x56012717c4f0-LiteralConstant", + "id": "0x561cfde20390-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56012717c4f0-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde20390-CharLiteralConstant" }, { - "id": "0x56012717c4f0-CharLiteralConstant", + "id": "0x561cfde20390-CharLiteralConstant", "string": "Hello, World!" }, { - "id": "0x56012717c3e0-OutputItem", + "id": "0x561cfde22c70-OutputItem", "variantKey": "Expr", - "Expr": "0x56012717c3e0-Expr" + "Expr": "0x561cfde22c70-Expr" }, { - "id": "0x56012717c3e0-Expr", + "id": "0x561cfde22c70-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012717c400-LiteralConstant" + "LiteralConstant": "0x561cfde22c90-LiteralConstant" }, { - "id": "0x56012717c400-LiteralConstant", + "id": "0x561cfde22c90-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56012717c400-IntLiteralConstant" + "IntLiteralConstant": "0x561cfde22c90-IntLiteralConstant" }, { - "id": "0x56012717c400-IntLiteralConstant", + "id": "0x561cfde22c90-IntLiteralConstant", "CharBlock": "2" }, { - "id": "0x56012717f4c0-ExecutionPartConstruct", + "id": "0x561cfde23c70-ExecutionPartConstruct", "variantKey": "Statement", - "Statement": "0x56012717f4c0-Statement" + "Statement": "0x561cfde23c70-Statement" }, { - "id": "0x56012717f4c0-Statement", - "statement": "0x560127182500-FormatStmt", + "id": "0x561cfde23c70-Statement", + "statement": "0x561cfde26380-FormatStmt", "label": "100", "source": "100 format(a, i3)" }, { - "id": "0x560127182500-FormatStmt", - "FormatSpecification": "0x560127182500-FormatSpecification" + "id": "0x561cfde26380-FormatStmt", + "FormatSpecification": "0x561cfde26380-FormatSpecification" }, { - "id": "0x560127182500-FormatSpecification", + "id": "0x561cfde26380-FormatSpecification", "items": [ - "0x560127180970-FormatItem", - "0x56012717fc50-FormatItem" + "0x561cfde24810-FormatItem", + "0x561cfde24e30-FormatItem" ], "unlimitedItems": [] }, { - "id": "0x560127180970-FormatItem", + "id": "0x561cfde24810-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x560127180980-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x561cfde24820-IntrinsicTypeDataEditDesc" }, { - "id": "0x560127180980-IntrinsicTypeDataEditDesc", - "kind": "0x560127180980-Kind" + "id": "0x561cfde24820-IntrinsicTypeDataEditDesc", + "kind": "0x561cfde24820-Kind" }, { - "id": "0x560127180980-Kind" + "id": "0x561cfde24820-Kind" }, { - "id": "0x56012717fc50-FormatItem", + "id": "0x561cfde24e30-FormatItem", "variantKey": "IntrinsicTypeDataEditDesc", - "IntrinsicTypeDataEditDesc": "0x56012717fc60-IntrinsicTypeDataEditDesc" + "IntrinsicTypeDataEditDesc": "0x561cfde24e40-IntrinsicTypeDataEditDesc" }, { - "id": "0x56012717fc60-IntrinsicTypeDataEditDesc", - "kind": "0x56012717fc60-Kind", + "id": "0x561cfde24e40-IntrinsicTypeDataEditDesc", + "kind": "0x561cfde24e40-Kind", "width": "3" }, { - "id": "0x56012717fc60-Kind" + "id": "0x561cfde24e40-Kind" }, { - "id": "0x56012714d110-ExecutionPartConstruct", + "id": "0x561cfddf1170-ExecutionPartConstruct", "variantKey": "ExecutableConstruct", - "ExecutableConstruct": "0x56012714d110-ExecutableConstruct" + "ExecutableConstruct": "0x561cfddf1170-ExecutableConstruct" }, { - "id": "0x56012714d110-ExecutableConstruct", + "id": "0x561cfddf1170-ExecutableConstruct", "variantKey": "Statement", - "Statement": "0x56012714d110-Statement" + "Statement": "0x561cfddf1170-Statement" }, { - "id": "0x56012714d110-Statement", - "statement": "0x56012714d120-ActionStmt", + "id": "0x561cfddf1170-Statement", + "statement": "0x561cfddf1180-ActionStmt", "label": "20", "source": "20 print '(A, F6.3)', 'Value = ', 3" }, { - "id": "0x56012714d120-ActionStmt", + "id": "0x561cfddf1180-ActionStmt", "variantKey": "PrintStmt", - "PrintStmt": "0x56012716ad80-PrintStmt" + "PrintStmt": "0x561cfde0ebd0-PrintStmt" }, { - "id": "0x56012716ad80-PrintStmt", - "Format": "0x56012716ad98-Format", + "id": "0x561cfde0ebd0-PrintStmt", + "Format": "0x561cfde0ebe8-Format", "OutputItem": [ - "0x56012716aca0-OutputItem", - "0x56012716abb0-OutputItem" + "0x561cfde0eaf0-OutputItem", + "0x561cfde0ea00-OutputItem" ] }, { - "id": "0x56012716ad98-Format", + "id": "0x561cfde0ebe8-Format", "variantKey": "Expr", - "Expr": "0x56012716ad98-Expr" + "Expr": "0x561cfde0ebe8-Expr" }, { - "id": "0x56012716ad98-Expr", + "id": "0x561cfde0ebe8-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012716adb8-LiteralConstant" + "LiteralConstant": "0x561cfde0ec08-LiteralConstant" }, { - "id": "0x56012716adb8-LiteralConstant", + "id": "0x561cfde0ec08-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56012716adb8-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde0ec08-CharLiteralConstant" }, { - "id": "0x56012716adb8-CharLiteralConstant", + "id": "0x561cfde0ec08-CharLiteralConstant", "string": "(A, F6.3)" }, { - "id": "0x56012716aca0-OutputItem", + "id": "0x561cfde0eaf0-OutputItem", "variantKey": "Expr", - "Expr": "0x56012716aca0-Expr" + "Expr": "0x561cfde0eaf0-Expr" }, { - "id": "0x56012716aca0-Expr", + "id": "0x561cfde0eaf0-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012716acc0-LiteralConstant" + "LiteralConstant": "0x561cfde0eb10-LiteralConstant" }, { - "id": "0x56012716acc0-LiteralConstant", + "id": "0x561cfde0eb10-LiteralConstant", "variantKey": "CharLiteralConstant", - "CharLiteralConstant": "0x56012716acc0-CharLiteralConstant" + "CharLiteralConstant": "0x561cfde0eb10-CharLiteralConstant" }, { - "id": "0x56012716acc0-CharLiteralConstant", + "id": "0x561cfde0eb10-CharLiteralConstant", "string": "Value = " }, { - "id": "0x56012716abb0-OutputItem", + "id": "0x561cfde0ea00-OutputItem", "variantKey": "Expr", - "Expr": "0x56012716abb0-Expr" + "Expr": "0x561cfde0ea00-Expr" }, { - "id": "0x56012716abb0-Expr", + "id": "0x561cfde0ea00-Expr", "variantKey": "LiteralConstant", - "LiteralConstant": "0x56012716abd0-LiteralConstant" + "LiteralConstant": "0x561cfde0ea20-LiteralConstant" }, { - "id": "0x56012716abd0-LiteralConstant", + "id": "0x561cfde0ea20-LiteralConstant", "variantKey": "IntLiteralConstant", - "IntLiteralConstant": "0x56012716abd0-IntLiteralConstant" + "IntLiteralConstant": "0x561cfde0ea20-IntLiteralConstant" }, { - "id": "0x56012716abd0-IntLiteralConstant", + "id": "0x561cfde0ea20-IntLiteralConstant", "CharBlock": "3" }, { - "id": "0x56012716deb0-Statement", - "statement": "0x56012716dec0-EndProgramStmt", + "id": "0x561cfde11d00-Statement", + "statement": "0x561cfde11d10-EndProgramStmt", "source": "end program HELLO" }, { - "id": "0x56012716dec0-EndProgramStmt", - "Name": "0x56012716dec0-Name" + "id": "0x561cfde11d10-EndProgramStmt", + "Name": "0x561cfde11d10-Name" }, { - "id": "0x56012716dec0-Name", + "id": "0x561cfde11d10-Name", "source": "HELLO" } ], + "comments": [ + { + "text": "! This is a comment line; it is ignored by the compiler", + "stmtId": "0x561cfde23c10-Statement", + "trailing": false + } + ], "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 ce525717..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,26 +18,32 @@ 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) +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) +! 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..e47f66e4 100644 --- a/FortranParser/resources-test/fortran/parser/polybench/3mm.json +++ b/FortranParser/resources-test/fortran/parser/polybench/3mm.json @@ -1,10325 +1,10909 @@ -{"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": "0x55eadb461f00-Program", + "ProgramUnit": [ + "0x55eadb4aef80-ProgramUnit" + ] + }, + { + "id": "0x55eadb4aef80-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55eadb4a00a0-MainProgram" + }, + { + "id": "0x55eadb4a00a0-MainProgram", + "Statement": "0x55eadb4a01e8-Statement", + "SpecificationPart": "0x55eadb4a0140-SpecificationPart", + "ExecutionPart": "0x55eadb4a0128-ExecutionPart", + "InternalSubprogramPart": "0x55eadb4a00e0-InternalSubprogramPart", + "Statement": "0x55eadb4a00a0-Statement" + }, + { + "id": "0x55eadb4a01e8-Statement", + "statement": "0x55eadb4a01f8-ProgramStmt", + "source": "program THREE_MM" + }, + { + "id": "0x55eadb4a01f8-ProgramStmt", + "Name": "0x55eadb4a01f8-Name" + }, + { + "id": "0x55eadb4a01f8-Name", + "source": "THREE_MM" + }, + { + "id": "0x55eadb4a0140-SpecificationPart", + "ImplicitPart": "0x55eadb4a0158-ImplicitPart", + "DeclarationConstruct": [ + "0x55eadb46f110-DeclarationConstruct", + "0x55eadb46eda0-DeclarationConstruct", + "0x55eadb4a47b0-DeclarationConstruct", + "0x55eadb4172e0-DeclarationConstruct", + "0x55eadb48c9c0-DeclarationConstruct", + "0x55eadb48cc30-DeclarationConstruct", + "0x55eadb48cea0-DeclarationConstruct", + "0x55eadb46f170-DeclarationConstruct" + ] + }, + { + "id": "0x55eadb4a0158-ImplicitPart" + }, + { + "id": "0x55eadb46f110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb46f110-SpecificationConstruct" + }, + { + "id": "0x55eadb46f110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb46f110-Statement" + }, + { + "id": "0x55eadb46f110-Statement", + "statement": "0x55eadb4a3f50-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: a" + }, + { + "id": "0x55eadb4a3f50-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a3f80-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4a6ff0-AttrSpec", + "0x55eadb496460-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4a4300-EntityDecl" + ] + }, + { + "id": "0x55eadb4a3f80-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4a3f80-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4a3f80-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4a3f80-DoublePrecision" + }, + { + "id": "0x55eadb4a3f80-DoublePrecision" + }, + { + "id": "0x55eadb4a6ff0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4a6ff0-ArraySpec" + }, + { + "id": "0x55eadb4a6ff0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55eadb4a6ff0-DeferredShapeSpecList" + }, + { + "id": "0x55eadb4a6ff0-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55eadb496460-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55eadb496460-Allocatable" + }, + { + "id": "0x55eadb496460-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55eadb4a4300-EntityDecl", + "Name": "0x55eadb4a43b8-Name" + }, + { + "id": "0x55eadb4a43b8-Name", + "source": "a" + }, + { + "id": "0x55eadb46eda0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb46eda0-SpecificationConstruct" + }, + { + "id": "0x55eadb46eda0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb46eda0-Statement" + }, + { + "id": "0x55eadb46eda0-Statement", + "statement": "0x55eadb4a3fd0-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: b" + }, + { + "id": "0x55eadb4a3fd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a4000-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb498210-AttrSpec", + "0x55eadb49fe90-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4a4550-EntityDecl" + ] + }, + { + "id": "0x55eadb4a4000-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4a4000-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4a4000-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4a4000-DoublePrecision" + }, + { + "id": "0x55eadb4a4000-DoublePrecision" + }, + { + "id": "0x55eadb498210-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb498210-ArraySpec" + }, + { + "id": "0x55eadb498210-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55eadb498210-DeferredShapeSpecList" + }, + { + "id": "0x55eadb498210-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55eadb49fe90-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55eadb49fe90-Allocatable" + }, + { + "id": "0x55eadb49fe90-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55eadb4a4550-EntityDecl", + "Name": "0x55eadb4a4608-Name" + }, + { + "id": "0x55eadb4a4608-Name", + "source": "b" + }, + { + "id": "0x55eadb4a47b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4a47b0-SpecificationConstruct" + }, + { + "id": "0x55eadb4a47b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a47b0-Statement" + }, + { + "id": "0x55eadb4a47b0-Statement", + "statement": "0x55eadb4a44c0-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: c" + }, + { + "id": "0x55eadb4a44c0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a44f0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb49a330-AttrSpec", + "0x55eadb4a65f0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4a46c0-EntityDecl" + ] + }, + { + "id": "0x55eadb4a44f0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4a44f0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4a44f0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4a44f0-DoublePrecision" + }, + { + "id": "0x55eadb4a44f0-DoublePrecision" + }, + { + "id": "0x55eadb49a330-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb49a330-ArraySpec" + }, + { + "id": "0x55eadb49a330-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55eadb49a330-DeferredShapeSpecList" + }, + { + "id": "0x55eadb49a330-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55eadb4a65f0-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55eadb4a65f0-Allocatable" + }, + { + "id": "0x55eadb4a65f0-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55eadb4a46c0-EntityDecl", + "Name": "0x55eadb4a4778-Name" + }, + { + "id": "0x55eadb4a4778-Name", + "source": "c" + }, + { + "id": "0x55eadb4172e0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4172e0-SpecificationConstruct" + }, + { + "id": "0x55eadb4172e0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4172e0-Statement" + }, + { + "id": "0x55eadb4172e0-Statement", + "statement": "0x55eadb4a4630-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: d" + }, + { + "id": "0x55eadb4a4630-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a4660-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4a3cd0-AttrSpec", + "0x55eadb4a0380-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb49fc70-EntityDecl" + ] + }, + { + "id": "0x55eadb4a4660-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4a4660-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4a4660-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4a4660-DoublePrecision" + }, + { + "id": "0x55eadb4a4660-DoublePrecision" + }, + { + "id": "0x55eadb4a3cd0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4a3cd0-ArraySpec" + }, + { + "id": "0x55eadb4a3cd0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55eadb4a3cd0-DeferredShapeSpecList" + }, + { + "id": "0x55eadb4a3cd0-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55eadb4a0380-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55eadb4a0380-Allocatable" + }, + { + "id": "0x55eadb4a0380-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55eadb49fc70-EntityDecl", + "Name": "0x55eadb49fd28-Name" + }, + { + "id": "0x55eadb49fd28-Name", + "source": "d" + }, + { + "id": "0x55eadb48c9c0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb48c9c0-SpecificationConstruct" + }, + { + "id": "0x55eadb48c9c0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48c9c0-Statement" + }, + { + "id": "0x55eadb48c9c0-Statement", + "statement": "0x55eadb48c770-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: e" + }, + { + "id": "0x55eadb48c770-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48c7a0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb48c880-AttrSpec", + "0x55eadb417340-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb48c8d0-EntityDecl" + ] + }, + { + "id": "0x55eadb48c7a0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb48c7a0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb48c7a0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb48c7a0-DoublePrecision" + }, + { + "id": "0x55eadb48c7a0-DoublePrecision" + }, + { + "id": "0x55eadb48c880-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb48c880-ArraySpec" + }, + { + "id": "0x55eadb48c880-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55eadb48c880-DeferredShapeSpecList" + }, + { + "id": "0x55eadb48c880-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55eadb417340-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55eadb417340-Allocatable" + }, + { + "id": "0x55eadb417340-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55eadb48c8d0-EntityDecl", + "Name": "0x55eadb48c988-Name" + }, + { + "id": "0x55eadb48c988-Name", + "source": "e" + }, + { + "id": "0x55eadb48cc30-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb48cc30-SpecificationConstruct" + }, + { + "id": "0x55eadb48cc30-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48cc30-Statement" + }, + { + "id": "0x55eadb48cc30-Statement", + "statement": "0x55eadb48c7f0-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: f" + }, + { + "id": "0x55eadb48c7f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48c820-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb48caf0-AttrSpec", + "0x55eadb48caa0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb48cb40-EntityDecl" + ] + }, + { + "id": "0x55eadb48c820-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb48c820-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb48c820-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb48c820-DoublePrecision" + }, + { + "id": "0x55eadb48c820-DoublePrecision" + }, + { + "id": "0x55eadb48caf0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb48caf0-ArraySpec" + }, + { + "id": "0x55eadb48caf0-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55eadb48caf0-DeferredShapeSpecList" + }, + { + "id": "0x55eadb48caf0-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55eadb48caa0-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55eadb48caa0-Allocatable" + }, + { + "id": "0x55eadb48caa0-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55eadb48cb40-EntityDecl", + "Name": "0x55eadb48cbf8-Name" + }, + { + "id": "0x55eadb48cbf8-Name", + "source": "f" + }, + { + "id": "0x55eadb48cea0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb48cea0-SpecificationConstruct" + }, + { + "id": "0x55eadb48cea0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48cea0-Statement" + }, + { + "id": "0x55eadb48cea0-Statement", + "statement": "0x55eadb48ca10-TypeDeclarationStmt", + "source": "double precision, dimension(:, :), allocatable :: g" + }, + { + "id": "0x55eadb48ca10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48ca40-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb48cd60-AttrSpec", + "0x55eadb48cd10-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb48cdb0-EntityDecl" + ] + }, + { + "id": "0x55eadb48ca40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb48ca40-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb48ca40-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb48ca40-DoublePrecision" + }, + { + "id": "0x55eadb48ca40-DoublePrecision" + }, + { + "id": "0x55eadb48cd60-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb48cd60-ArraySpec" + }, + { + "id": "0x55eadb48cd60-ArraySpec", + "variantKey": "DeferredShapeSpecList", + "DeferredShapeSpecList": "0x55eadb48cd60-DeferredShapeSpecList" + }, + { + "id": "0x55eadb48cd60-DeferredShapeSpecList", + "int": "2" + }, + { + "id": "0x55eadb48cd10-AttrSpec", + "variantKey": "Allocatable", + "Allocatable": "0x55eadb48cd10-Allocatable" + }, + { + "id": "0x55eadb48cd10-Allocatable", + "keyword": "Allocatable" + }, + { + "id": "0x55eadb48cdb0-EntityDecl", + "Name": "0x55eadb48ce68-Name" + }, + { + "id": "0x55eadb48ce68-Name", + "source": "g" + }, + { + "id": "0x55eadb46f170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb46f170-SpecificationConstruct" + }, + { + "id": "0x55eadb46f170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb46f170-Statement" + }, + { + "id": "0x55eadb46f170-Statement", + "statement": "0x55eadb48cc80-TypeDeclarationStmt", + "source": "integer :: i" + }, + { + "id": "0x55eadb48cc80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48ccb0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55eadb48cf80-EntityDecl" + ] + }, + { + "id": "0x55eadb48ccb0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb48ccb0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb48ccb0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55eadb48ccb0-IntegerTypeSpec" + }, + { + "id": "0x55eadb48ccb0-IntegerTypeSpec" + }, + { + "id": "0x55eadb48cf80-EntityDecl", + "Name": "0x55eadb48d038-Name" + }, + { + "id": "0x55eadb48d038-Name", + "source": "i" + }, + { + "id": "0x55eadb4a0128-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55eadb48e510-ExecutionPartConstruct", + "0x55eadb48e3d0-ExecutionPartConstruct", + "0x55eadb48edb0-ExecutionPartConstruct", + "0x55eadb48ed50-ExecutionPartConstruct", + "0x55eadb48f820-ExecutionPartConstruct", + "0x55eadb48f7c0-ExecutionPartConstruct", + "0x55eadb490290-ExecutionPartConstruct", + "0x55eadb490230-ExecutionPartConstruct", + "0x55eadb490d00-ExecutionPartConstruct", + "0x55eadb490ca0-ExecutionPartConstruct", + "0x55eadb491770-ExecutionPartConstruct", + "0x55eadb491710-ExecutionPartConstruct", + "0x55eadb4921e0-ExecutionPartConstruct", + "0x55eadb492180-ExecutionPartConstruct", + "0x55eadb494fa0-ExecutionPartConstruct", + "0x55eadb493e60-ExecutionPartConstruct", + "0x55eadb4a8720-ExecutionPartConstruct", + "0x55eadb4a72a0-ExecutionPartConstruct", + "0x55eadb4a7710-ExecutionPartConstruct", + "0x55eadb493820-ExecutionPartConstruct", + "0x55eadb4a74c0-ExecutionPartConstruct", + "0x55eadb492fc0-ExecutionPartConstruct", + "0x55eadb493c40-ExecutionPartConstruct", + "0x55eadb490be0-ExecutionPartConstruct", + "0x55eadb48d9e0-ExecutionPartConstruct", + "0x55eadb495df0-ExecutionPartConstruct", + "0x55eadb48e080-ExecutionPartConstruct" + ] + }, + { + "id": "0x55eadb4a0128-ExecutionPartConstruct" + }, + { + "id": "0x55eadb48e510-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48e510-ExecutableConstruct" + }, + { + "id": "0x55eadb48e510-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48e510-Statement" + }, + { + "id": "0x55eadb48e510-Statement", + "statement": "0x55eadb48e520-ActionStmt", + "source": "allocate(a(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x55eadb48e520-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x55eadb4a3d10-AllocateStmt" + }, + { + "id": "0x55eadb4a3d10-AllocateStmt", + "Allocation": [ + "0x55eadb3feb10-Allocation" + ], + "AllocOpt": [ + "0x55eadb48db10-AllocOpt" + ] + }, + { + "id": "0x55eadb3feb10-Allocation", + "AllocateObject": "0x55eadb3feb58-AllocateObject", + "AllocateShapeSpec": [ + "0x55eadb4980c0-AllocateShapeSpec", + "0x55eadb498090-AllocateShapeSpec" + ] + }, + { + "id": "0x55eadb3feb58-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb3feb68-Name" + }, + { + "id": "0x55eadb3feb68-Name", + "source": "a" + }, + { + "id": "0x55eadb4980c0-AllocateShapeSpec", + "upper_bound": "0x55eadb48d500-Expr" + }, + { + "id": "0x55eadb48d500-Expr", + "variantKey": "Add", + "Add": "0x55eadb48d520-Add" + }, + { + "id": "0x55eadb48d520-Add", + "left": "0x55eadb48d420-Expr", + "right": "0x55eadb48d340-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb48d420-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48d440-LiteralConstant" + }, + { + "id": "0x55eadb48d440-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48d440-IntLiteralConstant" + }, + { + "id": "0x55eadb48d440-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb48d340-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48d360-LiteralConstant" + }, + { + "id": "0x55eadb48d360-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48d360-IntLiteralConstant" + }, + { + "id": "0x55eadb48d360-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb498090-AllocateShapeSpec", + "upper_bound": "0x55eadb48d8f0-Expr" + }, + { + "id": "0x55eadb48d8f0-Expr", + "variantKey": "Add", + "Add": "0x55eadb48d910-Add" + }, + { + "id": "0x55eadb48d910-Add", + "left": "0x55eadb49fb40-Expr", + "right": "0x55eadb401790-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb49fb40-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb49fb60-LiteralConstant" + }, + { + "id": "0x55eadb49fb60-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb49fb60-IntLiteralConstant" + }, + { + "id": "0x55eadb49fb60-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb401790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4017b0-LiteralConstant" + }, + { + "id": "0x55eadb4017b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4017b0-IntLiteralConstant" + }, + { + "id": "0x55eadb4017b0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb48db10-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x55eadb48db10-StatOrErrmsg" + }, + { + "id": "0x55eadb48db10-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x55eadb48db10-StatVariable" + }, + { + "id": "0x55eadb48db10-StatVariable", + "Expr": "0x55eadb48db10-Variable" + }, + { + "id": "0x55eadb48db10-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4604d0-Designator" + }, + { + "id": "0x55eadb4604d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4604e0-DataRef" + }, + { + "id": "0x55eadb4604e0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4604e0-Name" + }, + { + "id": "0x55eadb4604e0-Name", + "source": "i" + }, + { + "id": "0x55eadb48e3d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48e3d0-ExecutableConstruct" + }, + { + "id": "0x55eadb48e3d0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48e3d0-Statement" + }, + { + "id": "0x55eadb48e3d0-Statement", + "statement": "0x55eadb48e3e0-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x55eadb48e3e0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb498e90-CallStmt" + }, + { + "id": "0x55eadb498e90-CallStmt", + "call": "0x55eadb498e90-Call" + }, + { + "id": "0x55eadb498e90-Call", + "ProcedureDesignator": "0x55eadb498ea8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb46fcf0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb498ea8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb498ea8-Name" + }, + { + "id": "0x55eadb498ea8-Name", + "source": "check_err" + }, + { + "id": "0x55eadb46fcf0-ActualArgSpec", + "ActualArg": "0x55eadb46fcf0-ActualArg" + }, + { + "id": "0x55eadb46fcf0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb48e560-Expr" + }, + { + "id": "0x55eadb48e560-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a3da0-Designator" + }, + { + "id": "0x55eadb4a3da0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a3db0-DataRef" + }, + { + "id": "0x55eadb4a3db0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a3db0-Name" + }, + { + "id": "0x55eadb4a3db0-Name", + "source": "i" + }, + { + "id": "0x55eadb48edb0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48edb0-ExecutableConstruct" + }, + { + "id": "0x55eadb48edb0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48edb0-Statement" + }, + { + "id": "0x55eadb48edb0-Statement", + "statement": "0x55eadb48edc0-ActionStmt", + "source": "allocate(b(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x55eadb48edc0-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x55eadb48dd00-AllocateStmt" + }, + { + "id": "0x55eadb48dd00-AllocateStmt", + "Allocation": [ + "0x55eadb48ebe0-Allocation" + ], + "AllocOpt": [ + "0x55eadb48d5f0-AllocOpt" + ] + }, + { + "id": "0x55eadb48ebe0-Allocation", + "AllocateObject": "0x55eadb48ec28-AllocateObject", + "AllocateShapeSpec": [ + "0x55eadb498140-AllocateShapeSpec", + "0x55eadb4980f0-AllocateShapeSpec" + ] + }, + { + "id": "0x55eadb48ec28-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb48ec38-Name" + }, + { + "id": "0x55eadb48ec38-Name", + "source": "b" + }, + { + "id": "0x55eadb498140-AllocateShapeSpec", + "upper_bound": "0x55eadb48e720-Expr" + }, + { + "id": "0x55eadb48e720-Expr", + "variantKey": "Add", + "Add": "0x55eadb48e740-Add" + }, + { + "id": "0x55eadb48e740-Add", + "left": "0x55eadb48e640-Expr", + "right": "0x55eadb48e800-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb48e640-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48e660-LiteralConstant" + }, + { + "id": "0x55eadb48e660-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48e660-IntLiteralConstant" + }, + { + "id": "0x55eadb48e660-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb48e800-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48e820-LiteralConstant" + }, + { + "id": "0x55eadb48e820-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48e820-IntLiteralConstant" + }, + { + "id": "0x55eadb48e820-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4980f0-AllocateShapeSpec", + "upper_bound": "0x55eadb48e9c0-Expr" + }, + { + "id": "0x55eadb48e9c0-Expr", + "variantKey": "Add", + "Add": "0x55eadb48e9e0-Add" + }, + { + "id": "0x55eadb48e9e0-Add", + "left": "0x55eadb48e8e0-Expr", + "right": "0x55eadb48eaa0-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb48e8e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48e900-LiteralConstant" + }, + { + "id": "0x55eadb48e900-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48e900-IntLiteralConstant" + }, + { + "id": "0x55eadb48e900-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb48eaa0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48eac0-LiteralConstant" + }, + { + "id": "0x55eadb48eac0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48eac0-IntLiteralConstant" + }, + { + "id": "0x55eadb48eac0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb48d5f0-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x55eadb48d5f0-StatOrErrmsg" + }, + { + "id": "0x55eadb48d5f0-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x55eadb48d5f0-StatVariable" + }, + { + "id": "0x55eadb48d5f0-StatVariable", + "Expr": "0x55eadb48d5f0-Variable" + }, + { + "id": "0x55eadb48d5f0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb48ece0-Designator" + }, + { + "id": "0x55eadb48ece0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48ecf0-DataRef" + }, + { + "id": "0x55eadb48ecf0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48ecf0-Name" + }, + { + "id": "0x55eadb48ecf0-Name", + "source": "i" + }, + { + "id": "0x55eadb48ed50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48ed50-ExecutableConstruct" + }, + { + "id": "0x55eadb48ed50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48ed50-Statement" + }, + { + "id": "0x55eadb48ed50-Statement", + "statement": "0x55eadb48ed60-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x55eadb48ed60-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb48eff0-CallStmt" + }, + { + "id": "0x55eadb48eff0-CallStmt", + "call": "0x55eadb48eff0-Call" + }, + { + "id": "0x55eadb48eff0-Call", + "ProcedureDesignator": "0x55eadb48f008-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb48eef0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb48f008-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb48f008-Name" + }, + { + "id": "0x55eadb48f008-Name", + "source": "check_err" + }, + { + "id": "0x55eadb48eef0-ActualArgSpec", + "ActualArg": "0x55eadb48eef0-ActualArg" + }, + { + "id": "0x55eadb48eef0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb48ee00-Expr" + }, + { + "id": "0x55eadb48ee00-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48ded0-Designator" + }, + { + "id": "0x55eadb48ded0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48dee0-DataRef" + }, + { + "id": "0x55eadb48dee0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48dee0-Name" + }, + { + "id": "0x55eadb48dee0-Name", + "source": "i" + }, + { + "id": "0x55eadb48f820-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48f820-ExecutableConstruct" + }, + { + "id": "0x55eadb48f820-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48f820-Statement" + }, + { + "id": "0x55eadb48f820-Statement", + "statement": "0x55eadb48f830-ActionStmt", + "source": "allocate(c(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x55eadb48f830-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x55eadb48db50-AllocateStmt" + }, + { + "id": "0x55eadb48db50-AllocateStmt", + "Allocation": [ + "0x55eadb48f650-Allocation" + ], + "AllocOpt": [ + "0x55eadb48eb90-AllocOpt" + ] + }, + { + "id": "0x55eadb48f650-Allocation", + "AllocateObject": "0x55eadb48f698-AllocateObject", + "AllocateShapeSpec": [ + "0x55eadb49c440-AllocateShapeSpec", + "0x55eadb49c410-AllocateShapeSpec" + ] + }, + { + "id": "0x55eadb48f698-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb48f6a8-Name" + }, + { + "id": "0x55eadb48f6a8-Name", + "source": "c" + }, + { + "id": "0x55eadb49c440-AllocateShapeSpec", + "upper_bound": "0x55eadb48f190-Expr" + }, + { + "id": "0x55eadb48f190-Expr", + "variantKey": "Add", + "Add": "0x55eadb48f1b0-Add" + }, + { + "id": "0x55eadb48f1b0-Add", + "left": "0x55eadb48f0b0-Expr", + "right": "0x55eadb48f270-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb48f0b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48f0d0-LiteralConstant" + }, + { + "id": "0x55eadb48f0d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48f0d0-IntLiteralConstant" + }, + { + "id": "0x55eadb48f0d0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb48f270-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48f290-LiteralConstant" + }, + { + "id": "0x55eadb48f290-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48f290-IntLiteralConstant" + }, + { + "id": "0x55eadb48f290-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb49c410-AllocateShapeSpec", + "upper_bound": "0x55eadb48f430-Expr" + }, + { + "id": "0x55eadb48f430-Expr", + "variantKey": "Add", + "Add": "0x55eadb48f450-Add" + }, + { + "id": "0x55eadb48f450-Add", + "left": "0x55eadb48f350-Expr", + "right": "0x55eadb48f510-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb48f350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48f370-LiteralConstant" + }, + { + "id": "0x55eadb48f370-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48f370-IntLiteralConstant" + }, + { + "id": "0x55eadb48f370-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb48f510-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48f530-LiteralConstant" + }, + { + "id": "0x55eadb48f530-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48f530-IntLiteralConstant" + }, + { + "id": "0x55eadb48f530-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb48eb90-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x55eadb48eb90-StatOrErrmsg" + }, + { + "id": "0x55eadb48eb90-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x55eadb48eb90-StatVariable" + }, + { + "id": "0x55eadb48eb90-StatVariable", + "Expr": "0x55eadb48eb90-Variable" + }, + { + "id": "0x55eadb48eb90-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb48f750-Designator" + }, + { + "id": "0x55eadb48f750-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48f760-DataRef" + }, + { + "id": "0x55eadb48f760-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48f760-Name" + }, + { + "id": "0x55eadb48f760-Name", + "source": "i" + }, + { + "id": "0x55eadb48f7c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48f7c0-ExecutableConstruct" + }, + { + "id": "0x55eadb48f7c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48f7c0-Statement" + }, + { + "id": "0x55eadb48f7c0-Statement", + "statement": "0x55eadb48f7d0-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x55eadb48f7d0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb48fa60-CallStmt" + }, + { + "id": "0x55eadb48fa60-CallStmt", + "call": "0x55eadb48fa60-Call" + }, + { + "id": "0x55eadb48fa60-Call", + "ProcedureDesignator": "0x55eadb48fa78-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb48f960-ActualArgSpec" + ] + }, + { + "id": "0x55eadb48fa78-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb48fa78-Name" + }, + { + "id": "0x55eadb48fa78-Name", + "source": "check_err" + }, + { + "id": "0x55eadb48f960-ActualArgSpec", + "ActualArg": "0x55eadb48f960-ActualArg" + }, + { + "id": "0x55eadb48f960-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb48f870-Expr" + }, + { + "id": "0x55eadb48f870-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48dd90-Designator" + }, + { + "id": "0x55eadb48dd90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48dda0-DataRef" + }, + { + "id": "0x55eadb48dda0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48dda0-Name" + }, + { + "id": "0x55eadb48dda0-Name", + "source": "i" + }, + { + "id": "0x55eadb490290-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb490290-ExecutableConstruct" + }, + { + "id": "0x55eadb490290-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb490290-Statement" + }, + { + "id": "0x55eadb490290-Statement", + "statement": "0x55eadb4902a0-ActionStmt", + "source": "allocate(d(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x55eadb4902a0-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x55eadb48d760-AllocateStmt" + }, + { + "id": "0x55eadb48d760-AllocateStmt", + "Allocation": [ + "0x55eadb4900c0-Allocation" + ], + "AllocOpt": [ + "0x55eadb48f600-AllocOpt" + ] + }, + { + "id": "0x55eadb4900c0-Allocation", + "AllocateObject": "0x55eadb490108-AllocateObject", + "AllocateShapeSpec": [ + "0x55eadb496b30-AllocateShapeSpec", + "0x55eadb49c490-AllocateShapeSpec" + ] + }, + { + "id": "0x55eadb490108-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb490118-Name" + }, + { + "id": "0x55eadb490118-Name", + "source": "d" + }, + { + "id": "0x55eadb496b30-AllocateShapeSpec", + "upper_bound": "0x55eadb48fc00-Expr" + }, + { + "id": "0x55eadb48fc00-Expr", + "variantKey": "Add", + "Add": "0x55eadb48fc20-Add" + }, + { + "id": "0x55eadb48fc20-Add", + "left": "0x55eadb48fb20-Expr", + "right": "0x55eadb48fce0-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb48fb20-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48fb40-LiteralConstant" + }, + { + "id": "0x55eadb48fb40-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48fb40-IntLiteralConstant" + }, + { + "id": "0x55eadb48fb40-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb48fce0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48fd00-LiteralConstant" + }, + { + "id": "0x55eadb48fd00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48fd00-IntLiteralConstant" + }, + { + "id": "0x55eadb48fd00-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb49c490-AllocateShapeSpec", + "upper_bound": "0x55eadb48fea0-Expr" + }, + { + "id": "0x55eadb48fea0-Expr", + "variantKey": "Add", + "Add": "0x55eadb48fec0-Add" + }, + { + "id": "0x55eadb48fec0-Add", + "left": "0x55eadb48fdc0-Expr", + "right": "0x55eadb48ff80-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb48fdc0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48fde0-LiteralConstant" + }, + { + "id": "0x55eadb48fde0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48fde0-IntLiteralConstant" + }, + { + "id": "0x55eadb48fde0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb48ff80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48ffa0-LiteralConstant" + }, + { + "id": "0x55eadb48ffa0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48ffa0-IntLiteralConstant" + }, + { + "id": "0x55eadb48ffa0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb48f600-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x55eadb48f600-StatOrErrmsg" + }, + { + "id": "0x55eadb48f600-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x55eadb48f600-StatVariable" + }, + { + "id": "0x55eadb48f600-StatVariable", + "Expr": "0x55eadb48f600-Variable" + }, + { + "id": "0x55eadb48f600-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4901c0-Designator" + }, + { + "id": "0x55eadb4901c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4901d0-DataRef" + }, + { + "id": "0x55eadb4901d0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4901d0-Name" + }, + { + "id": "0x55eadb4901d0-Name", + "source": "i" + }, + { + "id": "0x55eadb490230-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb490230-ExecutableConstruct" + }, + { + "id": "0x55eadb490230-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb490230-Statement" + }, + { + "id": "0x55eadb490230-Statement", + "statement": "0x55eadb490240-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x55eadb490240-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb4904d0-CallStmt" + }, + { + "id": "0x55eadb4904d0-CallStmt", + "call": "0x55eadb4904d0-Call" + }, + { + "id": "0x55eadb4904d0-Call", + "ProcedureDesignator": "0x55eadb4904e8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4903d0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4904e8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4904e8-Name" + }, + { + "id": "0x55eadb4904e8-Name", + "source": "check_err" + }, + { + "id": "0x55eadb4903d0-ActualArgSpec", + "ActualArg": "0x55eadb4903d0-ActualArg" + }, + { + "id": "0x55eadb4903d0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4902e0-Expr" + }, + { + "id": "0x55eadb4902e0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48e2f0-Designator" + }, + { + "id": "0x55eadb48e2f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48e300-DataRef" + }, + { + "id": "0x55eadb48e300-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48e300-Name" + }, + { + "id": "0x55eadb48e300-Name", + "source": "i" + }, + { + "id": "0x55eadb490d00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb490d00-ExecutableConstruct" + }, + { + "id": "0x55eadb490d00-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb490d00-Statement" + }, + { + "id": "0x55eadb490d00-Statement", + "statement": "0x55eadb490d10-ActionStmt", + "source": "allocate(e(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x55eadb490d10-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x55eadb49fa20-AllocateStmt" + }, + { + "id": "0x55eadb49fa20-AllocateStmt", + "Allocation": [ + "0x55eadb490b30-Allocation" + ], + "AllocOpt": [ + "0x55eadb490070-AllocOpt" + ] + }, + { + "id": "0x55eadb490b30-Allocation", + "AllocateObject": "0x55eadb490b78-AllocateObject", + "AllocateShapeSpec": [ + "0x55eadb4a6550-AllocateShapeSpec", + "0x55eadb4a64a0-AllocateShapeSpec" + ] + }, + { + "id": "0x55eadb490b78-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb490b88-Name" + }, + { + "id": "0x55eadb490b88-Name", + "source": "e" + }, + { + "id": "0x55eadb4a6550-AllocateShapeSpec", + "upper_bound": "0x55eadb490670-Expr" + }, + { + "id": "0x55eadb490670-Expr", + "variantKey": "Add", + "Add": "0x55eadb490690-Add" + }, + { + "id": "0x55eadb490690-Add", + "left": "0x55eadb490590-Expr", + "right": "0x55eadb490750-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb490590-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4905b0-LiteralConstant" + }, + { + "id": "0x55eadb4905b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4905b0-IntLiteralConstant" + }, + { + "id": "0x55eadb4905b0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb490750-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb490770-LiteralConstant" + }, + { + "id": "0x55eadb490770-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb490770-IntLiteralConstant" + }, + { + "id": "0x55eadb490770-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4a64a0-AllocateShapeSpec", + "upper_bound": "0x55eadb490910-Expr" + }, + { + "id": "0x55eadb490910-Expr", + "variantKey": "Add", + "Add": "0x55eadb490930-Add" + }, + { + "id": "0x55eadb490930-Add", + "left": "0x55eadb490830-Expr", + "right": "0x55eadb4909f0-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb490830-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb490850-LiteralConstant" + }, + { + "id": "0x55eadb490850-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb490850-IntLiteralConstant" + }, + { + "id": "0x55eadb490850-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4909f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb490a10-LiteralConstant" + }, + { + "id": "0x55eadb490a10-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb490a10-IntLiteralConstant" + }, + { + "id": "0x55eadb490a10-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb490070-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x55eadb490070-StatOrErrmsg" + }, + { + "id": "0x55eadb490070-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x55eadb490070-StatVariable" + }, + { + "id": "0x55eadb490070-StatVariable", + "Expr": "0x55eadb490070-Variable" + }, + { + "id": "0x55eadb490070-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb490c30-Designator" + }, + { + "id": "0x55eadb490c30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb490c40-DataRef" + }, + { + "id": "0x55eadb490c40-DataRef", + "variantKey": "Name", + "Name": "0x55eadb490c40-Name" + }, + { + "id": "0x55eadb490c40-Name", + "source": "i" + }, + { + "id": "0x55eadb490ca0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb490ca0-ExecutableConstruct" + }, + { + "id": "0x55eadb490ca0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb490ca0-Statement" + }, + { + "id": "0x55eadb490ca0-Statement", + "statement": "0x55eadb490cb0-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x55eadb490cb0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb490f40-CallStmt" + }, + { + "id": "0x55eadb490f40-CallStmt", + "call": "0x55eadb490f40-Call" + }, + { + "id": "0x55eadb490f40-Call", + "ProcedureDesignator": "0x55eadb490f58-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb490e40-ActualArgSpec" + ] + }, + { + "id": "0x55eadb490f58-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb490f58-Name" + }, + { + "id": "0x55eadb490f58-Name", + "source": "check_err" + }, + { + "id": "0x55eadb490e40-ActualArgSpec", + "ActualArg": "0x55eadb490e40-ActualArg" + }, + { + "id": "0x55eadb490e40-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb490d50-Expr" + }, + { + "id": "0x55eadb490d50-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48dfa0-Designator" + }, + { + "id": "0x55eadb48dfa0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48dfb0-DataRef" + }, + { + "id": "0x55eadb48dfb0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48dfb0-Name" + }, + { + "id": "0x55eadb48dfb0-Name", + "source": "i" + }, + { + "id": "0x55eadb491770-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb491770-ExecutableConstruct" + }, + { + "id": "0x55eadb491770-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb491770-Statement" + }, + { + "id": "0x55eadb491770-Statement", + "statement": "0x55eadb491780-ActionStmt", + "source": "allocate(f(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x55eadb491780-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x55eadb4171d0-AllocateStmt" + }, + { + "id": "0x55eadb4171d0-AllocateStmt", + "Allocation": [ + "0x55eadb4915a0-Allocation" + ], + "AllocOpt": [ + "0x55eadb490ae0-AllocOpt" + ] + }, + { + "id": "0x55eadb4915a0-Allocation", + "AllocateObject": "0x55eadb4915e8-AllocateObject", + "AllocateShapeSpec": [ + "0x55eadb496530-AllocateShapeSpec", + "0x55eadb4a65c0-AllocateShapeSpec" + ] + }, + { + "id": "0x55eadb4915e8-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb4915f8-Name" + }, + { + "id": "0x55eadb4915f8-Name", + "source": "f" + }, + { + "id": "0x55eadb496530-AllocateShapeSpec", + "upper_bound": "0x55eadb4910e0-Expr" + }, + { + "id": "0x55eadb4910e0-Expr", + "variantKey": "Add", + "Add": "0x55eadb491100-Add" + }, + { + "id": "0x55eadb491100-Add", + "left": "0x55eadb491000-Expr", + "right": "0x55eadb4911c0-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb491000-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb491020-LiteralConstant" + }, + { + "id": "0x55eadb491020-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb491020-IntLiteralConstant" + }, + { + "id": "0x55eadb491020-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4911c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4911e0-LiteralConstant" + }, + { + "id": "0x55eadb4911e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4911e0-IntLiteralConstant" + }, + { + "id": "0x55eadb4911e0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4a65c0-AllocateShapeSpec", + "upper_bound": "0x55eadb491380-Expr" + }, + { + "id": "0x55eadb491380-Expr", + "variantKey": "Add", + "Add": "0x55eadb4913a0-Add" + }, + { + "id": "0x55eadb4913a0-Add", + "left": "0x55eadb4912a0-Expr", + "right": "0x55eadb491460-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb4912a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4912c0-LiteralConstant" + }, + { + "id": "0x55eadb4912c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4912c0-IntLiteralConstant" + }, + { + "id": "0x55eadb4912c0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb491460-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb491480-LiteralConstant" + }, + { + "id": "0x55eadb491480-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb491480-IntLiteralConstant" + }, + { + "id": "0x55eadb491480-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb490ae0-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x55eadb490ae0-StatOrErrmsg" + }, + { + "id": "0x55eadb490ae0-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x55eadb490ae0-StatVariable" + }, + { + "id": "0x55eadb490ae0-StatVariable", + "Expr": "0x55eadb490ae0-Variable" + }, + { + "id": "0x55eadb490ae0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4916a0-Designator" + }, + { + "id": "0x55eadb4916a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4916b0-DataRef" + }, + { + "id": "0x55eadb4916b0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4916b0-Name" + }, + { + "id": "0x55eadb4916b0-Name", + "source": "i" + }, + { + "id": "0x55eadb491710-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb491710-ExecutableConstruct" + }, + { + "id": "0x55eadb491710-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb491710-Statement" + }, + { + "id": "0x55eadb491710-Statement", + "statement": "0x55eadb491720-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x55eadb491720-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb4919b0-CallStmt" + }, + { + "id": "0x55eadb4919b0-CallStmt", + "call": "0x55eadb4919b0-Call" + }, + { + "id": "0x55eadb4919b0-Call", + "ProcedureDesignator": "0x55eadb4919c8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4918b0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4919c8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4919c8-Name" + }, + { + "id": "0x55eadb4919c8-Name", + "source": "check_err" + }, + { + "id": "0x55eadb4918b0-ActualArgSpec", + "ActualArg": "0x55eadb4918b0-ActualArg" + }, + { + "id": "0x55eadb4918b0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4917c0-Expr" + }, + { + "id": "0x55eadb4917c0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48dc70-Designator" + }, + { + "id": "0x55eadb48dc70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48dc80-DataRef" + }, + { + "id": "0x55eadb48dc80-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48dc80-Name" + }, + { + "id": "0x55eadb48dc80-Name", + "source": "i" + }, + { + "id": "0x55eadb4921e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4921e0-ExecutableConstruct" + }, + { + "id": "0x55eadb4921e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4921e0-Statement" + }, + { + "id": "0x55eadb4921e0-Statement", + "statement": "0x55eadb4921f0-ActionStmt", + "source": "allocate(g(32 + 0, 32 + 0), stat = i)" + }, + { + "id": "0x55eadb4921f0-ActionStmt", + "variantKey": "AllocateStmt", + "AllocateStmt": "0x55eadb4170b0-AllocateStmt" + }, + { + "id": "0x55eadb4170b0-AllocateStmt", + "Allocation": [ + "0x55eadb492010-Allocation" + ], + "AllocOpt": [ + "0x55eadb491550-AllocOpt" + ] + }, + { + "id": "0x55eadb492010-Allocation", + "AllocateObject": "0x55eadb492058-AllocateObject", + "AllocateShapeSpec": [ + "0x55eadb496730-AllocateShapeSpec", + "0x55eadb4966c0-AllocateShapeSpec" + ] + }, + { + "id": "0x55eadb492058-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb492068-Name" + }, + { + "id": "0x55eadb492068-Name", + "source": "g" + }, + { + "id": "0x55eadb496730-AllocateShapeSpec", + "upper_bound": "0x55eadb491b50-Expr" + }, + { + "id": "0x55eadb491b50-Expr", + "variantKey": "Add", + "Add": "0x55eadb491b70-Add" + }, + { + "id": "0x55eadb491b70-Add", + "left": "0x55eadb491a70-Expr", + "right": "0x55eadb491c30-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb491a70-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb491a90-LiteralConstant" + }, + { + "id": "0x55eadb491a90-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb491a90-IntLiteralConstant" + }, + { + "id": "0x55eadb491a90-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb491c30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb491c50-LiteralConstant" + }, + { + "id": "0x55eadb491c50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb491c50-IntLiteralConstant" + }, + { + "id": "0x55eadb491c50-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4966c0-AllocateShapeSpec", + "upper_bound": "0x55eadb491df0-Expr" + }, + { + "id": "0x55eadb491df0-Expr", + "variantKey": "Add", + "Add": "0x55eadb491e10-Add" + }, + { + "id": "0x55eadb491e10-Add", + "left": "0x55eadb491d10-Expr", + "right": "0x55eadb491ed0-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb491d10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb491d30-LiteralConstant" + }, + { + "id": "0x55eadb491d30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb491d30-IntLiteralConstant" + }, + { + "id": "0x55eadb491d30-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb491ed0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb491ef0-LiteralConstant" + }, + { + "id": "0x55eadb491ef0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb491ef0-IntLiteralConstant" + }, + { + "id": "0x55eadb491ef0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb491550-AllocOpt", + "variantKey": "StatOrErrmsg", + "StatOrErrmsg": "0x55eadb491550-StatOrErrmsg" + }, + { + "id": "0x55eadb491550-StatOrErrmsg", + "variantKey": "StatVariable", + "StatVariable": "0x55eadb491550-StatVariable" + }, + { + "id": "0x55eadb491550-StatVariable", + "Expr": "0x55eadb491550-Variable" + }, + { + "id": "0x55eadb491550-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb492110-Designator" + }, + { + "id": "0x55eadb492110-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb492120-DataRef" + }, + { + "id": "0x55eadb492120-DataRef", + "variantKey": "Name", + "Name": "0x55eadb492120-Name" + }, + { + "id": "0x55eadb492120-Name", + "source": "i" + }, + { + "id": "0x55eadb492180-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb492180-ExecutableConstruct" + }, + { + "id": "0x55eadb492180-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb492180-Statement" + }, + { + "id": "0x55eadb492180-Statement", + "statement": "0x55eadb492190-ActionStmt", + "source": "call check_err(i)" + }, + { + "id": "0x55eadb492190-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb492420-CallStmt" + }, + { + "id": "0x55eadb492420-CallStmt", + "call": "0x55eadb492420-Call" + }, + { + "id": "0x55eadb492420-Call", + "ProcedureDesignator": "0x55eadb492438-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb492320-ActualArgSpec" + ] + }, + { + "id": "0x55eadb492438-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb492438-Name" + }, + { + "id": "0x55eadb492438-Name", + "source": "check_err" + }, + { + "id": "0x55eadb492320-ActualArgSpec", + "ActualArg": "0x55eadb492320-ActualArg" + }, + { + "id": "0x55eadb492320-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb492230-Expr" + }, + { + "id": "0x55eadb492230-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48ec80-Designator" + }, + { + "id": "0x55eadb48ec80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48ec90-DataRef" + }, + { + "id": "0x55eadb48ec90-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48ec90-Name" + }, + { + "id": "0x55eadb48ec90-Name", + "source": "i" + }, + { + "id": "0x55eadb494fa0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb494fa0-ExecutableConstruct" + }, + { + "id": "0x55eadb494fa0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb494fa0-Statement" + }, + { + "id": "0x55eadb494fa0-Statement", + "statement": "0x55eadb494fb0-ActionStmt", + "source": "call init_array(32, 32, 32, 32, 32, a, b, c, d)" + }, + { + "id": "0x55eadb494fb0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb494e60-CallStmt" + }, + { + "id": "0x55eadb494e60-CallStmt", + "call": "0x55eadb494e60-Call" + }, + { + "id": "0x55eadb494e60-Call", + "ProcedureDesignator": "0x55eadb494e78-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb494cf0-ActualArgSpec", + "0x55eadb494410-ActualArgSpec", + "0x55eadb494520-ActualArgSpec", + "0x55eadb494630-ActualArgSpec", + "0x55eadb494740-ActualArgSpec", + "0x55eadb494850-ActualArgSpec", + "0x55eadb494960-ActualArgSpec", + "0x55eadb494a70-ActualArgSpec", + "0x55eadb494be0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb494e78-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb494e78-Name" + }, + { + "id": "0x55eadb494e78-Name", + "source": "init_array" + }, + { + "id": "0x55eadb494cf0-ActualArgSpec", + "ActualArg": "0x55eadb494cf0-ActualArg" + }, + { + "id": "0x55eadb494cf0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4934c0-Expr" + }, + { + "id": "0x55eadb4934c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4934e0-LiteralConstant" + }, + { + "id": "0x55eadb4934e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4934e0-IntLiteralConstant" + }, + { + "id": "0x55eadb4934e0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb494410-ActualArgSpec", + "ActualArg": "0x55eadb494410-ActualArg" + }, + { + "id": "0x55eadb494410-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb492e80-Expr" + }, + { + "id": "0x55eadb492e80-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb492ea0-LiteralConstant" + }, + { + "id": "0x55eadb492ea0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb492ea0-IntLiteralConstant" + }, + { + "id": "0x55eadb492ea0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb494520-ActualArgSpec", + "ActualArg": "0x55eadb494520-ActualArg" + }, + { + "id": "0x55eadb494520-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb492900-Expr" + }, + { + "id": "0x55eadb492900-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb492920-LiteralConstant" + }, + { + "id": "0x55eadb492920-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb492920-IntLiteralConstant" + }, + { + "id": "0x55eadb492920-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb494630-ActualArgSpec", + "ActualArg": "0x55eadb494630-ActualArg" + }, + { + "id": "0x55eadb494630-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4927d0-Expr" + }, + { + "id": "0x55eadb4927d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4927f0-LiteralConstant" + }, + { + "id": "0x55eadb4927f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4927f0-IntLiteralConstant" + }, + { + "id": "0x55eadb4927f0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb494740-ActualArgSpec", + "ActualArg": "0x55eadb494740-ActualArg" + }, + { + "id": "0x55eadb494740-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4926a0-Expr" + }, + { + "id": "0x55eadb4926a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4926c0-LiteralConstant" + }, + { + "id": "0x55eadb4926c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4926c0-IntLiteralConstant" + }, + { + "id": "0x55eadb4926c0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb494850-ActualArgSpec", + "ActualArg": "0x55eadb494850-ActualArg" + }, + { + "id": "0x55eadb494850-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4925c0-Expr" + }, + { + "id": "0x55eadb4925c0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb493a30-Designator" + }, + { + "id": "0x55eadb493a30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb493a40-DataRef" + }, + { + "id": "0x55eadb493a40-DataRef", + "variantKey": "Name", + "Name": "0x55eadb493a40-Name" + }, + { + "id": "0x55eadb493a40-Name", + "source": "a" + }, + { + "id": "0x55eadb494960-ActualArgSpec", + "ActualArg": "0x55eadb494960-ActualArg" + }, + { + "id": "0x55eadb494960-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4924e0-Expr" + }, + { + "id": "0x55eadb4924e0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4933f0-Designator" + }, + { + "id": "0x55eadb4933f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb493400-DataRef" + }, + { + "id": "0x55eadb493400-DataRef", + "variantKey": "Name", + "Name": "0x55eadb493400-Name" + }, + { + "id": "0x55eadb493400-Name", + "source": "b" + }, + { + "id": "0x55eadb494a70-ActualArgSpec", + "ActualArg": "0x55eadb494a70-ActualArg" + }, + { + "id": "0x55eadb494a70-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb493b00-Expr" + }, + { + "id": "0x55eadb493b00-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb492db0-Designator" + }, + { + "id": "0x55eadb492db0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb492dc0-DataRef" + }, + { + "id": "0x55eadb492dc0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb492dc0-Name" + }, + { + "id": "0x55eadb492dc0-Name", + "source": "c" + }, + { + "id": "0x55eadb494be0-ActualArgSpec", + "ActualArg": "0x55eadb494be0-ActualArg" + }, + { + "id": "0x55eadb494be0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb494140-Expr" + }, + { + "id": "0x55eadb494140-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb494b70-Designator" + }, + { + "id": "0x55eadb494b70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb494b80-DataRef" + }, + { + "id": "0x55eadb494b80-DataRef", + "variantKey": "Name", + "Name": "0x55eadb494b80-Name" + }, + { + "id": "0x55eadb494b80-Name", + "source": "d" + }, + { + "id": "0x55eadb493e60-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb493e60-ExecutableConstruct" + }, + { + "id": "0x55eadb493e60-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb493e60-Statement" + }, + { + "id": "0x55eadb493e60-Statement", + "statement": "0x55eadb493e70-ActionStmt", + "source": "call polybench_timer_start()" + }, + { + "id": "0x55eadb493e70-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb494ff0-CallStmt" + }, + { + "id": "0x55eadb494ff0-CallStmt", + "call": "0x55eadb494ff0-Call" + }, + { + "id": "0x55eadb494ff0-Call", + "ProcedureDesignator": "0x55eadb495008-ProcedureDesignator" + }, + { + "id": "0x55eadb495008-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb495008-Name" + }, + { + "id": "0x55eadb495008-Name", + "source": "polybench_timer_start" + }, + { + "id": "0x55eadb4a8720-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a8720-ExecutableConstruct" + }, + { + "id": "0x55eadb4a8720-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a8720-Statement" + }, + { + "id": "0x55eadb4a8720-Statement", + "statement": "0x55eadb4a8730-ActionStmt", + "source": "call kernel_3mm(32, 32, 32, 32, 32, e, a, b, f, c, d, g)" + }, + { + "id": "0x55eadb4a8730-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb4a85e0-CallStmt" + }, + { + "id": "0x55eadb4a85e0-CallStmt", + "call": "0x55eadb4a85e0-Call" + }, + { + "id": "0x55eadb4a85e0-Call", + "ProcedureDesignator": "0x55eadb4a85f8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4a8470-ActualArgSpec", + "0x55eadb4a77e0-ActualArgSpec", + "0x55eadb4a78f0-ActualArgSpec", + "0x55eadb4a7a00-ActualArgSpec", + "0x55eadb4a7b10-ActualArgSpec", + "0x55eadb4a7c20-ActualArgSpec", + "0x55eadb4a7d30-ActualArgSpec", + "0x55eadb4a7e40-ActualArgSpec", + "0x55eadb4a7f50-ActualArgSpec", + "0x55eadb4a8060-ActualArgSpec", + "0x55eadb4a8170-ActualArgSpec", + "0x55eadb4a8360-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a85f8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a85f8-Name" + }, + { + "id": "0x55eadb4a85f8-Name", + "source": "kernel_3mm" + }, + { + "id": "0x55eadb4a8470-ActualArgSpec", + "ActualArg": "0x55eadb4a8470-ActualArg" + }, + { + "id": "0x55eadb4a8470-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4955f0-Expr" + }, + { + "id": "0x55eadb4955f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb495610-LiteralConstant" + }, + { + "id": "0x55eadb495610-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb495610-IntLiteralConstant" + }, + { + "id": "0x55eadb495610-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4a77e0-ActualArgSpec", + "ActualArg": "0x55eadb4a77e0-ActualArg" + }, + { + "id": "0x55eadb4a77e0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb495510-Expr" + }, + { + "id": "0x55eadb495510-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb495530-LiteralConstant" + }, + { + "id": "0x55eadb495530-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb495530-IntLiteralConstant" + }, + { + "id": "0x55eadb495530-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4a78f0-ActualArgSpec", + "ActualArg": "0x55eadb4a78f0-ActualArg" + }, + { + "id": "0x55eadb4a78f0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb495430-Expr" + }, + { + "id": "0x55eadb495430-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb495450-LiteralConstant" + }, + { + "id": "0x55eadb495450-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb495450-IntLiteralConstant" + }, + { + "id": "0x55eadb495450-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4a7a00-ActualArgSpec", + "ActualArg": "0x55eadb4a7a00-ActualArg" + }, + { + "id": "0x55eadb4a7a00-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb495350-Expr" + }, + { + "id": "0x55eadb495350-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb495370-LiteralConstant" + }, + { + "id": "0x55eadb495370-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb495370-IntLiteralConstant" + }, + { + "id": "0x55eadb495370-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4a7b10-ActualArgSpec", + "ActualArg": "0x55eadb4a7b10-ActualArg" + }, + { + "id": "0x55eadb4a7b10-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb495270-Expr" + }, + { + "id": "0x55eadb495270-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb495290-LiteralConstant" + }, + { + "id": "0x55eadb495290-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb495290-IntLiteralConstant" + }, + { + "id": "0x55eadb495290-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4a7c20-ActualArgSpec", + "ActualArg": "0x55eadb4a7c20-ActualArg" + }, + { + "id": "0x55eadb4a7c20-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb495190-Expr" + }, + { + "id": "0x55eadb495190-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb496220-Designator" + }, + { + "id": "0x55eadb496220-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb496230-DataRef" + }, + { + "id": "0x55eadb496230-DataRef", + "variantKey": "Name", + "Name": "0x55eadb496230-Name" + }, + { + "id": "0x55eadb496230-Name", + "source": "e" + }, + { + "id": "0x55eadb4a7d30-ActualArgSpec", + "ActualArg": "0x55eadb4a7d30-ActualArg" + }, + { + "id": "0x55eadb4a7d30-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4950b0-Expr" + }, + { + "id": "0x55eadb4950b0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb495c30-Designator" + }, + { + "id": "0x55eadb495c30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb495c40-DataRef" + }, + { + "id": "0x55eadb495c40-DataRef", + "variantKey": "Name", + "Name": "0x55eadb495c40-Name" + }, + { + "id": "0x55eadb495c40-Name", + "source": "a" + }, + { + "id": "0x55eadb4a7e40-ActualArgSpec", + "ActualArg": "0x55eadb4a7e40-ActualArg" + }, + { + "id": "0x55eadb4a7e40-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4958d0-Expr" + }, + { + "id": "0x55eadb4958d0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb495870-Designator" + }, + { + "id": "0x55eadb495870-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb495880-DataRef" + }, + { + "id": "0x55eadb495880-DataRef", + "variantKey": "Name", + "Name": "0x55eadb495880-Name" + }, + { + "id": "0x55eadb495880-Name", + "source": "b" + }, + { + "id": "0x55eadb4a7f50-ActualArgSpec", + "ActualArg": "0x55eadb4a7f50-ActualArg" + }, + { + "id": "0x55eadb4a7f50-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a7580-Expr" + }, + { + "id": "0x55eadb4a7580-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48f6f0-Designator" + }, + { + "id": "0x55eadb48f6f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48f700-DataRef" + }, + { + "id": "0x55eadb48f700-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48f700-Name" + }, + { + "id": "0x55eadb48f700-Name", + "source": "f" + }, + { + "id": "0x55eadb4a8060-ActualArgSpec", + "ActualArg": "0x55eadb4a8060-ActualArg" + }, + { + "id": "0x55eadb4a8060-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4962f0-Expr" + }, + { + "id": "0x55eadb4962f0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb494070-Designator" + }, + { + "id": "0x55eadb494070-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb494080-DataRef" + }, + { + "id": "0x55eadb494080-DataRef", + "variantKey": "Name", + "Name": "0x55eadb494080-Name" + }, + { + "id": "0x55eadb494080-Name", + "source": "c" + }, + { + "id": "0x55eadb4a8170-ActualArgSpec", + "ActualArg": "0x55eadb4a8170-ActualArg" + }, + { + "id": "0x55eadb4a8170-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb495d00-Expr" + }, + { + "id": "0x55eadb495d00-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb490160-Designator" + }, + { + "id": "0x55eadb490160-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb490170-DataRef" + }, + { + "id": "0x55eadb490170-DataRef", + "variantKey": "Name", + "Name": "0x55eadb490170-Name" + }, + { + "id": "0x55eadb490170-Name", + "source": "d" + }, + { + "id": "0x55eadb4a8360-ActualArgSpec", + "ActualArg": "0x55eadb4a8360-ActualArg" + }, + { + "id": "0x55eadb4a8360-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a8270-Expr" + }, + { + "id": "0x55eadb4a8270-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb495740-Designator" + }, + { + "id": "0x55eadb495740-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb495750-DataRef" + }, + { + "id": "0x55eadb495750-DataRef", + "variantKey": "Name", + "Name": "0x55eadb495750-Name" + }, + { + "id": "0x55eadb495750-Name", + "source": "g" + }, + { + "id": "0x55eadb4a72a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a72a0-ExecutableConstruct" + }, + { + "id": "0x55eadb4a72a0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a72a0-Statement" + }, + { + "id": "0x55eadb4a72a0-Statement", + "statement": "0x55eadb4a72b0-ActionStmt", + "source": "call polybench_timer_stop()" + }, + { + "id": "0x55eadb4a72b0-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb4a8770-CallStmt" + }, + { + "id": "0x55eadb4a8770-CallStmt", + "call": "0x55eadb4a8770-Call" + }, + { + "id": "0x55eadb4a8770-Call", + "ProcedureDesignator": "0x55eadb4a8788-ProcedureDesignator" + }, + { + "id": "0x55eadb4a8788-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a8788-Name" + }, + { + "id": "0x55eadb4a8788-Name", + "source": "polybench_timer_stop" + }, + { + "id": "0x55eadb4a7710-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a7710-ExecutableConstruct" + }, + { + "id": "0x55eadb4a7710-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a7710-Statement" + }, + { + "id": "0x55eadb4a7710-Statement", + "statement": "0x55eadb4a7720-ActionStmt", + "source": "call polybench_timer_print()" + }, + { + "id": "0x55eadb4a7720-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb4a8830-CallStmt" + }, + { + "id": "0x55eadb4a8830-CallStmt", + "call": "0x55eadb4a8830-Call" + }, + { + "id": "0x55eadb4a8830-Call", + "ProcedureDesignator": "0x55eadb4a8848-ProcedureDesignator" + }, + { + "id": "0x55eadb4a8848-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a8848-Name" + }, + { + "id": "0x55eadb4a8848-Name", + "source": "polybench_timer_print" + }, + { + "id": "0x55eadb493820-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb493820-ExecutableConstruct" + }, + { + "id": "0x55eadb493820-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb493820-Statement" + }, + { + "id": "0x55eadb493820-Statement", + "statement": "0x55eadb493830-ActionStmt", + "source": "call print_array(32, 32, g)" + }, + { + "id": "0x55eadb493830-ActionStmt", + "variantKey": "CallStmt", + "CallStmt": "0x55eadb4a8ec0-CallStmt" + }, + { + "id": "0x55eadb4a8ec0-CallStmt", + "call": "0x55eadb4a8ec0-Call" + }, + { + "id": "0x55eadb4a8ec0-Call", + "ProcedureDesignator": "0x55eadb4a8ed8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4a8dc0-ActualArgSpec", + "0x55eadb4a8ba0-ActualArgSpec", + "0x55eadb4a8cb0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a8ed8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a8ed8-Name" + }, + { + "id": "0x55eadb4a8ed8-Name", + "source": "print_array" + }, + { + "id": "0x55eadb4a8dc0-ActualArgSpec", + "ActualArg": "0x55eadb4a8dc0-ActualArg" + }, + { + "id": "0x55eadb4a8dc0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a8ab0-Expr" + }, + { + "id": "0x55eadb4a8ab0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a8ad0-LiteralConstant" + }, + { + "id": "0x55eadb4a8ad0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a8ad0-IntLiteralConstant" + }, + { + "id": "0x55eadb4a8ad0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4a8ba0-ActualArgSpec", + "ActualArg": "0x55eadb4a8ba0-ActualArg" + }, + { + "id": "0x55eadb4a8ba0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a89d0-Expr" + }, + { + "id": "0x55eadb4a89d0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a89f0-LiteralConstant" + }, + { + "id": "0x55eadb4a89f0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a89f0-IntLiteralConstant" + }, + { + "id": "0x55eadb4a89f0-IntLiteralConstant", + "CharBlock": "32" + }, + { + "id": "0x55eadb4a8cb0-ActualArgSpec", + "ActualArg": "0x55eadb4a8cb0-ActualArg" + }, + { + "id": "0x55eadb4a8cb0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a88f0-Expr" + }, + { + "id": "0x55eadb4a88f0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4935f0-Designator" + }, + { + "id": "0x55eadb4935f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb493600-DataRef" + }, + { + "id": "0x55eadb493600-DataRef", + "variantKey": "Name", + "Name": "0x55eadb493600-Name" + }, + { + "id": "0x55eadb493600-Name", + "source": "g" + }, + { + "id": "0x55eadb4a74c0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a74c0-ExecutableConstruct" + }, + { + "id": "0x55eadb4a74c0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a74c0-Statement" + }, + { + "id": "0x55eadb4a74c0-Statement", + "statement": "0x55eadb4a74d0-ActionStmt", + "source": "deallocate(a)" + }, + { + "id": "0x55eadb4a74d0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x55eadb496d90-DeallocateStmt" + }, + { + "id": "0x55eadb496d90-DeallocateStmt", + "AllocateObject": [ + "0x55eadb494e00-AllocateObject" + ] + }, + { + "id": "0x55eadb494e00-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb494e10-Name" + }, + { + "id": "0x55eadb494e10-Name", + "source": "a" + }, + { + "id": "0x55eadb492fc0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb492fc0-ExecutableConstruct" + }, + { + "id": "0x55eadb492fc0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb492fc0-Statement" + }, + { + "id": "0x55eadb492fc0-Statement", + "statement": "0x55eadb492fd0-ActionStmt", + "source": "deallocate(b)" + }, + { + "id": "0x55eadb492fd0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x55eadb497470-DeallocateStmt" + }, + { + "id": "0x55eadb497470-DeallocateStmt", + "AllocateObject": [ + "0x55eadb48d270-AllocateObject" + ] + }, + { + "id": "0x55eadb48d270-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb48d280-Name" + }, + { + "id": "0x55eadb48d280-Name", + "source": "b" + }, + { + "id": "0x55eadb493c40-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb493c40-ExecutableConstruct" + }, + { + "id": "0x55eadb493c40-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb493c40-Statement" + }, + { + "id": "0x55eadb493c40-Statement", + "statement": "0x55eadb493c50-ActionStmt", + "source": "deallocate(c)" + }, + { + "id": "0x55eadb493c50-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x55eadb497530-DeallocateStmt" + }, + { + "id": "0x55eadb497530-DeallocateStmt", + "AllocateObject": [ + "0x55eadb494f30-AllocateObject" + ] + }, + { + "id": "0x55eadb494f30-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb494f40-Name" + }, + { + "id": "0x55eadb494f40-Name", + "source": "c" + }, + { + "id": "0x55eadb490be0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb490be0-ExecutableConstruct" + }, + { + "id": "0x55eadb490be0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb490be0-Statement" + }, + { + "id": "0x55eadb490be0-Statement", + "statement": "0x55eadb490bf0-ActionStmt", + "source": "deallocate(d)" + }, + { + "id": "0x55eadb490bf0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x55eadb497930-DeallocateStmt" + }, + { + "id": "0x55eadb497930-DeallocateStmt", + "AllocateObject": [ + "0x55eadb4a3ef0-AllocateObject" + ] + }, + { + "id": "0x55eadb4a3ef0-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb4a3f00-Name" + }, + { + "id": "0x55eadb4a3f00-Name", + "source": "d" + }, + { + "id": "0x55eadb48d9e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48d9e0-ExecutableConstruct" + }, + { + "id": "0x55eadb48d9e0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48d9e0-Statement" + }, + { + "id": "0x55eadb48d9e0-Statement", + "statement": "0x55eadb48d9f0-ActionStmt", + "source": "deallocate(e)" + }, + { + "id": "0x55eadb48d9f0-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x55eadb498160-DeallocateStmt" + }, + { + "id": "0x55eadb498160-DeallocateStmt", + "AllocateObject": [ + "0x55eadb493df0-AllocateObject" + ] + }, + { + "id": "0x55eadb493df0-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb493e00-Name" + }, + { + "id": "0x55eadb493e00-Name", + "source": "e" + }, + { + "id": "0x55eadb495df0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb495df0-ExecutableConstruct" + }, + { + "id": "0x55eadb495df0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb495df0-Statement" + }, + { + "id": "0x55eadb495df0-Statement", + "statement": "0x55eadb495e00-ActionStmt", + "source": "deallocate(f)" + }, + { + "id": "0x55eadb495e00-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x55eadb4981c0-DeallocateStmt" + }, + { + "id": "0x55eadb4981c0-DeallocateStmt", + "AllocateObject": [ + "0x55eadb493ec0-AllocateObject" + ] + }, + { + "id": "0x55eadb493ec0-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb493ed0-Name" + }, + { + "id": "0x55eadb493ed0-Name", + "source": "f" + }, + { + "id": "0x55eadb48e080-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb48e080-ExecutableConstruct" + }, + { + "id": "0x55eadb48e080-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb48e080-Statement" + }, + { + "id": "0x55eadb48e080-Statement", + "statement": "0x55eadb48e090-ActionStmt", + "source": "deallocate(g)" + }, + { + "id": "0x55eadb48e090-ActionStmt", + "variantKey": "DeallocateStmt", + "DeallocateStmt": "0x55eadb49c3c0-DeallocateStmt" + }, + { + "id": "0x55eadb49c3c0-DeallocateStmt", + "AllocateObject": [ + "0x55eadb4a7230-AllocateObject" + ] + }, + { + "id": "0x55eadb4a7230-AllocateObject", + "variantKey": "Name", + "Name": "0x55eadb4a7240-Name" + }, + { + "id": "0x55eadb4a7240-Name", + "source": "g" + }, + { + "id": "0x55eadb4a00e0-InternalSubprogramPart", + "Statement": "0x55eadb4a00f8-Statement", + "InternalSubprogram": [ + "0x55eadb4a6200-InternalSubprogram", + "0x55eadb49a300-InternalSubprogram", + "0x55eadb4af2b0-InternalSubprogram" + ] + }, + { + "id": "0x55eadb4a00f8-Statement", + "statement": "0x55eadb4a0108-ContainsStmt", + "source": "contains" + }, + { + "id": "0x55eadb4a0108-ContainsStmt" + }, + { + "id": "0x55eadb4a6200-InternalSubprogram", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55eadb4aeb50-SubroutineSubprogram" + }, + { + "id": "0x55eadb4aeb50-SubroutineSubprogram", + "Statement": "0x55eadb4aec98-Statement", + "SpecificationPart": "0x55eadb4aebf0-SpecificationPart", + "ExecutionPart": "0x55eadb4aebd8-ExecutionPart", + "Statement": "0x55eadb4aeb50-Statement" + }, + { + "id": "0x55eadb4aec98-Statement", + "statement": "0x55eadb4aeca8-SubroutineStmt", + "source": "subroutine init_array(ni, nj, nk, nl, nm, a, b, c, d)" + }, + { + "id": "0x55eadb4aeca8-SubroutineStmt", + "Name": "0x55eadb4aece0-Name", + "DummyArg": [ + "0x55eadb496ab0-DummyArg", + "0x55eadb496d20-DummyArg", + "0x55eadb496af0-DummyArg", + "0x55eadb496ba0-DummyArg", + "0x55eadb496b60-DummyArg", + "0x55eadb496be0-DummyArg", + "0x55eadb496c40-DummyArg", + "0x55eadb496c80-DummyArg", + "0x55eadb496ce0-DummyArg" + ] + }, + { + "id": "0x55eadb4aece0-Name", + "source": "init_array" + }, + { + "id": "0x55eadb496ab0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496ab0-Name" + }, + { + "id": "0x55eadb496ab0-Name", + "source": "ni" + }, + { + "id": "0x55eadb496d20-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496d20-Name" + }, + { + "id": "0x55eadb496d20-Name", + "source": "nj" + }, + { + "id": "0x55eadb496af0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496af0-Name" + }, + { + "id": "0x55eadb496af0-Name", + "source": "nk" + }, + { + "id": "0x55eadb496ba0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496ba0-Name" + }, + { + "id": "0x55eadb496ba0-Name", + "source": "nl" + }, + { + "id": "0x55eadb496b60-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496b60-Name" + }, + { + "id": "0x55eadb496b60-Name", + "source": "nm" + }, + { + "id": "0x55eadb496be0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496be0-Name" + }, + { + "id": "0x55eadb496be0-Name", + "source": "a" + }, + { + "id": "0x55eadb496c40-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496c40-Name" + }, + { + "id": "0x55eadb496c40-Name", + "source": "b" + }, + { + "id": "0x55eadb496c80-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496c80-Name" + }, + { + "id": "0x55eadb496c80-Name", + "source": "c" + }, + { + "id": "0x55eadb496ce0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496ce0-Name" + }, + { + "id": "0x55eadb496ce0-Name", + "source": "d" + }, + { + "id": "0x55eadb4aebf0-SpecificationPart", + "ImplicitPart": "0x55eadb4aec08-ImplicitPart", + "DeclarationConstruct": [ + "0x55eadb491650-DeclarationConstruct", + "0x55eadb4959c0-DeclarationConstruct", + "0x55eadb4ab230-DeclarationConstruct", + "0x55eadb4a94f0-DeclarationConstruct", + "0x55eadb4942d0-DeclarationConstruct", + "0x55eadb495820-DeclarationConstruct" + ] + }, + { + "id": "0x55eadb4aec08-ImplicitPart" + }, + { + "id": "0x55eadb491650-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb491650-SpecificationConstruct" + }, + { + "id": "0x55eadb491650-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb491650-Statement" + }, + { + "id": "0x55eadb491650-Statement", + "statement": "0x55eadb4a97a0-TypeDeclarationStmt", + "source": "double precision, dimension(nk, ni) :: a" + }, + { + "id": "0x55eadb4a97a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4a97d0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb492790-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4a9940-EntityDecl" + ] + }, + { + "id": "0x55eadb4a97d0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4a97d0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4a97d0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4a97d0-DoublePrecision" + }, + { + "id": "0x55eadb4a97d0-DoublePrecision" + }, + { + "id": "0x55eadb492790-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb492790-ArraySpec" + }, + { + "id": "0x55eadb492790-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4a62b0-ExplicitShapeSpec", + "0x55eadb4969a0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4a62b0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a62b0-SpecificationExpr" + }, + { + "id": "0x55eadb4a62b0-SpecificationExpr", + "Expr": "0x55eadb4a8f80-Expr" + }, + { + "id": "0x55eadb4a8f80-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb495a10-Designator" + }, + { + "id": "0x55eadb495a10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb495a20-DataRef" + }, + { + "id": "0x55eadb495a20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb495a20-Name" + }, + { + "id": "0x55eadb495a20-Name", + "source": "nk" + }, + { + "id": "0x55eadb4969a0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4969a0-SpecificationExpr" + }, + { + "id": "0x55eadb4969a0-SpecificationExpr", + "Expr": "0x55eadb4ab480-Expr" + }, + { + "id": "0x55eadb4ab480-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4957b0-Designator" + }, + { + "id": "0x55eadb4957b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4957c0-DataRef" + }, + { + "id": "0x55eadb4957c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4957c0-Name" + }, + { + "id": "0x55eadb4957c0-Name", + "source": "ni" + }, + { + "id": "0x55eadb4a9940-EntityDecl", + "Name": "0x55eadb4a99f8-Name" + }, + { + "id": "0x55eadb4a99f8-Name", + "source": "a" + }, + { + "id": "0x55eadb4959c0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4959c0-SpecificationConstruct" + }, + { + "id": "0x55eadb4959c0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4959c0-Statement" + }, + { + "id": "0x55eadb4959c0-Statement", + "statement": "0x55eadb49ff10-TypeDeclarationStmt", + "source": "double precision, dimension(nj, nk) :: b" + }, + { + "id": "0x55eadb49ff10-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb49ff40-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb491fc0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4abed0-EntityDecl" + ] + }, + { + "id": "0x55eadb49ff40-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb49ff40-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb49ff40-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb49ff40-DoublePrecision" + }, + { + "id": "0x55eadb49ff40-DoublePrecision" + }, + { + "id": "0x55eadb491fc0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb491fc0-ArraySpec" + }, + { + "id": "0x55eadb491fc0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4a59b0-ExplicitShapeSpec", + "0x55eadb4a5760-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4a59b0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a59b0-SpecificationExpr" + }, + { + "id": "0x55eadb4a59b0-SpecificationExpr", + "Expr": "0x55eadb4abd00-Expr" + }, + { + "id": "0x55eadb4abd00-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48e140-Designator" + }, + { + "id": "0x55eadb48e140-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48e150-DataRef" + }, + { + "id": "0x55eadb48e150-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48e150-Name" + }, + { + "id": "0x55eadb48e150-Name", + "source": "nj" + }, + { + "id": "0x55eadb4a5760-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5760-SpecificationExpr" + }, + { + "id": "0x55eadb4a5760-SpecificationExpr", + "Expr": "0x55eadb4abde0-Expr" + }, + { + "id": "0x55eadb4abde0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48dbe0-Designator" + }, + { + "id": "0x55eadb48dbe0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48dbf0-DataRef" + }, + { + "id": "0x55eadb48dbf0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48dbf0-Name" + }, + { + "id": "0x55eadb48dbf0-Name", + "source": "nk" + }, + { + "id": "0x55eadb4abed0-EntityDecl", + "Name": "0x55eadb4abf88-Name" + }, + { + "id": "0x55eadb4abf88-Name", + "source": "b" + }, + { + "id": "0x55eadb4ab230-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4ab230-SpecificationConstruct" + }, + { + "id": "0x55eadb4ab230-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4ab230-Statement" + }, + { + "id": "0x55eadb4ab230-Statement", + "statement": "0x55eadb48d1e0-TypeDeclarationStmt", + "source": "double precision, dimension(nm, nj) :: c" + }, + { + "id": "0x55eadb48d1e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48d210-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4928c0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4ab140-EntityDecl" + ] + }, + { + "id": "0x55eadb48d210-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb48d210-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb48d210-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb48d210-DoublePrecision" + }, + { + "id": "0x55eadb48d210-DoublePrecision" + }, + { + "id": "0x55eadb4928c0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4928c0-ArraySpec" + }, + { + "id": "0x55eadb4928c0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4a5b10-ExplicitShapeSpec", + "0x55eadb4a5aa0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4a5b10-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5b10-SpecificationExpr" + }, + { + "id": "0x55eadb4a5b10-SpecificationExpr", + "Expr": "0x55eadb4aaf10-Expr" + }, + { + "id": "0x55eadb4aaf10-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4931d0-Designator" + }, + { + "id": "0x55eadb4931d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4931e0-DataRef" + }, + { + "id": "0x55eadb4931e0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4931e0-Name" + }, + { + "id": "0x55eadb4931e0-Name", + "source": "nm" + }, + { + "id": "0x55eadb4a5aa0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5aa0-SpecificationExpr" + }, + { + "id": "0x55eadb4a5aa0-SpecificationExpr", + "Expr": "0x55eadb4ab050-Expr" + }, + { + "id": "0x55eadb4ab050-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aaff0-Designator" + }, + { + "id": "0x55eadb4aaff0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ab000-DataRef" + }, + { + "id": "0x55eadb4ab000-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ab000-Name" + }, + { + "id": "0x55eadb4ab000-Name", + "source": "nj" + }, + { + "id": "0x55eadb4ab140-EntityDecl", + "Name": "0x55eadb4ab1f8-Name" + }, + { + "id": "0x55eadb4ab1f8-Name", + "source": "c" + }, + { + "id": "0x55eadb4a94f0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4a94f0-SpecificationConstruct" + }, + { + "id": "0x55eadb4a94f0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a94f0-Statement" + }, + { + "id": "0x55eadb4a94f0-Statement", + "statement": "0x55eadb4ab5a0-TypeDeclarationStmt", + "source": "double precision, dimension(nl, nm) :: d" + }, + { + "id": "0x55eadb4ab5a0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ab5d0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4929f0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4a9400-EntityDecl" + ] + }, + { + "id": "0x55eadb4ab5d0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4ab5d0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4ab5d0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4ab5d0-DoublePrecision" + }, + { + "id": "0x55eadb4ab5d0-DoublePrecision" + }, + { + "id": "0x55eadb4929f0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4929f0-ArraySpec" + }, + { + "id": "0x55eadb4929f0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4a5e90-ExplicitShapeSpec", + "0x55eadb4a5c80-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4a5e90-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5e90-SpecificationExpr" + }, + { + "id": "0x55eadb4a5e90-SpecificationExpr", + "Expr": "0x55eadb4a9170-Expr" + }, + { + "id": "0x55eadb4a9170-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb496000-Designator" + }, + { + "id": "0x55eadb496000-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb496010-DataRef" + }, + { + "id": "0x55eadb496010-DataRef", + "variantKey": "Name", + "Name": "0x55eadb496010-Name" + }, + { + "id": "0x55eadb496010-Name", + "source": "nl" + }, + { + "id": "0x55eadb4a5c80-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a5c80-SpecificationExpr" + }, + { + "id": "0x55eadb4a5c80-SpecificationExpr", + "Expr": "0x55eadb4a9310-Expr" + }, + { + "id": "0x55eadb4a9310-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a92b0-Designator" + }, + { + "id": "0x55eadb4a92b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a92c0-DataRef" + }, + { + "id": "0x55eadb4a92c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a92c0-Name" + }, + { + "id": "0x55eadb4a92c0-Name", + "source": "nm" + }, + { + "id": "0x55eadb4a9400-EntityDecl", + "Name": "0x55eadb4a94b8-Name" + }, + { + "id": "0x55eadb4a94b8-Name", + "source": "d" + }, + { + "id": "0x55eadb4942d0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4942d0-SpecificationConstruct" + }, + { + "id": "0x55eadb4942d0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4942d0-Statement" + }, + { + "id": "0x55eadb4942d0-Statement", + "statement": "0x55eadb4aa610-TypeDeclarationStmt", + "source": "integer :: ni, nj, nk, nl, nm" + }, + { + "id": "0x55eadb4aa610-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4aa640-DeclarationTypeSpec", + "EntityDecl": [ + "0x55eadb4ac780-EntityDecl", + "0x55eadb4a9550-EntityDecl", + "0x55eadb4a9640-EntityDecl", + "0x55eadb4ac5a0-EntityDecl", + "0x55eadb4ac690-EntityDecl" + ] + }, + { + "id": "0x55eadb4aa640-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4aa640-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4aa640-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55eadb4aa640-IntegerTypeSpec" + }, + { + "id": "0x55eadb4aa640-IntegerTypeSpec" + }, + { + "id": "0x55eadb4ac780-EntityDecl", + "Name": "0x55eadb4ac838-Name" + }, + { + "id": "0x55eadb4ac838-Name", + "source": "ni" + }, + { + "id": "0x55eadb4a9550-EntityDecl", + "Name": "0x55eadb4a9608-Name" + }, + { + "id": "0x55eadb4a9608-Name", + "source": "nj" + }, + { + "id": "0x55eadb4a9640-EntityDecl", + "Name": "0x55eadb4a96f8-Name" + }, + { + "id": "0x55eadb4a96f8-Name", + "source": "nk" + }, + { + "id": "0x55eadb4ac5a0-EntityDecl", + "Name": "0x55eadb4ac658-Name" + }, + { + "id": "0x55eadb4ac658-Name", + "source": "nl" + }, + { + "id": "0x55eadb4ac690-EntityDecl", + "Name": "0x55eadb4ac748-Name" + }, + { + "id": "0x55eadb4ac748-Name", + "source": "nm" + }, + { + "id": "0x55eadb495820-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb495820-SpecificationConstruct" + }, + { + "id": "0x55eadb495820-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb495820-Statement" + }, + { + "id": "0x55eadb495820-Statement", + "statement": "0x55eadb4ab400-TypeDeclarationStmt", + "source": "integer :: i, j" + }, + { + "id": "0x55eadb4ab400-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ab430-DeclarationTypeSpec", + "EntityDecl": [ + "0x55eadb4ac960-EntityDecl", + "0x55eadb4ac870-EntityDecl" + ] + }, + { + "id": "0x55eadb4ab430-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4ab430-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4ab430-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55eadb4ab430-IntegerTypeSpec" + }, + { + "id": "0x55eadb4ab430-IntegerTypeSpec" + }, + { + "id": "0x55eadb4ac960-EntityDecl", + "Name": "0x55eadb4aca18-Name" + }, + { + "id": "0x55eadb4aca18-Name", + "source": "i" + }, + { + "id": "0x55eadb4ac870-EntityDecl", + "Name": "0x55eadb4ac928-Name" + }, + { + "id": "0x55eadb4ac928-Name", + "source": "j" + }, + { + "id": "0x55eadb4aebd8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55eadb4936d0-ExecutionPartConstruct", + "0x55eadb4aa870-ExecutionPartConstruct", + "0x55eadb4a6bd0-ExecutionPartConstruct", + "0x55eadb498bf0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55eadb4aebd8-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4936d0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4936d0-ExecutableConstruct" + }, + { + "id": "0x55eadb4936d0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4a4050-DoConstruct" + }, + { + "id": "0x55eadb4a4050-DoConstruct", + "Statement": "0x55eadb4a40a8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb493240-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4a4050-Statement" + }, + { + "id": "0x55eadb4a40a8-Statement", + "statement": "0x55eadb4a40b8-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x55eadb4a40b8-NonLabelDoStmt", + "LoopControl": "0x55eadb4a40b8-LoopControl" + }, + { + "id": "0x55eadb4a40b8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4a40b8-LoopBounds" + }, + { + "id": "0x55eadb4a40b8-LoopBounds", + "var": "0x55eadb4a40b8-Name", + "lower": "0x55eadb494320-Expr", + "upper": "0x55eadb492a30-Expr" + }, + { + "id": "0x55eadb4a40b8-Name", + "source": "i" + }, + { + "id": "0x55eadb494320-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb494340-LiteralConstant" + }, + { + "id": "0x55eadb494340-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb494340-IntLiteralConstant" + }, + { + "id": "0x55eadb494340-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb492a30-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ab620-Designator" + }, + { + "id": "0x55eadb4ab620-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ab630-DataRef" + }, + { + "id": "0x55eadb4ab630-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ab630-Name" + }, + { + "id": "0x55eadb4ab630-Name", + "source": "ni" + }, + { + "id": "0x55eadb4a4090-ExecutionPartConstruct" + }, + { + "id": "0x55eadb493240-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb493240-ExecutableConstruct" + }, + { + "id": "0x55eadb493240-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb437780-DoConstruct" + }, + { + "id": "0x55eadb437780-DoConstruct", + "Statement": "0x55eadb4377d8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4a6160-ExecutionPartConstruct" + ], + "Statement": "0x55eadb437780-Statement" + }, + { + "id": "0x55eadb4377d8-Statement", + "statement": "0x55eadb4377e8-NonLabelDoStmt", + "source": "do j = 1, nk" + }, + { + "id": "0x55eadb4377e8-NonLabelDoStmt", + "LoopControl": "0x55eadb4377e8-LoopControl" + }, + { + "id": "0x55eadb4377e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4377e8-LoopBounds" + }, + { + "id": "0x55eadb4377e8-LoopBounds", + "var": "0x55eadb4377e8-Name", + "lower": "0x55eadb48e210-Expr", + "upper": "0x55eadb48ddf0-Expr" + }, + { + "id": "0x55eadb4377e8-Name", + "source": "j" + }, + { + "id": "0x55eadb48e210-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb48e230-LiteralConstant" + }, + { + "id": "0x55eadb48e230-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb48e230-IntLiteralConstant" + }, + { + "id": "0x55eadb48e230-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb48ddf0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4920b0-Designator" + }, + { + "id": "0x55eadb4920b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4920c0-DataRef" + }, + { + "id": "0x55eadb4920c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4920c0-Name" + }, + { + "id": "0x55eadb4920c0-Name", + "source": "nk" + }, + { + "id": "0x55eadb4377c0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4a6160-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a6160-ExecutableConstruct" + }, + { + "id": "0x55eadb4a6160-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a6160-Statement" + }, + { + "id": "0x55eadb4a6160-Statement", + "statement": "0x55eadb4a6170-ActionStmt", + "source": "a(j, i) = dble(i - 1) * dble(j - 1) / ni" + }, + { + "id": "0x55eadb4a6170-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4a9820-AssignmentStmt" + }, + { + "id": "0x55eadb4a9820-AssignmentStmt", + "Variable": "0x55eadb4a9900-Variable", + "Expr": "0x55eadb4a9830-Expr" + }, + { + "id": "0x55eadb4a9900-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb49f510-Designator" + }, + { + "id": "0x55eadb49f510-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb49f520-DataRef" + }, + { + "id": "0x55eadb49f520-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4c25a0-ArrayElement" + }, + { + "id": "0x55eadb4c25a0-ArrayElement", + "base": "0x55eadb4c25a0-DataRef", + "subscripts": [ + "0x55eadb49f1d0-SectionSubscript", + "0x55eadb4d7830-SectionSubscript" + ] + }, + { + "id": "0x55eadb4c25a0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4c25a0-Name" + }, + { + "id": "0x55eadb4c25a0-Name", + "source": "a" + }, + { + "id": "0x55eadb49f1d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4e4ac0-Expr" + }, + { + "id": "0x55eadb4e4ac0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb49f7f0-Designator" + }, + { + "id": "0x55eadb49f7f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb49f800-DataRef" + }, + { + "id": "0x55eadb49f800-DataRef", + "variantKey": "Name", + "Name": "0x55eadb49f800-Name" + }, + { + "id": "0x55eadb49f800-Name", + "source": "j" + }, + { + "id": "0x55eadb4d7830-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4c0500-Expr" + }, + { + "id": "0x55eadb4c0500-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48d870-Designator" + }, + { + "id": "0x55eadb48d870-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48d880-DataRef" + }, + { + "id": "0x55eadb48d880-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48d880-Name" + }, + { + "id": "0x55eadb48d880-Name", + "source": "i" + }, + { + "id": "0x55eadb4a9830-Expr", + "variantKey": "Divide", + "Divide": "0x55eadb4a9850-Divide" + }, + { + "id": "0x55eadb4a9850-Divide", + "left": "0x55eadb4a5f90-Expr", + "right": "0x55eadb492cc0-Expr", + "op": "DIVIDE" + }, + { + "id": "0x55eadb4a5f90-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb4a5fb0-Multiply" + }, + { + "id": "0x55eadb4a5fb0-Multiply", + "left": "0x55eadb4aac70-Expr", + "right": "0x55eadb4a5d10-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb4aac70-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb4a9b50-FunctionReference" + }, + { + "id": "0x55eadb4a9b50-FunctionReference", + "Call": "0x55eadb4a9b50-Call" + }, + { + "id": "0x55eadb4a9b50-Call", + "ProcedureDesignator": "0x55eadb4a9b68-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4aa1e0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a9b68-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a9b68-Name" + }, + { + "id": "0x55eadb4a9b68-Name", + "source": "dble" + }, + { + "id": "0x55eadb4aa1e0-ActualArgSpec", + "ActualArg": "0x55eadb4aa1e0-ActualArg" + }, + { + "id": "0x55eadb4aa1e0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb496550-Expr" + }, + { + "id": "0x55eadb496550-Expr", + "variantKey": "Subtract", + "Subtract": "0x55eadb496570-Subtract" + }, + { + "id": "0x55eadb496570-Subtract", + "left": "0x55eadb4ab8c0-Expr", + "right": "0x55eadb4a6330-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55eadb4ab8c0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a5c10-Designator" + }, + { + "id": "0x55eadb4a5c10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a5c20-DataRef" + }, + { + "id": "0x55eadb4a5c20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a5c20-Name" + }, + { + "id": "0x55eadb4a5c20-Name", + "source": "i" + }, + { + "id": "0x55eadb4a6330-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a6350-LiteralConstant" + }, + { + "id": "0x55eadb4a6350-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a6350-IntLiteralConstant" + }, + { + "id": "0x55eadb4a6350-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4a5d10-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb4a7440-FunctionReference" + }, + { + "id": "0x55eadb4a7440-FunctionReference", + "Call": "0x55eadb4a7440-Call" + }, + { + "id": "0x55eadb4a7440-Call", + "ProcedureDesignator": "0x55eadb4a7458-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4aa510-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a7458-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a7458-Name" + }, + { + "id": "0x55eadb4a7458-Name", + "source": "dble" + }, + { + "id": "0x55eadb4aa510-ActualArgSpec", + "ActualArg": "0x55eadb4aa510-ActualArg" + }, + { + "id": "0x55eadb4aa510-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb495eb0-Expr" + }, + { + "id": "0x55eadb495eb0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55eadb495ed0-Subtract" + }, + { + "id": "0x55eadb495ed0-Subtract", + "left": "0x55eadb496140-Expr", + "right": "0x55eadb496060-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55eadb496140-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb493950-Designator" + }, + { + "id": "0x55eadb493950-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb493960-DataRef" + }, + { + "id": "0x55eadb493960-DataRef", + "variantKey": "Name", + "Name": "0x55eadb493960-Name" + }, + { + "id": "0x55eadb493960-Name", + "source": "j" + }, + { + "id": "0x55eadb496060-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb496080-LiteralConstant" + }, + { + "id": "0x55eadb496080-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb496080-IntLiteralConstant" + }, + { + "id": "0x55eadb496080-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb492cc0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb492bf0-Designator" + }, + { + "id": "0x55eadb492bf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb492c00-DataRef" + }, + { + "id": "0x55eadb492c00-DataRef", + "variantKey": "Name", + "Name": "0x55eadb492c00-Name" + }, + { + "id": "0x55eadb492c00-Name", + "source": "ni" + }, + { + "id": "0x55eadb437780-Statement", + "statement": "0x55eadb437790-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb437790-EndDoStmt" + }, + { + "id": "0x55eadb4a4050-Statement", + "statement": "0x55eadb4a4060-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4a4060-EndDoStmt" + }, + { + "id": "0x55eadb4aa870-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4aa870-ExecutableConstruct" + }, + { + "id": "0x55eadb4aa870-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb497dc0-DoConstruct" + }, + { + "id": "0x55eadb497dc0-DoConstruct", + "Statement": "0x55eadb497e18-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4aa810-ExecutionPartConstruct" + ], + "Statement": "0x55eadb497dc0-Statement" + }, + { + "id": "0x55eadb497e18-Statement", + "statement": "0x55eadb497e28-NonLabelDoStmt", + "source": "do i = 1, nk" + }, + { + "id": "0x55eadb497e28-NonLabelDoStmt", + "LoopControl": "0x55eadb497e28-LoopControl" + }, + { + "id": "0x55eadb497e28-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb497e28-LoopBounds" + }, + { + "id": "0x55eadb497e28-LoopBounds", + "var": "0x55eadb497e28-Name", + "lower": "0x55eadb4a4170-Expr", + "upper": "0x55eadb4ac0d0-Expr" + }, + { + "id": "0x55eadb497e28-Name", + "source": "i" + }, + { + "id": "0x55eadb4a4170-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a4190-LiteralConstant" + }, + { + "id": "0x55eadb4a4190-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a4190-IntLiteralConstant" + }, + { + "id": "0x55eadb4a4190-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4ac0d0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aad50-Designator" + }, + { + "id": "0x55eadb4aad50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aad60-DataRef" + }, + { + "id": "0x55eadb4aad60-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aad60-Name" + }, + { + "id": "0x55eadb4aad60-Name", + "source": "nk" + }, + { + "id": "0x55eadb497e00-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4aa810-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4aa810-ExecutableConstruct" + }, + { + "id": "0x55eadb4aa810-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb497ca0-DoConstruct" + }, + { + "id": "0x55eadb497ca0-DoConstruct", + "Statement": "0x55eadb497cf8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb497c50-ExecutionPartConstruct" + ], + "Statement": "0x55eadb497ca0-Statement" + }, + { + "id": "0x55eadb497cf8-Statement", + "statement": "0x55eadb497d08-NonLabelDoStmt", + "source": "do j = 1, nj" + }, + { + "id": "0x55eadb497d08-NonLabelDoStmt", + "LoopControl": "0x55eadb497d08-LoopControl" + }, + { + "id": "0x55eadb497d08-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb497d08-LoopBounds" + }, + { + "id": "0x55eadb497d08-LoopBounds", + "var": "0x55eadb497d08-Name", + "lower": "0x55eadb4ac1b0-Expr", + "upper": "0x55eadb4ac290-Expr" + }, + { + "id": "0x55eadb497d08-Name", + "source": "j" + }, + { + "id": "0x55eadb4ac1b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4ac1d0-LiteralConstant" + }, + { + "id": "0x55eadb4ac1d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4ac1d0-IntLiteralConstant" + }, + { + "id": "0x55eadb4ac1d0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4ac290-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48d630-Designator" + }, + { + "id": "0x55eadb48d630-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48d640-DataRef" + }, + { + "id": "0x55eadb48d640-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48d640-Name" + }, + { + "id": "0x55eadb48d640-Name", + "source": "nj" + }, + { + "id": "0x55eadb497ce0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb497c50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb497c50-ExecutableConstruct" + }, + { + "id": "0x55eadb497c50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb497c50-Statement" + }, + { + "id": "0x55eadb497c50-Statement", + "statement": "0x55eadb497c60-ActionStmt", + "source": "b(j, i) =(dble(i - 1) * dble(j))/ nj" + }, + { + "id": "0x55eadb497c60-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb497ac0-AssignmentStmt" + }, + { + "id": "0x55eadb497ac0-AssignmentStmt", + "Variable": "0x55eadb497ba0-Variable", + "Expr": "0x55eadb497ad0-Expr" + }, + { + "id": "0x55eadb497ba0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4c9b10-Designator" + }, + { + "id": "0x55eadb4c9b10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4c9b20-DataRef" + }, + { + "id": "0x55eadb4c9b20-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4c1b30-ArrayElement" + }, + { + "id": "0x55eadb4c1b30-ArrayElement", + "base": "0x55eadb4c1b30-DataRef", + "subscripts": [ + "0x55eadb568220-SectionSubscript", + "0x55eadb568270-SectionSubscript" + ] + }, + { + "id": "0x55eadb4c1b30-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4c1b30-Name" + }, + { + "id": "0x55eadb4c1b30-Name", + "source": "b" + }, + { + "id": "0x55eadb568220-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4a3e00-Expr" + }, + { + "id": "0x55eadb4a3e00-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb494220-Designator" + }, + { + "id": "0x55eadb494220-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb494230-DataRef" + }, + { + "id": "0x55eadb494230-DataRef", + "variantKey": "Name", + "Name": "0x55eadb494230-Name" + }, + { + "id": "0x55eadb494230-Name", + "source": "j" + }, + { + "id": "0x55eadb568270-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb489040-Expr" + }, + { + "id": "0x55eadb489040-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a5f10-Designator" + }, + { + "id": "0x55eadb4a5f10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a5f20-DataRef" + }, + { + "id": "0x55eadb4a5f20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a5f20-Name" + }, + { + "id": "0x55eadb4a5f20-Name", + "source": "i" + }, + { + "id": "0x55eadb497ad0-Expr", + "variantKey": "Divide", + "Divide": "0x55eadb497af0-Divide" + }, + { + "id": "0x55eadb497af0-Divide", + "left": "0x55eadb497970-Expr", + "right": "0x55eadb4a0c70-Expr", + "op": "DIVIDE" + }, + { + "id": "0x55eadb497970-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55eadb497990-Parentheses" + }, + { + "id": "0x55eadb497990-Parentheses", + "Expr": "0x55eadb4a07d0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55eadb4a07d0-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb4a07f0-Multiply" + }, + { + "id": "0x55eadb4a07f0-Multiply", + "left": "0x55eadb4a06f0-Expr", + "right": "0x55eadb497840-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb4a06f0-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb4a5ca0-FunctionReference" + }, + { + "id": "0x55eadb4a5ca0-FunctionReference", + "Call": "0x55eadb4a5ca0-Call" + }, + { + "id": "0x55eadb4a5ca0-Call", + "ProcedureDesignator": "0x55eadb4a5cb8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4aa6a0-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a5cb8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a5cb8-Name" + }, + { + "id": "0x55eadb4a5cb8-Name", + "source": "dble" + }, + { + "id": "0x55eadb4aa6a0-ActualArgSpec", + "ActualArg": "0x55eadb4aa6a0-ActualArg" + }, + { + "id": "0x55eadb4aa6a0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a9e70-Expr" + }, + { + "id": "0x55eadb4a9e70-Expr", + "variantKey": "Subtract", + "Subtract": "0x55eadb4a9e90-Subtract" + }, + { + "id": "0x55eadb4a9e90-Subtract", + "left": "0x55eadb4aa030-Expr", + "right": "0x55eadb4a9f50-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55eadb4aa030-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a57f0-Designator" + }, + { + "id": "0x55eadb4a57f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a5800-DataRef" + }, + { + "id": "0x55eadb4a5800-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a5800-Name" + }, + { + "id": "0x55eadb4a5800-Name", + "source": "i" + }, + { + "id": "0x55eadb4a9f50-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a9f70-LiteralConstant" + }, + { + "id": "0x55eadb4a9f70-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a9f70-IntLiteralConstant" + }, + { + "id": "0x55eadb4a9f70-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb497840-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb4a72f0-FunctionReference" + }, + { + "id": "0x55eadb4a72f0-FunctionReference", + "Call": "0x55eadb4a72f0-Call" + }, + { + "id": "0x55eadb4a72f0-Call", + "ProcedureDesignator": "0x55eadb4a7308-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4aaa70-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a7308-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a7308-Name" + }, + { + "id": "0x55eadb4a7308-Name", + "source": "dble" + }, + { + "id": "0x55eadb4aaa70-ActualArgSpec", + "ActualArg": "0x55eadb4aaa70-ActualArg" + }, + { + "id": "0x55eadb4aaa70-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4aa920-Expr" + }, + { + "id": "0x55eadb4aa920-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aa8c0-Designator" + }, + { + "id": "0x55eadb4aa8c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aa8d0-DataRef" + }, + { + "id": "0x55eadb4aa8d0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aa8d0-Name" + }, + { + "id": "0x55eadb4aa8d0-Name", + "source": "j" + }, + { + "id": "0x55eadb4a0c70-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a0ba0-Designator" + }, + { + "id": "0x55eadb4a0ba0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a0bb0-DataRef" + }, + { + "id": "0x55eadb4a0bb0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a0bb0-Name" + }, + { + "id": "0x55eadb4a0bb0-Name", + "source": "nj" + }, + { + "id": "0x55eadb497ca0-Statement", + "statement": "0x55eadb497cb0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb497cb0-EndDoStmt" + }, + { + "id": "0x55eadb497dc0-Statement", + "statement": "0x55eadb497dd0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb497dd0-EndDoStmt" + }, + { + "id": "0x55eadb4a6bd0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a6bd0-ExecutableConstruct" + }, + { + "id": "0x55eadb4a6bd0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4a4b80-DoConstruct" + }, + { + "id": "0x55eadb4a4b80-DoConstruct", + "Statement": "0x55eadb4a4bd8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4a6b10-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4a4b80-Statement" + }, + { + "id": "0x55eadb4a4bd8-Statement", + "statement": "0x55eadb4a4be8-NonLabelDoStmt", + "source": "do i = 1, nj" + }, + { + "id": "0x55eadb4a4be8-NonLabelDoStmt", + "LoopControl": "0x55eadb4a4be8-LoopControl" + }, + { + "id": "0x55eadb4a4be8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4a4be8-LoopBounds" + }, + { + "id": "0x55eadb4a4be8-LoopBounds", + "var": "0x55eadb4a4be8-Name", + "lower": "0x55eadb497ee0-Expr", + "upper": "0x55eadb496dd0-Expr" + }, + { + "id": "0x55eadb4a4be8-Name", + "source": "i" + }, + { + "id": "0x55eadb497ee0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb497f00-LiteralConstant" + }, + { + "id": "0x55eadb497f00-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb497f00-IntLiteralConstant" + }, + { + "id": "0x55eadb497f00-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb496dd0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a08b0-Designator" + }, + { + "id": "0x55eadb4a08b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a08c0-DataRef" + }, + { + "id": "0x55eadb4a08c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a08c0-Name" + }, + { + "id": "0x55eadb4a08c0-Name", + "source": "nj" + }, + { + "id": "0x55eadb4a4bc0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4a6b10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a6b10-ExecutableConstruct" + }, + { + "id": "0x55eadb4a6b10-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4a4a60-DoConstruct" + }, + { + "id": "0x55eadb4a4a60-DoConstruct", + "Statement": "0x55eadb4a4ab8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4a4a10-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4a4a60-Statement" + }, + { + "id": "0x55eadb4a4ab8-Statement", + "statement": "0x55eadb4a4ac8-NonLabelDoStmt", + "source": "do j = 1, nm" + }, + { + "id": "0x55eadb4a4ac8-NonLabelDoStmt", + "LoopControl": "0x55eadb4a4ac8-LoopControl" + }, + { + "id": "0x55eadb4a4ac8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4a4ac8-LoopBounds" + }, + { + "id": "0x55eadb4a4ac8-LoopBounds", + "var": "0x55eadb4a4ac8-Name", + "lower": "0x55eadb496eb0-Expr", + "upper": "0x55eadb496f90-Expr" + }, + { + "id": "0x55eadb4a4ac8-Name", + "source": "j" + }, + { + "id": "0x55eadb496eb0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb496ed0-LiteralConstant" + }, + { + "id": "0x55eadb496ed0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb496ed0-IntLiteralConstant" + }, + { + "id": "0x55eadb496ed0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb496f90-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a9250-Designator" + }, + { + "id": "0x55eadb4a9250-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a9260-DataRef" + }, + { + "id": "0x55eadb4a9260-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a9260-Name" + }, + { + "id": "0x55eadb4a9260-Name", + "source": "nm" + }, + { + "id": "0x55eadb4a4aa0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4a4a10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a4a10-ExecutableConstruct" + }, + { + "id": "0x55eadb4a4a10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a4a10-Statement" + }, + { + "id": "0x55eadb4a4a10-Statement", + "statement": "0x55eadb4a4a20-ActionStmt", + "source": "c(j, i) =(dble(i - 1) * dble(j + 2))/ nl" + }, + { + "id": "0x55eadb4a4a20-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4a4880-AssignmentStmt" + }, + { + "id": "0x55eadb4a4880-AssignmentStmt", + "Variable": "0x55eadb4a4960-Variable", + "Expr": "0x55eadb4a4890-Expr" + }, + { + "id": "0x55eadb4a4960-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4cfdd0-Designator" + }, + { + "id": "0x55eadb4cfdd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4cfde0-DataRef" + }, + { + "id": "0x55eadb4cfde0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb49f680-ArrayElement" + }, + { + "id": "0x55eadb49f680-ArrayElement", + "base": "0x55eadb49f680-DataRef", + "subscripts": [ + "0x55eadb5682c0-SectionSubscript", + "0x55eadb568310-SectionSubscript" + ] + }, + { + "id": "0x55eadb49f680-DataRef", + "variantKey": "Name", + "Name": "0x55eadb49f680-Name" + }, + { + "id": "0x55eadb49f680-Name", + "source": "c" + }, + { + "id": "0x55eadb5682c0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb497570-Expr" + }, + { + "id": "0x55eadb497570-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a9e10-Designator" + }, + { + "id": "0x55eadb4a9e10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a9e20-DataRef" + }, + { + "id": "0x55eadb4a9e20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a9e20-Name" + }, + { + "id": "0x55eadb4a9e20-Name", + "source": "j" + }, + { + "id": "0x55eadb568310-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb497650-Expr" + }, + { + "id": "0x55eadb497650-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a5a30-Designator" + }, + { + "id": "0x55eadb4a5a30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a5a40-DataRef" + }, + { + "id": "0x55eadb4a5a40-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a5a40-Name" + }, + { + "id": "0x55eadb4a5a40-Name", + "source": "i" + }, + { + "id": "0x55eadb4a4890-Expr", + "variantKey": "Divide", + "Divide": "0x55eadb4a48b0-Divide" + }, + { + "id": "0x55eadb4a48b0-Divide", + "left": "0x55eadb498a30-Expr", + "right": "0x55eadb498950-Expr", + "op": "DIVIDE" + }, + { + "id": "0x55eadb498a30-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55eadb498a50-Parentheses" + }, + { + "id": "0x55eadb498a50-Parentheses", + "Expr": "0x55eadb498520-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55eadb498520-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb498540-Multiply" + }, + { + "id": "0x55eadb498540-Multiply", + "left": "0x55eadb498440-Expr", + "right": "0x55eadb498360-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb498440-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb4a7510-FunctionReference" + }, + { + "id": "0x55eadb4a7510-FunctionReference", + "Call": "0x55eadb4a7510-Call" + }, + { + "id": "0x55eadb4a7510-Call", + "ProcedureDesignator": "0x55eadb4a7528-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4a6940-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a7528-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a7528-Name" + }, + { + "id": "0x55eadb4a7528-Name", + "source": "dble" + }, + { + "id": "0x55eadb4a6940-ActualArgSpec", + "ActualArg": "0x55eadb4a6940-ActualArg" + }, + { + "id": "0x55eadb4a6940-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a6630-Expr" + }, + { + "id": "0x55eadb4a6630-Expr", + "variantKey": "Subtract", + "Subtract": "0x55eadb4a6650-Subtract" + }, + { + "id": "0x55eadb4a6650-Subtract", + "left": "0x55eadb4a67f0-Expr", + "right": "0x55eadb4a6710-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55eadb4a67f0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a0980-Designator" + }, + { + "id": "0x55eadb4a0980-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a0990-DataRef" + }, + { + "id": "0x55eadb4a0990-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a0990-Name" + }, + { + "id": "0x55eadb4a0990-Name", + "source": "i" + }, + { + "id": "0x55eadb4a6710-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a6730-LiteralConstant" + }, + { + "id": "0x55eadb4a6730-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a6730-IntLiteralConstant" + }, + { + "id": "0x55eadb4a6730-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb498360-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb4aadb0-FunctionReference" + }, + { + "id": "0x55eadb4aadb0-FunctionReference", + "Call": "0x55eadb4aadb0-Call" + }, + { + "id": "0x55eadb4aadb0-Call", + "ProcedureDesignator": "0x55eadb4aadc8-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb498260-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4aadc8-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4aadc8-Name" + }, + { + "id": "0x55eadb4aadc8-Name", + "source": "dble" + }, + { + "id": "0x55eadb498260-ActualArgSpec", + "ActualArg": "0x55eadb498260-ActualArg" + }, + { + "id": "0x55eadb498260-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a6c20-Expr" + }, + { + "id": "0x55eadb4a6c20-Expr", + "variantKey": "Add", + "Add": "0x55eadb4a6c40-Add" + }, + { + "id": "0x55eadb4a6c40-Add", + "left": "0x55eadb4a6de0-Expr", + "right": "0x55eadb4a6d00-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb4a6de0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a6b60-Designator" + }, + { + "id": "0x55eadb4a6b60-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a6b70-DataRef" + }, + { + "id": "0x55eadb4a6b70-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a6b70-Name" + }, + { + "id": "0x55eadb4a6b70-Name", + "source": "j" + }, + { + "id": "0x55eadb4a6d00-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a6d20-LiteralConstant" + }, + { + "id": "0x55eadb4a6d20-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a6d20-IntLiteralConstant" + }, + { + "id": "0x55eadb4a6d20-IntLiteralConstant", + "CharBlock": "2" + }, + { + "id": "0x55eadb498950-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb498880-Designator" + }, + { + "id": "0x55eadb498880-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb498890-DataRef" + }, + { + "id": "0x55eadb498890-DataRef", + "variantKey": "Name", + "Name": "0x55eadb498890-Name" + }, + { + "id": "0x55eadb498890-Name", + "source": "nl" + }, + { + "id": "0x55eadb4a4a60-Statement", + "statement": "0x55eadb4a4a70-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4a4a70-EndDoStmt" + }, + { + "id": "0x55eadb4a4b80-Statement", + "statement": "0x55eadb4a4b90-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4a4b90-EndDoStmt" + }, + { + "id": "0x55eadb498bf0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb498bf0-ExecutableConstruct" + }, + { + "id": "0x55eadb498bf0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4ad8c0-DoConstruct" + }, + { + "id": "0x55eadb4ad8c0-DoConstruct", + "Statement": "0x55eadb4ad918-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4a6f90-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4ad8c0-Statement" + }, + { + "id": "0x55eadb4ad918-Statement", + "statement": "0x55eadb4ad928-NonLabelDoStmt", + "source": "do i = 1, nm" + }, + { + "id": "0x55eadb4ad928-NonLabelDoStmt", + "LoopControl": "0x55eadb4ad928-LoopControl" + }, + { + "id": "0x55eadb4ad928-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4ad928-LoopBounds" + }, + { + "id": "0x55eadb4ad928-LoopBounds", + "var": "0x55eadb4ad928-Name", + "lower": "0x55eadb4a4ca0-Expr", + "upper": "0x55eadb4a4d80-Expr" + }, + { + "id": "0x55eadb4ad928-Name", + "source": "i" + }, + { + "id": "0x55eadb4a4ca0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a4cc0-LiteralConstant" + }, + { + "id": "0x55eadb4a4cc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a4cc0-IntLiteralConstant" + }, + { + "id": "0x55eadb4a4cc0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4a4d80-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb498600-Designator" + }, + { + "id": "0x55eadb498600-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb498610-DataRef" + }, + { + "id": "0x55eadb498610-DataRef", + "variantKey": "Name", + "Name": "0x55eadb498610-Name" + }, + { + "id": "0x55eadb498610-Name", + "source": "nm" + }, + { + "id": "0x55eadb4ad900-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4a6f90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a6f90-ExecutableConstruct" + }, + { + "id": "0x55eadb4a6f90-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4ad7a0-DoConstruct" + }, + { + "id": "0x55eadb4ad7a0-DoConstruct", + "Statement": "0x55eadb4ad7f8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4ad750-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4ad7a0-Statement" + }, + { + "id": "0x55eadb4ad7f8-Statement", + "statement": "0x55eadb4ad808-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x55eadb4ad808-NonLabelDoStmt", + "LoopControl": "0x55eadb4ad808-LoopControl" + }, + { + "id": "0x55eadb4ad808-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4ad808-LoopBounds" + }, + { + "id": "0x55eadb4ad808-LoopBounds", + "var": "0x55eadb4ad808-Name", + "lower": "0x55eadb4a4e60-Expr", + "upper": "0x55eadb4a4f40-Expr" + }, + { + "id": "0x55eadb4ad808-Name", + "source": "j" + }, + { + "id": "0x55eadb4a4e60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a4e80-LiteralConstant" + }, + { + "id": "0x55eadb4a4e80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a4e80-IntLiteralConstant" + }, + { + "id": "0x55eadb4a4e80-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4a4f40-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb48da30-Designator" + }, + { + "id": "0x55eadb48da30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb48da40-DataRef" + }, + { + "id": "0x55eadb48da40-DataRef", + "variantKey": "Name", + "Name": "0x55eadb48da40-Name" + }, + { + "id": "0x55eadb48da40-Name", + "source": "nl" + }, + { + "id": "0x55eadb4ad7e0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4ad750-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4ad750-ExecutableConstruct" + }, + { + "id": "0x55eadb4ad750-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4ad750-Statement" + }, + { + "id": "0x55eadb4ad750-Statement", + "statement": "0x55eadb4ad760-ActionStmt", + "source": "d(j, i) =(dble(i - 1) * dble(j + 1))/ nk" + }, + { + "id": "0x55eadb4ad760-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4ad5c0-AssignmentStmt" + }, + { + "id": "0x55eadb4ad5c0-AssignmentStmt", + "Variable": "0x55eadb4ad6a0-Variable", + "Expr": "0x55eadb4ad5d0-Expr" + }, + { + "id": "0x55eadb4ad6a0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb49f620-Designator" + }, + { + "id": "0x55eadb49f620-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb49f630-DataRef" + }, + { + "id": "0x55eadb49f630-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4be280-ArrayElement" + }, + { + "id": "0x55eadb4be280-ArrayElement", + "base": "0x55eadb4be280-DataRef", + "subscripts": [ + "0x55eadb568360-SectionSubscript", + "0x55eadb4d7e20-SectionSubscript" + ] + }, + { + "id": "0x55eadb4be280-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4be280-Name" + }, + { + "id": "0x55eadb4be280-Name", + "source": "d" + }, + { + "id": "0x55eadb568360-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb497070-Expr" + }, + { + "id": "0x55eadb497070-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb498cc0-Designator" + }, + { + "id": "0x55eadb498cc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb498cd0-DataRef" + }, + { + "id": "0x55eadb498cd0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb498cd0-Name" + }, + { + "id": "0x55eadb498cd0-Name", + "source": "j" + }, + { + "id": "0x55eadb4d7e20-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb497150-Expr" + }, + { + "id": "0x55eadb497150-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aba00-Designator" + }, + { + "id": "0x55eadb4aba00-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aba10-DataRef" + }, + { + "id": "0x55eadb4aba10-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aba10-Name" + }, + { + "id": "0x55eadb4aba10-Name", + "source": "i" + }, + { + "id": "0x55eadb4ad5d0-Expr", + "variantKey": "Divide", + "Divide": "0x55eadb4ad5f0-Divide" + }, + { + "id": "0x55eadb4ad5f0-Divide", + "left": "0x55eadb4ad470-Expr", + "right": "0x55eadb4ad390-Expr", + "op": "DIVIDE" + }, + { + "id": "0x55eadb4ad470-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55eadb4ad490-Parentheses" + }, + { + "id": "0x55eadb4ad490-Parentheses", + "Expr": "0x55eadb4ad120-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55eadb4ad120-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb4ad140-Multiply" + }, + { + "id": "0x55eadb4ad140-Multiply", + "left": "0x55eadb4ad040-Expr", + "right": "0x55eadb4acf60-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb4ad040-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb4a0300-FunctionReference" + }, + { + "id": "0x55eadb4a0300-FunctionReference", + "Call": "0x55eadb4a0300-Call" + }, + { + "id": "0x55eadb4a0300-Call", + "ProcedureDesignator": "0x55eadb4a0318-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4aca50-ActualArgSpec" + ] + }, + { + "id": "0x55eadb4a0318-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb4a0318-Name" + }, + { + "id": "0x55eadb4a0318-Name", + "source": "dble" + }, + { + "id": "0x55eadb4aca50-ActualArgSpec", + "ActualArg": "0x55eadb4aca50-ActualArg" + }, + { + "id": "0x55eadb4aca50-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4a5400-Expr" + }, + { + "id": "0x55eadb4a5400-Expr", + "variantKey": "Subtract", + "Subtract": "0x55eadb4a5420-Subtract" + }, + { + "id": "0x55eadb4a5420-Subtract", + "left": "0x55eadb4a55c0-Expr", + "right": "0x55eadb4a54e0-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55eadb4a55c0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb498660-Designator" + }, + { + "id": "0x55eadb498660-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb498670-DataRef" + }, + { + "id": "0x55eadb498670-DataRef", + "variantKey": "Name", + "Name": "0x55eadb498670-Name" + }, + { + "id": "0x55eadb498670-Name", + "source": "i" + }, + { + "id": "0x55eadb4a54e0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4a5500-LiteralConstant" + }, + { + "id": "0x55eadb4a5500-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4a5500-IntLiteralConstant" + }, + { + "id": "0x55eadb4a5500-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4acf60-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb493d00-FunctionReference" + }, + { + "id": "0x55eadb493d00-FunctionReference", + "Call": "0x55eadb493d00-Call" + }, + { + "id": "0x55eadb493d00-Call", + "ProcedureDesignator": "0x55eadb493d18-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4ace60-ActualArgSpec" + ] + }, + { + "id": "0x55eadb493d18-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb493d18-Name" + }, + { + "id": "0x55eadb493d18-Name", + "source": "dble" + }, + { + "id": "0x55eadb4ace60-ActualArgSpec", + "ActualArg": "0x55eadb4ace60-ActualArg" + }, + { + "id": "0x55eadb4ace60-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4acb50-Expr" + }, + { + "id": "0x55eadb4acb50-Expr", + "variantKey": "Add", + "Add": "0x55eadb4acb70-Add" + }, + { + "id": "0x55eadb4acb70-Add", + "left": "0x55eadb4acd10-Expr", + "right": "0x55eadb4acc30-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb4acd10-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb498b80-Designator" + }, + { + "id": "0x55eadb498b80-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb498b90-DataRef" + }, + { + "id": "0x55eadb498b90-DataRef", + "variantKey": "Name", + "Name": "0x55eadb498b90-Name" + }, + { + "id": "0x55eadb498b90-Name", + "source": "j" + }, + { + "id": "0x55eadb4acc30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4acc50-LiteralConstant" + }, + { + "id": "0x55eadb4acc50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4acc50-IntLiteralConstant" + }, + { + "id": "0x55eadb4acc50-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4ad390-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ad2c0-Designator" + }, + { + "id": "0x55eadb4ad2c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ad2d0-DataRef" + }, + { + "id": "0x55eadb4ad2d0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ad2d0-Name" + }, + { + "id": "0x55eadb4ad2d0-Name", + "source": "nk" + }, + { + "id": "0x55eadb4ad7a0-Statement", + "statement": "0x55eadb4ad7b0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4ad7b0-EndDoStmt" + }, + { + "id": "0x55eadb4ad8c0-Statement", + "statement": "0x55eadb4ad8d0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4ad8d0-EndDoStmt" + }, + { + "id": "0x55eadb4aeb50-Statement", + "statement": "0x55eadb4aeb60-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x55eadb4aeb60-EndSubroutineStmt" + }, + { + "id": "0x55eadb49a300-InternalSubprogram", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55eadb4b4660-SubroutineSubprogram" + }, + { + "id": "0x55eadb4b4660-SubroutineSubprogram", + "Statement": "0x55eadb4b47a8-Statement", + "SpecificationPart": "0x55eadb4b4700-SpecificationPart", + "ExecutionPart": "0x55eadb4b46e8-ExecutionPart", + "Statement": "0x55eadb4b4660-Statement" + }, + { + "id": "0x55eadb4b47a8-Statement", + "statement": "0x55eadb4b47b8-SubroutineStmt", + "source": "subroutine print_array(ni, nl, g)" + }, + { + "id": "0x55eadb4b47b8-SubroutineStmt", + "Name": "0x55eadb4b47f0-Name", + "DummyArg": [ + "0x55eadb496920-DummyArg", + "0x55eadb496880-DummyArg", + "0x55eadb4968c0-DummyArg" + ] + }, + { + "id": "0x55eadb4b47f0-Name", + "source": "print_array" + }, + { + "id": "0x55eadb496920-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496920-Name" + }, + { + "id": "0x55eadb496920-Name", + "source": "ni" + }, + { + "id": "0x55eadb496880-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496880-Name" + }, + { + "id": "0x55eadb496880-Name", + "source": "nl" + }, + { + "id": "0x55eadb4968c0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb4968c0-Name" + }, + { + "id": "0x55eadb4968c0-Name", + "source": "g" + }, + { + "id": "0x55eadb4b4700-SpecificationPart", + "ImplicitPart": "0x55eadb4b4718-ImplicitPart", + "DeclarationConstruct": [ + "0x55eadb4aa7b0-DeclarationConstruct", + "0x55eadb495a80-DeclarationConstruct", + "0x55eadb4a4260-DeclarationConstruct" + ] + }, + { + "id": "0x55eadb4b4718-ImplicitPart" + }, + { + "id": "0x55eadb4aa7b0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4aa7b0-SpecificationConstruct" + }, + { + "id": "0x55eadb4aa7b0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4aa7b0-Statement" + }, + { + "id": "0x55eadb4aa7b0-Statement", + "statement": "0x55eadb48d7f0-TypeDeclarationStmt", + "source": "double precision, dimension(nl, ni) :: g" + }, + { + "id": "0x55eadb48d7f0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb48d820-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb492f70-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4af850-EntityDecl" + ] + }, + { + "id": "0x55eadb48d820-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb48d820-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb48d820-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb48d820-DoublePrecision" + }, + { + "id": "0x55eadb48d820-DoublePrecision" + }, + { + "id": "0x55eadb492f70-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb492f70-ArraySpec" + }, + { + "id": "0x55eadb492f70-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb498c50-ExplicitShapeSpec", + "0x55eadb4a4810-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb498c50-ExplicitShapeSpec", + "upper_bound": "0x55eadb498c50-SpecificationExpr" + }, + { + "id": "0x55eadb498c50-SpecificationExpr", + "Expr": "0x55eadb4af680-Expr" + }, + { + "id": "0x55eadb4af680-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ad200-Designator" + }, + { + "id": "0x55eadb4ad200-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ad210-DataRef" + }, + { + "id": "0x55eadb4ad210-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ad210-Name" + }, + { + "id": "0x55eadb4ad210-Name", + "source": "nl" + }, + { + "id": "0x55eadb4a4810-ExplicitShapeSpec", + "upper_bound": "0x55eadb4a4810-SpecificationExpr" + }, + { + "id": "0x55eadb4a4810-SpecificationExpr", + "Expr": "0x55eadb4af760-Expr" + }, + { + "id": "0x55eadb4af760-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a6ec0-Designator" + }, + { + "id": "0x55eadb4a6ec0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a6ed0-DataRef" + }, + { + "id": "0x55eadb4a6ed0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a6ed0-Name" + }, + { + "id": "0x55eadb4a6ed0-Name", + "source": "ni" + }, + { + "id": "0x55eadb4af850-EntityDecl", + "Name": "0x55eadb4af908-Name" + }, + { + "id": "0x55eadb4af908-Name", + "source": "g" + }, + { + "id": "0x55eadb495a80-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb495a80-SpecificationConstruct" + }, + { + "id": "0x55eadb495a80-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb495a80-Statement" + }, + { + "id": "0x55eadb495a80-Statement", + "statement": "0x55eadb4ab300-TypeDeclarationStmt", + "source": "integer :: ni, nl" + }, + { + "id": "0x55eadb4ab300-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ab330-DeclarationTypeSpec", + "EntityDecl": [ + "0x55eadb4adae0-EntityDecl", + "0x55eadb4ad9f0-EntityDecl" + ] + }, + { + "id": "0x55eadb4ab330-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4ab330-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4ab330-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55eadb4ab330-IntegerTypeSpec" + }, + { + "id": "0x55eadb4ab330-IntegerTypeSpec" + }, + { + "id": "0x55eadb4adae0-EntityDecl", + "Name": "0x55eadb4adb98-Name" + }, + { + "id": "0x55eadb4adb98-Name", + "source": "ni" + }, + { + "id": "0x55eadb4ad9f0-EntityDecl", + "Name": "0x55eadb4adaa8-Name" + }, + { + "id": "0x55eadb4adaa8-Name", + "source": "nl" + }, + { + "id": "0x55eadb4a4260-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4a4260-SpecificationConstruct" + }, + { + "id": "0x55eadb4a4260-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a4260-Statement" + }, + { + "id": "0x55eadb4a4260-Statement", + "statement": "0x55eadb49fe00-TypeDeclarationStmt", + "source": "integer :: i, j" + }, + { + "id": "0x55eadb49fe00-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb49fe30-DeclarationTypeSpec", + "EntityDecl": [ + "0x55eadb4adcc0-EntityDecl", + "0x55eadb4adbd0-EntityDecl" + ] + }, + { + "id": "0x55eadb49fe30-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb49fe30-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb49fe30-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55eadb49fe30-IntegerTypeSpec" + }, + { + "id": "0x55eadb49fe30-IntegerTypeSpec" + }, + { + "id": "0x55eadb4adcc0-EntityDecl", + "Name": "0x55eadb4add78-Name" + }, + { + "id": "0x55eadb4add78-Name", + "source": "i" + }, + { + "id": "0x55eadb4adbd0-EntityDecl", + "Name": "0x55eadb4adc88-Name" + }, + { + "id": "0x55eadb4adc88-Name", + "source": "j" + }, + { + "id": "0x55eadb4b46e8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55eadb4a9a90-ExecutionPartConstruct", + "0x55eadb4a56b0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55eadb4b46e8-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4a9a90-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a9a90-ExecutableConstruct" + }, + { + "id": "0x55eadb4a9a90-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b31a0-DoConstruct" + }, + { + "id": "0x55eadb4b31a0-DoConstruct", + "Statement": "0x55eadb4b31f8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4a68e0-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b31a0-Statement" + }, + { + "id": "0x55eadb4b31f8-Statement", + "statement": "0x55eadb4b3208-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x55eadb4b3208-NonLabelDoStmt", + "LoopControl": "0x55eadb4b3208-LoopControl" + }, + { + "id": "0x55eadb4b3208-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b3208-LoopBounds" + }, + { + "id": "0x55eadb4b3208-LoopBounds", + "var": "0x55eadb4b3208-Name", + "lower": "0x55eadb4adda0-Expr", + "upper": "0x55eadb4ade80-Expr" + }, + { + "id": "0x55eadb4b3208-Name", + "source": "i" + }, + { + "id": "0x55eadb4adda0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4addc0-LiteralConstant" + }, + { + "id": "0x55eadb4addc0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4addc0-IntLiteralConstant" + }, + { + "id": "0x55eadb4addc0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4ade80-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aaa00-Designator" + }, + { + "id": "0x55eadb4aaa00-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aaa10-DataRef" + }, + { + "id": "0x55eadb4aaa10-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aaa10-Name" + }, + { + "id": "0x55eadb4aaa10-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b31e0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4a68e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a68e0-ExecutableConstruct" + }, + { + "id": "0x55eadb4a68e0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b3080-DoConstruct" + }, + { + "id": "0x55eadb4b3080-DoConstruct", + "Statement": "0x55eadb4b30d8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4afe10-ExecutionPartConstruct", + "0x55eadb4aa120-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b3080-Statement" + }, + { + "id": "0x55eadb4b30d8-Statement", + "statement": "0x55eadb4b30e8-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x55eadb4b30e8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b30e8-LoopControl" + }, + { + "id": "0x55eadb4b30e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b30e8-LoopBounds" + }, + { + "id": "0x55eadb4b30e8-LoopBounds", + "var": "0x55eadb4b30e8-Name", + "lower": "0x55eadb4adf60-Expr", + "upper": "0x55eadb4ae040-Expr" + }, + { + "id": "0x55eadb4b30e8-Name", + "source": "j" + }, + { + "id": "0x55eadb4adf60-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4adf80-LiteralConstant" + }, + { + "id": "0x55eadb4adf80-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4adf80-IntLiteralConstant" + }, + { + "id": "0x55eadb4adf80-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4ae040-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a6a40-Designator" + }, + { + "id": "0x55eadb4a6a40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a6a50-DataRef" + }, + { + "id": "0x55eadb4a6a50-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a6a50-Name" + }, + { + "id": "0x55eadb4a6a50-Name", + "source": "nl" + }, + { + "id": "0x55eadb4b30c0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4afe10-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4afe10-ExecutableConstruct" + }, + { + "id": "0x55eadb4afe10-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4afe10-Statement" + }, + { + "id": "0x55eadb4afe10-Statement", + "statement": "0x55eadb4afe20-ActionStmt", + "source": "write(0, \"(f0.2,1x)\", advance = 'no') g(j, i)" + }, + { + "id": "0x55eadb4afe20-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55eadb4b00e0-WriteStmt" + }, + { + "id": "0x55eadb4b00e0-WriteStmt", + "iounit": "0x55eadb4b00e0-IoUnit", + "format": "0x55eadb4b0110-Format", + "controls": [ + "0x55eadb4ae700-IoControlSpec" + ], + "items": [ + "0x55eadb4b0000-OutputItem" + ] + }, + { + "id": "0x55eadb4b00e0-IoUnit", + "variantKey": "Expr", + "Expr": "0x55eadb4ae120-Expr" + }, + { + "id": "0x55eadb4ae120-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4ae140-LiteralConstant" + }, + { + "id": "0x55eadb4ae140-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4ae140-IntLiteralConstant" + }, + { + "id": "0x55eadb4ae140-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4b0110-Format", + "variantKey": "Expr", + "Expr": "0x55eadb4b0110-Expr" + }, + { + "id": "0x55eadb4b0110-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b0130-LiteralConstant" + }, + { + "id": "0x55eadb4b0130-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55eadb4b0130-CharLiteralConstant" + }, + { + "id": "0x55eadb4b0130-CharLiteralConstant", + "string": "(f0.2,1x)" + }, + { + "id": "0x55eadb4ae700-IoControlSpec", + "variantKey": "CharExpr", + "CharExpr": "0x55eadb4ae700-CharExpr" + }, + { + "id": "0x55eadb4ae700-CharExpr", + "Kind = Advance": "0x55eadb4ae708-Kind = Advance", + "Expr": "0x55eadb4ae200-Expr", + "kind": "Advance" + }, + { + "id": "0x55eadb4ae708-Kind = Advance", + "disambiguation": "Fortran::parser::IoControlSpec::CharExpr::Kind", + "value": "Advance" + }, + { + "id": "0x55eadb4ae200-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4ae220-LiteralConstant" + }, + { + "id": "0x55eadb4ae220-LiteralConstant", + "variantKey": "CharLiteralConstant", + "CharLiteralConstant": "0x55eadb4ae220-CharLiteralConstant" + }, + { + "id": "0x55eadb4ae220-CharLiteralConstant", + "string": "no" + }, + { + "id": "0x55eadb4b0000-OutputItem", + "variantKey": "Expr", + "Expr": "0x55eadb4b0000-Expr" + }, + { + "id": "0x55eadb4b0000-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ce780-Designator" + }, + { + "id": "0x55eadb4ce780-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ce790-DataRef" + }, + { + "id": "0x55eadb4ce790-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb49f410-ArrayElement" + }, + { + "id": "0x55eadb49f410-ArrayElement", + "base": "0x55eadb49f410-DataRef", + "subscripts": [ + "0x55eadb4dbca0-SectionSubscript", + "0x55eadb56f140-SectionSubscript" + ] + }, + { + "id": "0x55eadb49f410-DataRef", + "variantKey": "Name", + "Name": "0x55eadb49f410-Name" + }, + { + "id": "0x55eadb49f410-Name", + "source": "g" + }, + { + "id": "0x55eadb4dbca0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4a5020-Expr" + }, + { + "id": "0x55eadb4a5020-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aea70-Designator" + }, + { + "id": "0x55eadb4aea70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aea80-DataRef" + }, + { + "id": "0x55eadb4aea80-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aea80-Name" + }, + { + "id": "0x55eadb4aea80-Name", + "source": "j" + }, + { + "id": "0x55eadb56f140-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4a5100-Expr" + }, + { + "id": "0x55eadb4a5100-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aed30-Designator" + }, + { + "id": "0x55eadb4aed30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aed40-DataRef" + }, + { + "id": "0x55eadb4aed40-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aed40-Name" + }, + { + "id": "0x55eadb4aed40-Name", + "source": "i" + }, + { + "id": "0x55eadb4aa120-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4aa120-ExecutableConstruct" + }, + { + "id": "0x55eadb4aa120-ExecutableConstruct", + "variantKey": "IfConstruct", + "IfConstruct": "0x55eadb4b2f60-IfConstruct" + }, + { + "id": "0x55eadb4b2f60-IfConstruct", + "Statement": "0x55eadb4b3030-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4a6f30-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b2f60-Statement" + }, + { + "id": "0x55eadb4b3030-Statement", + "statement": "0x55eadb4b3040-IfThenStmt", + "source": "if(mod(((i - 1) * ni) + j - 1, 20) == 0) then" + }, + { + "id": "0x55eadb4b3040-IfThenStmt", + "Expr": "0x55eadb4b2c50-Expr" + }, + { + "id": "0x55eadb4b2c50-Expr", + "variantKey": "EQ", + "EQ": "0x55eadb4b2c70-EQ" + }, + { + "id": "0x55eadb4b2c70-EQ", + "left": "0x55eadb4b2b70-Expr", + "right": "0x55eadb4b2a90-Expr", + "op": "EQ" + }, + { + "id": "0x55eadb4b2b70-Expr", + "variantKey": "FunctionReference", + "FunctionReference": "0x55eadb492c50-FunctionReference" + }, + { + "id": "0x55eadb492c50-FunctionReference", + "Call": "0x55eadb492c50-Call" + }, + { + "id": "0x55eadb492c50-Call", + "ProcedureDesignator": "0x55eadb492c68-ProcedureDesignator", + "ActualArgSpec": [ + "0x55eadb4ae5f0-ActualArgSpec", + "0x55eadb4b1130-ActualArgSpec" + ] + }, + { + "id": "0x55eadb492c68-ProcedureDesignator", + "variantKey": "Name", + "Name": "0x55eadb492c68-Name" + }, + { + "id": "0x55eadb492c68-Name", + "source": "mod" + }, + { + "id": "0x55eadb4ae5f0-ActualArgSpec", + "ActualArg": "0x55eadb4ae5f0-ActualArg" + }, + { + "id": "0x55eadb4ae5f0-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4b28d0-Expr" + }, + { + "id": "0x55eadb4b28d0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55eadb4b28f0-Subtract" + }, + { + "id": "0x55eadb4b28f0-Subtract", + "left": "0x55eadb4b2710-Expr", + "right": "0x55eadb4b2630-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55eadb4b2710-Expr", + "variantKey": "Add", + "Add": "0x55eadb4b2730-Add" + }, + { + "id": "0x55eadb4b2730-Add", + "left": "0x55eadb4b0fe0-Expr", + "right": "0x55eadb4b0230-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb4b0fe0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55eadb4b1000-Parentheses" + }, + { + "id": "0x55eadb4b1000-Parentheses", + "Expr": "0x55eadb4b2550-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55eadb4b2550-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb4b2570-Multiply" + }, + { + "id": "0x55eadb4b2570-Multiply", + "left": "0x55eadb4b03f0-Expr", + "right": "0x55eadb4b05b0-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb4b03f0-Expr", + "variantKey": "Parentheses", + "Parentheses": "0x55eadb4b0410-Parentheses" + }, + { + "id": "0x55eadb4b0410-Parentheses", + "Expr": "0x55eadb4b04d0-Expr", + "op": "PARENTHESES" + }, + { + "id": "0x55eadb4b04d0-Expr", + "variantKey": "Subtract", + "Subtract": "0x55eadb4b04f0-Subtract" + }, + { + "id": "0x55eadb4b04f0-Subtract", + "left": "0x55eadb4b2400-Expr", + "right": "0x55eadb4b0310-Expr", + "op": "SUBTRACT" + }, + { + "id": "0x55eadb4b2400-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4acdf0-Designator" + }, + { + "id": "0x55eadb4acdf0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ace00-DataRef" + }, + { + "id": "0x55eadb4ace00-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ace00-Name" + }, + { + "id": "0x55eadb4ace00-Name", + "source": "i" + }, + { + "id": "0x55eadb4b0310-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b0330-LiteralConstant" + }, + { + "id": "0x55eadb4b0330-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b0330-IntLiteralConstant" + }, + { + "id": "0x55eadb4b0330-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b05b0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a02a0-Designator" + }, + { + "id": "0x55eadb4a02a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a02b0-DataRef" + }, + { + "id": "0x55eadb4a02b0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a02b0-Name" + }, + { + "id": "0x55eadb4a02b0-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b0230-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aa170-Designator" + }, + { + "id": "0x55eadb4aa170-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aa180-DataRef" + }, + { + "id": "0x55eadb4aa180-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aa180-Name" + }, + { + "id": "0x55eadb4aa180-Name", + "source": "j" + }, + { + "id": "0x55eadb4b2630-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b2650-LiteralConstant" + }, + { + "id": "0x55eadb4b2650-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b2650-IntLiteralConstant" + }, + { + "id": "0x55eadb4b2650-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b1130-ActualArgSpec", + "ActualArg": "0x55eadb4b1130-ActualArg" + }, + { + "id": "0x55eadb4b1130-ActualArg", + "variantKey": "Expr", + "Expr": "0x55eadb4b29b0-Expr" + }, + { + "id": "0x55eadb4b29b0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b29d0-LiteralConstant" + }, + { + "id": "0x55eadb4b29d0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b29d0-IntLiteralConstant" + }, + { + "id": "0x55eadb4b29d0-IntLiteralConstant", + "CharBlock": "20" + }, + { + "id": "0x55eadb4b2a90-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b2ab0-LiteralConstant" + }, + { + "id": "0x55eadb4b2ab0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b2ab0-IntLiteralConstant" + }, + { + "id": "0x55eadb4b2ab0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4b3018-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4a6f30-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a6f30-ExecutableConstruct" + }, + { + "id": "0x55eadb4a6f30-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a6f30-Statement" + }, + { + "id": "0x55eadb4a6f30-Statement", + "statement": "0x55eadb4a6f40-ActionStmt", + "source": "write(0, *)" + }, + { + "id": "0x55eadb4a6f40-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55eadb4b2e10-WriteStmt" + }, + { + "id": "0x55eadb4b2e10-WriteStmt", + "iounit": "0x55eadb4b2e10-IoUnit", + "format": "0x55eadb4b2e40-Format", + "controls": [], + "items": [] + }, + { + "id": "0x55eadb4b2e10-IoUnit", + "variantKey": "Expr", + "Expr": "0x55eadb4b2d30-Expr" + }, + { + "id": "0x55eadb4b2d30-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b2d50-LiteralConstant" + }, + { + "id": "0x55eadb4b2d50-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b2d50-IntLiteralConstant" + }, + { + "id": "0x55eadb4b2d50-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4b2e40-Format", + "variantKey": "Star", + "Star": "0x55eadb4b2e40-Star" + }, + { + "id": "0x55eadb4b2e40-Star" + }, + { + "id": "0x55eadb4b2f60-Statement", + "statement": "0x55eadb4b2f70-EndIfStmt", + "source": "end if" + }, + { + "id": "0x55eadb4b2f70-EndIfStmt" + }, + { + "id": "0x55eadb4b3080-Statement", + "statement": "0x55eadb4b3090-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b3090-EndDoStmt" + }, + { + "id": "0x55eadb4b31a0-Statement", + "statement": "0x55eadb4b31b0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b31b0-EndDoStmt" + }, + { + "id": "0x55eadb4a56b0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4a56b0-ExecutableConstruct" + }, + { + "id": "0x55eadb4a56b0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a56b0-Statement" + }, + { + "id": "0x55eadb4a56b0-Statement", + "statement": "0x55eadb4a56c0-ActionStmt", + "source": "write(0, *)" + }, + { + "id": "0x55eadb4a56c0-ActionStmt", + "variantKey": "WriteStmt", + "WriteStmt": "0x55eadb4b33a0-WriteStmt" + }, + { + "id": "0x55eadb4b33a0-WriteStmt", + "iounit": "0x55eadb4b33a0-IoUnit", + "format": "0x55eadb4b33d0-Format", + "controls": [], + "items": [] + }, + { + "id": "0x55eadb4b33a0-IoUnit", + "variantKey": "Expr", + "Expr": "0x55eadb4b32c0-Expr" + }, + { + "id": "0x55eadb4b32c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b32e0-LiteralConstant" + }, + { + "id": "0x55eadb4b32e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b32e0-IntLiteralConstant" + }, + { + "id": "0x55eadb4b32e0-IntLiteralConstant", + "CharBlock": "0" + }, + { + "id": "0x55eadb4b33d0-Format", + "variantKey": "Star", + "Star": "0x55eadb4b33d0-Star" + }, + { + "id": "0x55eadb4b33d0-Star" + }, + { + "id": "0x55eadb4b4660-Statement", + "statement": "0x55eadb4b4670-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x55eadb4b4670-EndSubroutineStmt" + }, + { + "id": "0x55eadb4af2b0-InternalSubprogram", + "variantKey": "SubroutineSubprogram", + "SubroutineSubprogram": "0x55eadb4bd350-SubroutineSubprogram" + }, + { + "id": "0x55eadb4bd350-SubroutineSubprogram", + "Statement": "0x55eadb4bd498-Statement", + "SpecificationPart": "0x55eadb4bd3f0-SpecificationPart", + "ExecutionPart": "0x55eadb4bd3d8-ExecutionPart", + "Statement": "0x55eadb4bd350-Statement" + }, + { + "id": "0x55eadb4bd498-Statement", + "statement": "0x55eadb4bd4a8-SubroutineStmt", + "source": "subroutine kernel_3mm(ni, nj, nk, nl, nm, e, a, b, f, c, d, g)" + }, + { + "id": "0x55eadb4bd4a8-SubroutineStmt", + "Name": "0x55eadb4bd4e0-Name", + "DummyArg": [ + "0x55eadb4ab570-DummyArg", + "0x55eadb496960-DummyArg", + "0x55eadb4969d0-DummyArg", + "0x55eadb496a10-DummyArg", + "0x55eadb496a50-DummyArg", + "0x55eadb49fc30-DummyArg", + "0x55eadb498fe0-DummyArg", + "0x55eadb4a5ad0-DummyArg", + "0x55eadb4a62e0-DummyArg", + "0x55eadb4a6580-DummyArg", + "0x55eadb4966f0-DummyArg", + "0x55eadb496d60-DummyArg" + ] + }, + { + "id": "0x55eadb4bd4e0-Name", + "source": "kernel_3mm" + }, + { + "id": "0x55eadb4ab570-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb4ab570-Name" + }, + { + "id": "0x55eadb4ab570-Name", + "source": "ni" + }, + { + "id": "0x55eadb496960-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496960-Name" + }, + { + "id": "0x55eadb496960-Name", + "source": "nj" + }, + { + "id": "0x55eadb4969d0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb4969d0-Name" + }, + { + "id": "0x55eadb4969d0-Name", + "source": "nk" + }, + { + "id": "0x55eadb496a10-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496a10-Name" + }, + { + "id": "0x55eadb496a10-Name", + "source": "nl" + }, + { + "id": "0x55eadb496a50-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496a50-Name" + }, + { + "id": "0x55eadb496a50-Name", + "source": "nm" + }, + { + "id": "0x55eadb49fc30-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb49fc30-Name" + }, + { + "id": "0x55eadb49fc30-Name", + "source": "e" + }, + { + "id": "0x55eadb498fe0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb498fe0-Name" + }, + { + "id": "0x55eadb498fe0-Name", + "source": "a" + }, + { + "id": "0x55eadb4a5ad0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb4a5ad0-Name" + }, + { + "id": "0x55eadb4a5ad0-Name", + "source": "b" + }, + { + "id": "0x55eadb4a62e0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb4a62e0-Name" + }, + { + "id": "0x55eadb4a62e0-Name", + "source": "f" + }, + { + "id": "0x55eadb4a6580-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb4a6580-Name" + }, + { + "id": "0x55eadb4a6580-Name", + "source": "c" + }, + { + "id": "0x55eadb4966f0-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb4966f0-Name" + }, + { + "id": "0x55eadb4966f0-Name", + "source": "d" + }, + { + "id": "0x55eadb496d60-DummyArg", + "variantKey": "Name", + "Name": "0x55eadb496d60-Name" + }, + { + "id": "0x55eadb496d60-Name", + "source": "g" + }, + { + "id": "0x55eadb4bd3f0-SpecificationPart", + "ImplicitPart": "0x55eadb4bd408-ImplicitPart", + "DeclarationConstruct": [ + "0x55eadb4ad270-DeclarationConstruct", + "0x55eadb4a6ab0-DeclarationConstruct", + "0x55eadb4b3680-DeclarationConstruct", + "0x55eadb4b3ab0-DeclarationConstruct", + "0x55eadb4b3ee0-DeclarationConstruct", + "0x55eadb4b4310-DeclarationConstruct", + "0x55eadb4b2800-DeclarationConstruct", + "0x55eadb4b1240-DeclarationConstruct", + "0x55eadb4aa370-DeclarationConstruct" + ] + }, + { + "id": "0x55eadb4bd408-ImplicitPart" + }, + { + "id": "0x55eadb4ad270-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4ad270-SpecificationConstruct" + }, + { + "id": "0x55eadb4ad270-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4ad270-Statement" + }, + { + "id": "0x55eadb4ad270-Statement", + "statement": "0x55eadb4af0b0-TypeDeclarationStmt", + "source": "double precision, dimension(nk, ni) :: a" + }, + { + "id": "0x55eadb4af0b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4af0e0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4935b0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4b4f80-EntityDecl" + ] + }, + { + "id": "0x55eadb4af0e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4af0e0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4af0e0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4af0e0-DoublePrecision" + }, + { + "id": "0x55eadb4af0e0-DoublePrecision" + }, + { + "id": "0x55eadb4935b0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4935b0-ArraySpec" + }, + { + "id": "0x55eadb4935b0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb48dce0-ExplicitShapeSpec", + "0x55eadb48dc50-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb48dce0-ExplicitShapeSpec", + "upper_bound": "0x55eadb48dce0-SpecificationExpr" + }, + { + "id": "0x55eadb48dce0-SpecificationExpr", + "Expr": "0x55eadb4b4db0-Expr" + }, + { + "id": "0x55eadb4b4db0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ab9a0-Designator" + }, + { + "id": "0x55eadb4ab9a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ab9b0-DataRef" + }, + { + "id": "0x55eadb4ab9b0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ab9b0-Name" + }, + { + "id": "0x55eadb4ab9b0-Name", + "source": "nk" + }, + { + "id": "0x55eadb48dc50-ExplicitShapeSpec", + "upper_bound": "0x55eadb48dc50-SpecificationExpr" + }, + { + "id": "0x55eadb48dc50-SpecificationExpr", + "Expr": "0x55eadb4b4e90-Expr" + }, + { + "id": "0x55eadb4b4e90-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b10c0-Designator" + }, + { + "id": "0x55eadb4b10c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b10d0-DataRef" + }, + { + "id": "0x55eadb4b10d0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b10d0-Name" + }, + { + "id": "0x55eadb4b10d0-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b4f80-EntityDecl", + "Name": "0x55eadb4b5038-Name" + }, + { + "id": "0x55eadb4b5038-Name", + "source": "a" + }, + { + "id": "0x55eadb4a6ab0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4a6ab0-SpecificationConstruct" + }, + { + "id": "0x55eadb4a6ab0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4a6ab0-Statement" + }, + { + "id": "0x55eadb4a6ab0-Statement", + "statement": "0x55eadb49fd80-TypeDeclarationStmt", + "source": "double precision, dimension(nj, nk) :: b" + }, + { + "id": "0x55eadb49fd80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb49fdb0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4a7670-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4b4a10-EntityDecl" + ] + }, + { + "id": "0x55eadb49fdb0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb49fdb0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb49fdb0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb49fdb0-DoublePrecision" + }, + { + "id": "0x55eadb49fdb0-DoublePrecision" + }, + { + "id": "0x55eadb4a7670-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4a7670-ArraySpec" + }, + { + "id": "0x55eadb4a7670-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4aa3d0-ExplicitShapeSpec", + "0x55eadb49fd60-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4aa3d0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4aa3d0-SpecificationExpr" + }, + { + "id": "0x55eadb4aa3d0-SpecificationExpr", + "Expr": "0x55eadb4b4840-Expr" + }, + { + "id": "0x55eadb4b4840-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ae7f0-Designator" + }, + { + "id": "0x55eadb4ae7f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ae800-DataRef" + }, + { + "id": "0x55eadb4ae800-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ae800-Name" + }, + { + "id": "0x55eadb4ae800-Name", + "source": "nj" + }, + { + "id": "0x55eadb49fd60-ExplicitShapeSpec", + "upper_bound": "0x55eadb49fd60-SpecificationExpr" + }, + { + "id": "0x55eadb49fd60-SpecificationExpr", + "Expr": "0x55eadb4b4920-Expr" + }, + { + "id": "0x55eadb4b4920-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b0dc0-Designator" + }, + { + "id": "0x55eadb4b0dc0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b0dd0-DataRef" + }, + { + "id": "0x55eadb4b0dd0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b0dd0-Name" + }, + { + "id": "0x55eadb4b0dd0-Name", + "source": "nk" + }, + { + "id": "0x55eadb4b4a10-EntityDecl", + "Name": "0x55eadb4b4ac8-Name" + }, + { + "id": "0x55eadb4b4ac8-Name", + "source": "b" + }, + { + "id": "0x55eadb4b3680-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4b3680-SpecificationConstruct" + }, + { + "id": "0x55eadb4b3680-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b3680-Statement" + }, + { + "id": "0x55eadb4b3680-Statement", + "statement": "0x55eadb4aa2e0-TypeDeclarationStmt", + "source": "double precision, dimension(nm, nj) :: c" + }, + { + "id": "0x55eadb4aa2e0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4aa310-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4a5710-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4b3590-EntityDecl" + ] + }, + { + "id": "0x55eadb4aa310-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4aa310-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4aa310-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4aa310-DoublePrecision" + }, + { + "id": "0x55eadb4aa310-DoublePrecision" + }, + { + "id": "0x55eadb4a5710-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4a5710-ArraySpec" + }, + { + "id": "0x55eadb4a5710-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4b4cc0-ExplicitShapeSpec", + "0x55eadb4afe70-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4b4cc0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b4cc0-SpecificationExpr" + }, + { + "id": "0x55eadb4b4cc0-SpecificationExpr", + "Expr": "0x55eadb4b4af0-Expr" + }, + { + "id": "0x55eadb4b4af0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ae850-Designator" + }, + { + "id": "0x55eadb4ae850-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ae860-DataRef" + }, + { + "id": "0x55eadb4ae860-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ae860-Name" + }, + { + "id": "0x55eadb4ae860-Name", + "source": "nm" + }, + { + "id": "0x55eadb4afe70-ExplicitShapeSpec", + "upper_bound": "0x55eadb4afe70-SpecificationExpr" + }, + { + "id": "0x55eadb4afe70-SpecificationExpr", + "Expr": "0x55eadb4b4bd0-Expr" + }, + { + "id": "0x55eadb4b4bd0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a59d0-Designator" + }, + { + "id": "0x55eadb4a59d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a59e0-DataRef" + }, + { + "id": "0x55eadb4a59e0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a59e0-Name" + }, + { + "id": "0x55eadb4a59e0-Name", + "source": "nj" + }, + { + "id": "0x55eadb4b3590-EntityDecl", + "Name": "0x55eadb4b3648-Name" + }, + { + "id": "0x55eadb4b3648-Name", + "source": "c" + }, + { + "id": "0x55eadb4b3ab0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4b3ab0-SpecificationConstruct" + }, + { + "id": "0x55eadb4b3ab0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b3ab0-Statement" + }, + { + "id": "0x55eadb4b3ab0-Statement", + "statement": "0x55eadb493370-TypeDeclarationStmt", + "source": "double precision, dimension(nl, nm) :: d" + }, + { + "id": "0x55eadb493370-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4933a0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb4a9c40-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4b39c0-EntityDecl" + ] + }, + { + "id": "0x55eadb4933a0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4933a0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4933a0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4933a0-DoublePrecision" + }, + { + "id": "0x55eadb4933a0-DoublePrecision" + }, + { + "id": "0x55eadb4a9c40-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb4a9c40-ArraySpec" + }, + { + "id": "0x55eadb4a9c40-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4b3990-ExplicitShapeSpec", + "0x55eadb4b3960-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4b3990-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3990-SpecificationExpr" + }, + { + "id": "0x55eadb4b3990-SpecificationExpr", + "Expr": "0x55eadb4b36d0-Expr" + }, + { + "id": "0x55eadb4b36d0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a5eb0-Designator" + }, + { + "id": "0x55eadb4a5eb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a5ec0-DataRef" + }, + { + "id": "0x55eadb4a5ec0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a5ec0-Name" + }, + { + "id": "0x55eadb4a5ec0-Name", + "source": "nl" + }, + { + "id": "0x55eadb4b3960-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3960-SpecificationExpr" + }, + { + "id": "0x55eadb4b3960-SpecificationExpr", + "Expr": "0x55eadb4b3870-Expr" + }, + { + "id": "0x55eadb4b3870-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b3810-Designator" + }, + { + "id": "0x55eadb4b3810-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b3820-DataRef" + }, + { + "id": "0x55eadb4b3820-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b3820-Name" + }, + { + "id": "0x55eadb4b3820-Name", + "source": "nm" + }, + { + "id": "0x55eadb4b39c0-EntityDecl", + "Name": "0x55eadb4b3a78-Name" + }, + { + "id": "0x55eadb4b3a78-Name", + "source": "d" + }, + { + "id": "0x55eadb4b3ee0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4b3ee0-SpecificationConstruct" + }, + { + "id": "0x55eadb4b3ee0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b3ee0-Statement" + }, + { + "id": "0x55eadb4b3ee0-Statement", + "statement": "0x55eadb4963d0-TypeDeclarationStmt", + "source": "double precision, dimension(nj, ni) :: e" + }, + { + "id": "0x55eadb4963d0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb496400-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb49f860-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4b3df0-EntityDecl" + ] + }, + { + "id": "0x55eadb496400-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb496400-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb496400-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb496400-DoublePrecision" + }, + { + "id": "0x55eadb496400-DoublePrecision" + }, + { + "id": "0x55eadb49f860-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb49f860-ArraySpec" + }, + { + "id": "0x55eadb49f860-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4b3dc0-ExplicitShapeSpec", + "0x55eadb4b3d90-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4b3dc0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3dc0-SpecificationExpr" + }, + { + "id": "0x55eadb4b3dc0-SpecificationExpr", + "Expr": "0x55eadb4b3b00-Expr" + }, + { + "id": "0x55eadb4b3b00-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b1290-Designator" + }, + { + "id": "0x55eadb4b1290-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b12a0-DataRef" + }, + { + "id": "0x55eadb4b12a0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b12a0-Name" + }, + { + "id": "0x55eadb4b12a0-Name", + "source": "nj" + }, + { + "id": "0x55eadb4b3d90-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b3d90-SpecificationExpr" + }, + { + "id": "0x55eadb4b3d90-SpecificationExpr", + "Expr": "0x55eadb4b3ca0-Expr" + }, + { + "id": "0x55eadb4b3ca0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b3c40-Designator" + }, + { + "id": "0x55eadb4b3c40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b3c50-DataRef" + }, + { + "id": "0x55eadb4b3c50-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b3c50-Name" + }, + { + "id": "0x55eadb4b3c50-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b3df0-EntityDecl", + "Name": "0x55eadb4b3ea8-Name" + }, + { + "id": "0x55eadb4b3ea8-Name", + "source": "e" + }, + { + "id": "0x55eadb4b4310-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4b4310-SpecificationConstruct" + }, + { + "id": "0x55eadb4b4310-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b4310-Statement" + }, + { + "id": "0x55eadb4b4310-Statement", + "statement": "0x55eadb4afd80-TypeDeclarationStmt", + "source": "double precision, dimension(nl, nj) :: f" + }, + { + "id": "0x55eadb4afd80-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4afdb0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb48d6a0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4b4220-EntityDecl" + ] + }, + { + "id": "0x55eadb4afdb0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4afdb0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4afdb0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4afdb0-DoublePrecision" + }, + { + "id": "0x55eadb4afdb0-DoublePrecision" + }, + { + "id": "0x55eadb48d6a0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb48d6a0-ArraySpec" + }, + { + "id": "0x55eadb48d6a0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb4b41f0-ExplicitShapeSpec", + "0x55eadb4b41c0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb4b41f0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b41f0-SpecificationExpr" + }, + { + "id": "0x55eadb4b41f0-SpecificationExpr", + "Expr": "0x55eadb4b3f30-Expr" + }, + { + "id": "0x55eadb4b3f30-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b37b0-Designator" + }, + { + "id": "0x55eadb4b37b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b37c0-DataRef" + }, + { + "id": "0x55eadb4b37c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b37c0-Name" + }, + { + "id": "0x55eadb4b37c0-Name", + "source": "nl" + }, + { + "id": "0x55eadb4b41c0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b41c0-SpecificationExpr" + }, + { + "id": "0x55eadb4b41c0-SpecificationExpr", + "Expr": "0x55eadb4b40d0-Expr" + }, + { + "id": "0x55eadb4b40d0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b4070-Designator" + }, + { + "id": "0x55eadb4b4070-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b4080-DataRef" + }, + { + "id": "0x55eadb4b4080-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b4080-Name" + }, + { + "id": "0x55eadb4b4080-Name", + "source": "nj" + }, + { + "id": "0x55eadb4b4220-EntityDecl", + "Name": "0x55eadb4b42d8-Name" + }, + { + "id": "0x55eadb4b42d8-Name", + "source": "f" + }, + { + "id": "0x55eadb4b2800-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4b2800-SpecificationConstruct" + }, + { + "id": "0x55eadb4b2800-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b2800-Statement" + }, + { + "id": "0x55eadb4b2800-Statement", + "statement": "0x55eadb4afe90-TypeDeclarationStmt", + "source": "double precision, dimension(nl, ni) :: g" + }, + { + "id": "0x55eadb4afe90-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4afec0-DeclarationTypeSpec", + "AttrSpec": [ + "0x55eadb493bf0-AttrSpec" + ], + "EntityDecl": [ + "0x55eadb4b52b0-EntityDecl" + ] + }, + { + "id": "0x55eadb4afec0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4afec0-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4afec0-IntrinsicTypeSpec", + "variantKey": "DoublePrecision", + "DoublePrecision": "0x55eadb4afec0-DoublePrecision" + }, + { + "id": "0x55eadb4afec0-DoublePrecision" + }, + { + "id": "0x55eadb493bf0-AttrSpec", + "variantKey": "ArraySpec", + "ArraySpec": "0x55eadb493bf0-ArraySpec" + }, + { + "id": "0x55eadb493bf0-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55eadb49ffa0-ExplicitShapeSpec", + "0x55eadb4b45f0-ExplicitShapeSpec" + ] + }, + { + "id": "0x55eadb49ffa0-ExplicitShapeSpec", + "upper_bound": "0x55eadb49ffa0-SpecificationExpr" + }, + { + "id": "0x55eadb49ffa0-SpecificationExpr", + "Expr": "0x55eadb4b4360-Expr" + }, + { + "id": "0x55eadb4b4360-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b3be0-Designator" + }, + { + "id": "0x55eadb4b3be0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b3bf0-DataRef" + }, + { + "id": "0x55eadb4b3bf0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b3bf0-Name" + }, + { + "id": "0x55eadb4b3bf0-Name", + "source": "nl" + }, + { + "id": "0x55eadb4b45f0-ExplicitShapeSpec", + "upper_bound": "0x55eadb4b45f0-SpecificationExpr" + }, + { + "id": "0x55eadb4b45f0-SpecificationExpr", + "Expr": "0x55eadb4b4500-Expr" + }, + { + "id": "0x55eadb4b4500-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b44a0-Designator" + }, + { + "id": "0x55eadb4b44a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b44b0-DataRef" + }, + { + "id": "0x55eadb4b44b0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b44b0-Name" + }, + { + "id": "0x55eadb4b44b0-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b52b0-EntityDecl", + "Name": "0x55eadb4b5368-Name" + }, + { + "id": "0x55eadb4b5368-Name", + "source": "g" + }, + { + "id": "0x55eadb4b1240-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4b1240-SpecificationConstruct" + }, + { + "id": "0x55eadb4b1240-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b1240-Statement" + }, + { + "id": "0x55eadb4b1240-Statement", + "statement": "0x55eadb4abfd0-TypeDeclarationStmt", + "source": "integer :: ni, nj, nk, nl, nm" + }, + { + "id": "0x55eadb4abfd0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4ac000-DeclarationTypeSpec", + "EntityDecl": [ + "0x55eadb4b5760-EntityDecl", + "0x55eadb4b53a0-EntityDecl", + "0x55eadb4b5490-EntityDecl", + "0x55eadb4b5580-EntityDecl", + "0x55eadb4b5670-EntityDecl" + ] + }, + { + "id": "0x55eadb4ac000-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4ac000-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4ac000-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55eadb4ac000-IntegerTypeSpec" + }, + { + "id": "0x55eadb4ac000-IntegerTypeSpec" + }, + { + "id": "0x55eadb4b5760-EntityDecl", + "Name": "0x55eadb4b5818-Name" + }, + { + "id": "0x55eadb4b5818-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b53a0-EntityDecl", + "Name": "0x55eadb4b5458-Name" + }, + { + "id": "0x55eadb4b5458-Name", + "source": "nj" + }, + { + "id": "0x55eadb4b5490-EntityDecl", + "Name": "0x55eadb4b5548-Name" + }, + { + "id": "0x55eadb4b5548-Name", + "source": "nk" + }, + { + "id": "0x55eadb4b5580-EntityDecl", + "Name": "0x55eadb4b5638-Name" + }, + { + "id": "0x55eadb4b5638-Name", + "source": "nl" + }, + { + "id": "0x55eadb4b5670-EntityDecl", + "Name": "0x55eadb4b5728-Name" + }, + { + "id": "0x55eadb4b5728-Name", + "source": "nm" + }, + { + "id": "0x55eadb4aa370-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55eadb4aa370-SpecificationConstruct" + }, + { + "id": "0x55eadb4aa370-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4aa370-Statement" + }, + { + "id": "0x55eadb4aa370-Statement", + "statement": "0x55eadb4aba60-TypeDeclarationStmt", + "source": "integer :: i, j, k" + }, + { + "id": "0x55eadb4aba60-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55eadb4aba90-DeclarationTypeSpec", + "EntityDecl": [ + "0x55eadb4b5a30-EntityDecl", + "0x55eadb4b5850-EntityDecl", + "0x55eadb4b5940-EntityDecl" + ] + }, + { + "id": "0x55eadb4aba90-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55eadb4aba90-IntrinsicTypeSpec" + }, + { + "id": "0x55eadb4aba90-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55eadb4aba90-IntegerTypeSpec" + }, + { + "id": "0x55eadb4aba90-IntegerTypeSpec" + }, + { + "id": "0x55eadb4b5a30-EntityDecl", + "Name": "0x55eadb4b5ae8-Name" + }, + { + "id": "0x55eadb4b5ae8-Name", + "source": "i" + }, + { + "id": "0x55eadb4b5850-EntityDecl", + "Name": "0x55eadb4b5908-Name" + }, + { + "id": "0x55eadb4b5908-Name", + "source": "j" + }, + { + "id": "0x55eadb4b5940-EntityDecl", + "Name": "0x55eadb4b59f8-Name" + }, + { + "id": "0x55eadb4b59f8-Name", + "source": "k" + }, + { + "id": "0x55eadb4bd3d8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55eadb4b7ae0-ExecutionPartConstruct", + "0x55eadb4ba340-ExecutionPartConstruct", + "0x55eadb4bcba0-ExecutionPartConstruct" + ] + }, + { + "id": "0x55eadb4bd3d8-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4b7ae0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b7ae0-ExecutableConstruct" + }, + { + "id": "0x55eadb4b7ae0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b8680-DoConstruct" + }, + { + "id": "0x55eadb4b8680-DoConstruct", + "Statement": "0x55eadb4b86d8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4b7940-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b8680-Statement" + }, + { + "id": "0x55eadb4b86d8-Statement", + "statement": "0x55eadb4b86e8-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x55eadb4b86e8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b86e8-LoopControl" + }, + { + "id": "0x55eadb4b86e8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b86e8-LoopBounds" + }, + { + "id": "0x55eadb4b86e8-LoopBounds", + "var": "0x55eadb4b86e8-Name", + "lower": "0x55eadb4b5b10-Expr", + "upper": "0x55eadb4b5bf0-Expr" + }, + { + "id": "0x55eadb4b86e8-Name", + "source": "i" + }, + { + "id": "0x55eadb4b5b10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b5b30-LiteralConstant" + }, + { + "id": "0x55eadb4b5b30-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b5b30-IntLiteralConstant" + }, + { + "id": "0x55eadb4b5b30-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b5bf0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4af240-Designator" + }, + { + "id": "0x55eadb4af240-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4af250-DataRef" + }, + { + "id": "0x55eadb4af250-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4af250-Name" + }, + { + "id": "0x55eadb4af250-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b86c0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4b7940-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b7940-ExecutableConstruct" + }, + { + "id": "0x55eadb4b7940-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b8560-DoConstruct" + }, + { + "id": "0x55eadb4b8560-DoConstruct", + "Statement": "0x55eadb4b85b8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4b6400-ExecutionPartConstruct", + "0x55eadb4b78e0-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b8560-Statement" + }, + { + "id": "0x55eadb4b85b8-Statement", + "statement": "0x55eadb4b85c8-NonLabelDoStmt", + "source": "do j = 1, nj" + }, + { + "id": "0x55eadb4b85c8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b85c8-LoopControl" + }, + { + "id": "0x55eadb4b85c8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b85c8-LoopBounds" + }, + { + "id": "0x55eadb4b85c8-LoopBounds", + "var": "0x55eadb4b85c8-Name", + "lower": "0x55eadb4b5cd0-Expr", + "upper": "0x55eadb4b5db0-Expr" + }, + { + "id": "0x55eadb4b85c8-Name", + "source": "j" + }, + { + "id": "0x55eadb4b5cd0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b5cf0-LiteralConstant" + }, + { + "id": "0x55eadb4b5cf0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b5cf0-IntLiteralConstant" + }, + { + "id": "0x55eadb4b5cf0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b5db0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b4010-Designator" + }, + { + "id": "0x55eadb4b4010-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b4020-DataRef" + }, + { + "id": "0x55eadb4b4020-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b4020-Name" + }, + { + "id": "0x55eadb4b4020-Name", + "source": "nj" + }, + { + "id": "0x55eadb4b85a0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4b6400-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b6400-ExecutableConstruct" + }, + { + "id": "0x55eadb4b6400-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b6400-Statement" + }, + { + "id": "0x55eadb4b6400-Statement", + "statement": "0x55eadb4b6410-ActionStmt", + "source": "e(j, i) = 0.0" + }, + { + "id": "0x55eadb4b6410-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4b62e0-AssignmentStmt" + }, + { + "id": "0x55eadb4b62e0-AssignmentStmt", + "Variable": "0x55eadb4b63c0-Variable", + "Expr": "0x55eadb4b62f0-Expr" + }, + { + "id": "0x55eadb4b63c0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4dd240-Designator" + }, + { + "id": "0x55eadb4dd240-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4dd250-DataRef" + }, + { + "id": "0x55eadb4dd250-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4c0f20-ArrayElement" + }, + { + "id": "0x55eadb4c0f20-ArrayElement", + "base": "0x55eadb4c0f20-DataRef", + "subscripts": [ + "0x55eadb5730e0-SectionSubscript", + "0x55eadb573130-SectionSubscript" + ] + }, + { + "id": "0x55eadb4c0f20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4c0f20-Name" + }, + { + "id": "0x55eadb4c0f20-Name", + "source": "e" + }, + { + "id": "0x55eadb5730e0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4ae2e0-Expr" + }, + { + "id": "0x55eadb4ae2e0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b5fd0-Designator" + }, + { + "id": "0x55eadb4b5fd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b5fe0-DataRef" + }, + { + "id": "0x55eadb4b5fe0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b5fe0-Name" + }, + { + "id": "0x55eadb4b5fe0-Name", + "source": "j" + }, + { + "id": "0x55eadb573130-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4aff10-Expr" + }, + { + "id": "0x55eadb4aff10-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4aef10-Designator" + }, + { + "id": "0x55eadb4aef10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4aef20-DataRef" + }, + { + "id": "0x55eadb4aef20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4aef20-Name" + }, + { + "id": "0x55eadb4aef20-Name", + "source": "i" + }, + { + "id": "0x55eadb4b62f0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b6310-LiteralConstant" + }, + { + "id": "0x55eadb4b6310-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55eadb4b6310-RealLiteralConstant" + }, + { + "id": "0x55eadb4b6310-RealLiteralConstant", + "real": "0x55eadb4b6310-Real" + }, + { + "id": "0x55eadb4b6310-Real", + "source": "0.0" + }, + { + "id": "0x55eadb4b78e0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b78e0-ExecutableConstruct" + }, + { + "id": "0x55eadb4b78e0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b8440-DoConstruct" + }, + { + "id": "0x55eadb4b8440-DoConstruct", + "Statement": "0x55eadb4b8498-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4b83f0-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b8440-Statement" + }, + { + "id": "0x55eadb4b8498-Statement", + "statement": "0x55eadb4b84a8-NonLabelDoStmt", + "source": "do k = 1, nk" + }, + { + "id": "0x55eadb4b84a8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b84a8-LoopControl" + }, + { + "id": "0x55eadb4b84a8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b84a8-LoopBounds" + }, + { + "id": "0x55eadb4b84a8-LoopBounds", + "var": "0x55eadb4b84a8-Name", + "lower": "0x55eadb4b6450-Expr", + "upper": "0x55eadb4b6530-Expr" + }, + { + "id": "0x55eadb4b84a8-Name", + "source": "k" + }, + { + "id": "0x55eadb4b6450-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b6470-LiteralConstant" + }, + { + "id": "0x55eadb4b6470-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b6470-IntLiteralConstant" + }, + { + "id": "0x55eadb4b6470-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b6530-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a9a20-Designator" + }, + { + "id": "0x55eadb4a9a20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a9a30-DataRef" + }, + { + "id": "0x55eadb4a9a30-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a9a30-Name" + }, + { + "id": "0x55eadb4a9a30-Name", + "source": "nk" + }, + { + "id": "0x55eadb4b8480-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4b83f0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b83f0-ExecutableConstruct" + }, + { + "id": "0x55eadb4b83f0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b83f0-Statement" + }, + { + "id": "0x55eadb4b83f0-Statement", + "statement": "0x55eadb4b8400-ActionStmt", + "source": "e(j, i) = e(j, i) + a(k, i) * b(j, k)" + }, + { + "id": "0x55eadb4b8400-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4b82d0-AssignmentStmt" + }, + { + "id": "0x55eadb4b82d0-AssignmentStmt", + "Variable": "0x55eadb4b83b0-Variable", + "Expr": "0x55eadb4b82e0-Expr" + }, + { + "id": "0x55eadb4b83b0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4abca0-Designator" + }, + { + "id": "0x55eadb4abca0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4abcb0-DataRef" + }, + { + "id": "0x55eadb4abcb0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4c20f0-ArrayElement" + }, + { + "id": "0x55eadb4c20f0-ArrayElement", + "base": "0x55eadb4c20f0-DataRef", + "subscripts": [ + "0x55eadb4b0d70-SectionSubscript", + "0x55eadb573890-SectionSubscript" + ] + }, + { + "id": "0x55eadb4c20f0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4c20f0-Name" + }, + { + "id": "0x55eadb4c20f0-Name", + "source": "e" + }, + { + "id": "0x55eadb4b0d70-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b5e90-Expr" + }, + { + "id": "0x55eadb4b5e90-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b66f0-Designator" + }, + { + "id": "0x55eadb4b66f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6700-DataRef" + }, + { + "id": "0x55eadb4b6700-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6700-Name" + }, + { + "id": "0x55eadb4b6700-Name", + "source": "j" + }, + { + "id": "0x55eadb573890-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b6030-Expr" + }, + { + "id": "0x55eadb4b6030-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b4440-Designator" + }, + { + "id": "0x55eadb4b4440-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b4450-DataRef" + }, + { + "id": "0x55eadb4b4450-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b4450-Name" + }, + { + "id": "0x55eadb4b4450-Name", + "source": "i" + }, + { + "id": "0x55eadb4b82e0-Expr", + "variantKey": "Add", + "Add": "0x55eadb4b8300-Add" + }, + { + "id": "0x55eadb4b8300-Add", + "left": "0x55eadb4b81f0-Expr", + "right": "0x55eadb4b8110-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb4b81f0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4a9110-Designator" + }, + { + "id": "0x55eadb4a9110-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a9120-DataRef" + }, + { + "id": "0x55eadb4a9120-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4a3af0-ArrayElement" + }, + { + "id": "0x55eadb4a3af0-ArrayElement", + "base": "0x55eadb4a3af0-DataRef", + "subscripts": [ + "0x55eadb573ab0-SectionSubscript", + "0x55eadb573b00-SectionSubscript" + ] + }, + { + "id": "0x55eadb4a3af0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4a3af0-Name" + }, + { + "id": "0x55eadb4a3af0-Name", + "source": "e" + }, + { + "id": "0x55eadb573ab0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b6610-Expr" + }, + { + "id": "0x55eadb4b6610-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b6dd0-Designator" + }, + { + "id": "0x55eadb4b6dd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6de0-DataRef" + }, + { + "id": "0x55eadb4b6de0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6de0-Name" + }, + { + "id": "0x55eadb4b6de0-Name", + "source": "j" + }, + { + "id": "0x55eadb573b00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b6750-Expr" + }, + { + "id": "0x55eadb4b6750-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b6bd0-Designator" + }, + { + "id": "0x55eadb4b6bd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6be0-DataRef" + }, + { + "id": "0x55eadb4b6be0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6be0-Name" + }, + { + "id": "0x55eadb4b6be0-Name", + "source": "i" + }, + { + "id": "0x55eadb4b8110-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb4b8130-Multiply" + }, + { + "id": "0x55eadb4b8130-Multiply", + "left": "0x55eadb4b8030-Expr", + "right": "0x55eadb4b7f50-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb4b8030-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb573e40-Designator" + }, + { + "id": "0x55eadb573e40-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb573e50-DataRef" + }, + { + "id": "0x55eadb573e50-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4b6240-ArrayElement" + }, + { + "id": "0x55eadb4b6240-ArrayElement", + "base": "0x55eadb4b6240-DataRef", + "subscripts": [ + "0x55eadb573db0-SectionSubscript", + "0x55eadb573e00-SectionSubscript" + ] + }, + { + "id": "0x55eadb4b6240-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6240-Name" + }, + { + "id": "0x55eadb4b6240-Name", + "source": "a" + }, + { + "id": "0x55eadb573db0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b6c30-Expr" + }, + { + "id": "0x55eadb4b6c30-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b74b0-Designator" + }, + { + "id": "0x55eadb4b74b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b74c0-DataRef" + }, + { + "id": "0x55eadb4b74c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b74c0-Name" + }, + { + "id": "0x55eadb4b74c0-Name", + "source": "k" + }, + { + "id": "0x55eadb573e00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b6e30-Expr" + }, + { + "id": "0x55eadb4b6e30-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b72b0-Designator" + }, + { + "id": "0x55eadb4b72b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b72c0-DataRef" + }, + { + "id": "0x55eadb4b72c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b72c0-Name" + }, + { + "id": "0x55eadb4b72c0-Name", + "source": "i" + }, + { + "id": "0x55eadb4b7f50-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb574230-Designator" + }, + { + "id": "0x55eadb574230-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb574240-DataRef" + }, + { + "id": "0x55eadb574240-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4b7700-ArrayElement" + }, + { + "id": "0x55eadb4b7700-ArrayElement", + "base": "0x55eadb4b7700-DataRef", + "subscripts": [ + "0x55eadb5741a0-SectionSubscript", + "0x55eadb5741f0-SectionSubscript" + ] + }, + { + "id": "0x55eadb4b7700-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7700-Name" + }, + { + "id": "0x55eadb4b7700-Name", + "source": "b" + }, + { + "id": "0x55eadb5741a0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b7310-Expr" + }, + { + "id": "0x55eadb4b7310-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b7b90-Designator" + }, + { + "id": "0x55eadb4b7b90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7ba0-DataRef" + }, + { + "id": "0x55eadb4b7ba0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7ba0-Name" + }, + { + "id": "0x55eadb4b7ba0-Name", + "source": "j" + }, + { + "id": "0x55eadb5741f0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b7510-Expr" + }, + { + "id": "0x55eadb4b7510-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b7990-Designator" + }, + { + "id": "0x55eadb4b7990-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b79a0-DataRef" + }, + { + "id": "0x55eadb4b79a0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b79a0-Name" + }, + { + "id": "0x55eadb4b79a0-Name", + "source": "k" + }, + { + "id": "0x55eadb4b8440-Statement", + "statement": "0x55eadb4b8450-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b8450-EndDoStmt" + }, + { + "id": "0x55eadb4b8560-Statement", + "statement": "0x55eadb4b8570-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b8570-EndDoStmt" + }, + { + "id": "0x55eadb4b8680-Statement", + "statement": "0x55eadb4b8690-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b8690-EndDoStmt" + }, + { + "id": "0x55eadb4ba340-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4ba340-ExecutableConstruct" + }, + { + "id": "0x55eadb4ba340-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4baee0-DoConstruct" + }, + { + "id": "0x55eadb4baee0-DoConstruct", + "Statement": "0x55eadb4baf38-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4ba1a0-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4baee0-Statement" + }, + { + "id": "0x55eadb4baf38-Statement", + "statement": "0x55eadb4baf48-NonLabelDoStmt", + "source": "do i = 1, nj" + }, + { + "id": "0x55eadb4baf48-NonLabelDoStmt", + "LoopControl": "0x55eadb4baf48-LoopControl" + }, + { + "id": "0x55eadb4baf48-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4baf48-LoopBounds" + }, + { + "id": "0x55eadb4baf48-LoopBounds", + "var": "0x55eadb4baf48-Name", + "lower": "0x55eadb4b87a0-Expr", + "upper": "0x55eadb4b8880-Expr" + }, + { + "id": "0x55eadb4baf48-Name", + "source": "i" + }, + { + "id": "0x55eadb4b87a0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b87c0-LiteralConstant" + }, + { + "id": "0x55eadb4b87c0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b87c0-IntLiteralConstant" + }, + { + "id": "0x55eadb4b87c0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b8880-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b7cd0-Designator" + }, + { + "id": "0x55eadb4b7cd0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7ce0-DataRef" + }, + { + "id": "0x55eadb4b7ce0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7ce0-Name" + }, + { + "id": "0x55eadb4b7ce0-Name", + "source": "nj" + }, + { + "id": "0x55eadb4baf20-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4ba1a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4ba1a0-ExecutableConstruct" + }, + { + "id": "0x55eadb4ba1a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4badc0-DoConstruct" + }, + { + "id": "0x55eadb4badc0-DoConstruct", + "Statement": "0x55eadb4bae18-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4b6b80-ExecutionPartConstruct", + "0x55eadb4ba140-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4badc0-Statement" + }, + { + "id": "0x55eadb4bae18-Statement", + "statement": "0x55eadb4bae28-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x55eadb4bae28-NonLabelDoStmt", + "LoopControl": "0x55eadb4bae28-LoopControl" + }, + { + "id": "0x55eadb4bae28-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4bae28-LoopBounds" + }, + { + "id": "0x55eadb4bae28-LoopBounds", + "var": "0x55eadb4bae28-Name", + "lower": "0x55eadb4b8960-Expr", + "upper": "0x55eadb4b8a40-Expr" + }, + { + "id": "0x55eadb4bae28-Name", + "source": "j" + }, + { + "id": "0x55eadb4b8960-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b8980-LiteralConstant" + }, + { + "id": "0x55eadb4b8980-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b8980-IntLiteralConstant" + }, + { + "id": "0x55eadb4b8980-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b8a40-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b6280-Designator" + }, + { + "id": "0x55eadb4b6280-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6290-DataRef" + }, + { + "id": "0x55eadb4b6290-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6290-Name" + }, + { + "id": "0x55eadb4b6290-Name", + "source": "nl" + }, + { + "id": "0x55eadb4bae00-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4b6b80-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b6b80-ExecutableConstruct" + }, + { + "id": "0x55eadb4b6b80-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b6b80-Statement" + }, + { + "id": "0x55eadb4b6b80-Statement", + "statement": "0x55eadb4b6b90-ActionStmt", + "source": "f(j, i) = 0.0" + }, + { + "id": "0x55eadb4b6b90-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4b8f00-AssignmentStmt" + }, + { + "id": "0x55eadb4b8f00-AssignmentStmt", + "Variable": "0x55eadb4b8fe0-Variable", + "Expr": "0x55eadb4b8f10-Expr" + }, + { + "id": "0x55eadb4b8fe0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4a9db0-Designator" + }, + { + "id": "0x55eadb4a9db0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4a9dc0-DataRef" + }, + { + "id": "0x55eadb4a9dc0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4b7de0-ArrayElement" + }, + { + "id": "0x55eadb4b7de0-ArrayElement", + "base": "0x55eadb4b7de0-DataRef", + "subscripts": [ + "0x55eadb4b6a70-SectionSubscript", + "0x55eadb575540-SectionSubscript" + ] + }, + { + "id": "0x55eadb4b7de0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7de0-Name" + }, + { + "id": "0x55eadb4b7de0-Name", + "source": "f" + }, + { + "id": "0x55eadb4b6a70-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b79f0-Expr" + }, + { + "id": "0x55eadb4b79f0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b6f10-Designator" + }, + { + "id": "0x55eadb4b6f10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6f20-DataRef" + }, + { + "id": "0x55eadb4b6f20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6f20-Name" + }, + { + "id": "0x55eadb4b6f20-Name", + "source": "j" + }, + { + "id": "0x55eadb575540-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b7bf0-Expr" + }, + { + "id": "0x55eadb4b7bf0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b6ab0-Designator" + }, + { + "id": "0x55eadb4b6ab0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6ac0-DataRef" + }, + { + "id": "0x55eadb4b6ac0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6ac0-Name" + }, + { + "id": "0x55eadb4b6ac0-Name", + "source": "i" + }, + { + "id": "0x55eadb4b8f10-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b8f30-LiteralConstant" + }, + { + "id": "0x55eadb4b8f30-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55eadb4b8f30-RealLiteralConstant" + }, + { + "id": "0x55eadb4b8f30-RealLiteralConstant", + "real": "0x55eadb4b8f30-Real" + }, + { + "id": "0x55eadb4b8f30-Real", + "source": "0.0" + }, + { + "id": "0x55eadb4ba140-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4ba140-ExecutableConstruct" + }, + { + "id": "0x55eadb4ba140-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4baca0-DoConstruct" + }, + { + "id": "0x55eadb4baca0-DoConstruct", + "Statement": "0x55eadb4bacf8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4bac50-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4baca0-Statement" + }, + { + "id": "0x55eadb4bacf8-Statement", + "statement": "0x55eadb4bad08-NonLabelDoStmt", + "source": "do k = 1, nm" + }, + { + "id": "0x55eadb4bad08-NonLabelDoStmt", + "LoopControl": "0x55eadb4bad08-LoopControl" + }, + { + "id": "0x55eadb4bad08-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4bad08-LoopBounds" + }, + { + "id": "0x55eadb4bad08-LoopBounds", + "var": "0x55eadb4bad08-Name", + "lower": "0x55eadb4b9010-Expr", + "upper": "0x55eadb4b90f0-Expr" + }, + { + "id": "0x55eadb4bad08-Name", + "source": "k" + }, + { + "id": "0x55eadb4b9010-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4b9030-LiteralConstant" + }, + { + "id": "0x55eadb4b9030-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4b9030-IntLiteralConstant" + }, + { + "id": "0x55eadb4b9030-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4b90f0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b6d10-Designator" + }, + { + "id": "0x55eadb4b6d10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6d20-DataRef" + }, + { + "id": "0x55eadb4b6d20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6d20-Name" + }, + { + "id": "0x55eadb4b6d20-Name", + "source": "nm" + }, + { + "id": "0x55eadb4bace0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4bac50-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4bac50-ExecutableConstruct" + }, + { + "id": "0x55eadb4bac50-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4bac50-Statement" + }, + { + "id": "0x55eadb4bac50-Statement", + "statement": "0x55eadb4bac60-ActionStmt", + "source": "f(j, i) = f(j, i) + c(k, i) * d(j, k)" + }, + { + "id": "0x55eadb4bac60-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4bab30-AssignmentStmt" + }, + { + "id": "0x55eadb4bab30-AssignmentStmt", + "Variable": "0x55eadb4bac10-Variable", + "Expr": "0x55eadb4bab40-Expr" + }, + { + "id": "0x55eadb4bac10-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb4b7ed0-Designator" + }, + { + "id": "0x55eadb4b7ed0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7ee0-DataRef" + }, + { + "id": "0x55eadb4b7ee0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb574aa0-ArrayElement" + }, + { + "id": "0x55eadb574aa0-ArrayElement", + "base": "0x55eadb574aa0-DataRef", + "subscripts": [ + "0x55eadb576e90-SectionSubscript", + "0x55eadb576ee0-SectionSubscript" + ] + }, + { + "id": "0x55eadb574aa0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb574aa0-Name" + }, + { + "id": "0x55eadb574aa0-Name", + "source": "f" + }, + { + "id": "0x55eadb576e90-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b8b20-Expr" + }, + { + "id": "0x55eadb4b8b20-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b73f0-Designator" + }, + { + "id": "0x55eadb4b73f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7400-DataRef" + }, + { + "id": "0x55eadb4b7400-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7400-Name" + }, + { + "id": "0x55eadb4b7400-Name", + "source": "j" + }, + { + "id": "0x55eadb576ee0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b8c00-Expr" + }, + { + "id": "0x55eadb4b8c00-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b5f70-Designator" + }, + { + "id": "0x55eadb4b5f70-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b5f80-DataRef" + }, + { + "id": "0x55eadb4b5f80-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b5f80-Name" + }, + { + "id": "0x55eadb4b5f80-Name", + "source": "i" + }, + { + "id": "0x55eadb4bab40-Expr", + "variantKey": "Add", + "Add": "0x55eadb4bab60-Add" + }, + { + "id": "0x55eadb4bab60-Add", + "left": "0x55eadb4baa50-Expr", + "right": "0x55eadb4ba970-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb4baa50-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb5771b0-Designator" + }, + { + "id": "0x55eadb5771b0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb5771c0-DataRef" + }, + { + "id": "0x55eadb5771c0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4b9390-ArrayElement" + }, + { + "id": "0x55eadb4b9390-ArrayElement", + "base": "0x55eadb4b9390-DataRef", + "subscripts": [ + "0x55eadb577120-SectionSubscript", + "0x55eadb577170-SectionSubscript" + ] + }, + { + "id": "0x55eadb4b9390-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9390-Name" + }, + { + "id": "0x55eadb4b9390-Name", + "source": "f" + }, + { + "id": "0x55eadb577120-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b91d0-Expr" + }, + { + "id": "0x55eadb4b91d0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b7450-Designator" + }, + { + "id": "0x55eadb4b7450-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7460-DataRef" + }, + { + "id": "0x55eadb4b7460-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7460-Name" + }, + { + "id": "0x55eadb4b7460-Name", + "source": "j" + }, + { + "id": "0x55eadb577170-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b92b0-Expr" + }, + { + "id": "0x55eadb4b92b0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b7b30-Designator" + }, + { + "id": "0x55eadb4b7b30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7b40-DataRef" + }, + { + "id": "0x55eadb4b7b40-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7b40-Name" + }, + { + "id": "0x55eadb4b7b40-Name", + "source": "i" + }, + { + "id": "0x55eadb4ba970-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb4ba990-Multiply" + }, + { + "id": "0x55eadb4ba990-Multiply", + "left": "0x55eadb4ba890-Expr", + "right": "0x55eadb4ba7b0-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb4ba890-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb577550-Designator" + }, + { + "id": "0x55eadb577550-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb577560-DataRef" + }, + { + "id": "0x55eadb577560-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4b9880-ArrayElement" + }, + { + "id": "0x55eadb4b9880-ArrayElement", + "base": "0x55eadb4b9880-DataRef", + "subscripts": [ + "0x55eadb4b9980-SectionSubscript", + "0x55eadb577510-SectionSubscript" + ] + }, + { + "id": "0x55eadb4b9880-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9880-Name" + }, + { + "id": "0x55eadb4b9880-Name", + "source": "c" + }, + { + "id": "0x55eadb4b9980-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b95b0-Expr" + }, + { + "id": "0x55eadb4b95b0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b9d10-Designator" + }, + { + "id": "0x55eadb4b9d10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b9d20-DataRef" + }, + { + "id": "0x55eadb4b9d20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9d20-Name" + }, + { + "id": "0x55eadb4b9d20-Name", + "source": "k" + }, + { + "id": "0x55eadb577510-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b9690-Expr" + }, + { + "id": "0x55eadb4b9690-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b9b10-Designator" + }, + { + "id": "0x55eadb4b9b10-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b9b20-DataRef" + }, + { + "id": "0x55eadb4b9b20-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9b20-Name" + }, + { + "id": "0x55eadb4b9b20-Name", + "source": "i" + }, + { + "id": "0x55eadb4ba7b0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb5779c0-Designator" + }, + { + "id": "0x55eadb5779c0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb5779d0-DataRef" + }, + { + "id": "0x55eadb5779d0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4b9f60-ArrayElement" + }, + { + "id": "0x55eadb4b9f60-ArrayElement", + "base": "0x55eadb4b9f60-DataRef", + "subscripts": [ + "0x55eadb577930-SectionSubscript", + "0x55eadb577980-SectionSubscript" + ] + }, + { + "id": "0x55eadb4b9f60-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9f60-Name" + }, + { + "id": "0x55eadb4b9f60-Name", + "source": "d" + }, + { + "id": "0x55eadb577930-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b9b70-Expr" + }, + { + "id": "0x55eadb4b9b70-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ba3f0-Designator" + }, + { + "id": "0x55eadb4ba3f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ba400-DataRef" + }, + { + "id": "0x55eadb4ba400-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ba400-Name" + }, + { + "id": "0x55eadb4ba400-Name", + "source": "j" + }, + { + "id": "0x55eadb577980-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4b9d70-Expr" + }, + { + "id": "0x55eadb4b9d70-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ba1f0-Designator" + }, + { + "id": "0x55eadb4ba1f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ba200-DataRef" + }, + { + "id": "0x55eadb4ba200-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ba200-Name" + }, + { + "id": "0x55eadb4ba200-Name", + "source": "k" + }, + { + "id": "0x55eadb4baca0-Statement", + "statement": "0x55eadb4bacb0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4bacb0-EndDoStmt" + }, + { + "id": "0x55eadb4badc0-Statement", + "statement": "0x55eadb4badd0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4badd0-EndDoStmt" + }, + { + "id": "0x55eadb4baee0-Statement", + "statement": "0x55eadb4baef0-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4baef0-EndDoStmt" + }, + { + "id": "0x55eadb4bcba0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4bcba0-ExecutableConstruct" + }, + { + "id": "0x55eadb4bcba0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b12f0-DoConstruct" + }, + { + "id": "0x55eadb4b12f0-DoConstruct", + "Statement": "0x55eadb4b1348-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4bca00-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b12f0-Statement" + }, + { + "id": "0x55eadb4b1348-Statement", + "statement": "0x55eadb4b1358-NonLabelDoStmt", + "source": "do i = 1, ni" + }, + { + "id": "0x55eadb4b1358-NonLabelDoStmt", + "LoopControl": "0x55eadb4b1358-LoopControl" + }, + { + "id": "0x55eadb4b1358-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b1358-LoopBounds" + }, + { + "id": "0x55eadb4b1358-LoopBounds", + "var": "0x55eadb4b1358-Name", + "lower": "0x55eadb4bb000-Expr", + "upper": "0x55eadb4bb0e0-Expr" + }, + { + "id": "0x55eadb4b1358-Name", + "source": "i" + }, + { + "id": "0x55eadb4bb000-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4bb020-LiteralConstant" + }, + { + "id": "0x55eadb4bb020-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4bb020-IntLiteralConstant" + }, + { + "id": "0x55eadb4bb020-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4bb0e0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ba530-Designator" + }, + { + "id": "0x55eadb4ba530-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ba540-DataRef" + }, + { + "id": "0x55eadb4ba540-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ba540-Name" + }, + { + "id": "0x55eadb4ba540-Name", + "source": "ni" + }, + { + "id": "0x55eadb4b1330-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4bca00-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4bca00-ExecutableConstruct" + }, + { + "id": "0x55eadb4bca00-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b1870-DoConstruct" + }, + { + "id": "0x55eadb4b1870-DoConstruct", + "Statement": "0x55eadb4b18c8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4b6b20-ExecutionPartConstruct", + "0x55eadb4bc9a0-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b1870-Statement" + }, + { + "id": "0x55eadb4b18c8-Statement", + "statement": "0x55eadb4b18d8-NonLabelDoStmt", + "source": "do j = 1, nl" + }, + { + "id": "0x55eadb4b18d8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b18d8-LoopControl" + }, + { + "id": "0x55eadb4b18d8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b18d8-LoopBounds" + }, + { + "id": "0x55eadb4b18d8-LoopBounds", + "var": "0x55eadb4b18d8-Name", + "lower": "0x55eadb4bb1c0-Expr", + "upper": "0x55eadb4bb2a0-Expr" + }, + { + "id": "0x55eadb4b18d8-Name", + "source": "j" + }, + { + "id": "0x55eadb4bb1c0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4bb1e0-LiteralConstant" + }, + { + "id": "0x55eadb4bb1e0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4bb1e0-IntLiteralConstant" + }, + { + "id": "0x55eadb4bb1e0-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4bb2a0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b6110-Designator" + }, + { + "id": "0x55eadb4b6110-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b6120-DataRef" + }, + { + "id": "0x55eadb4b6120-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b6120-Name" + }, + { + "id": "0x55eadb4b6120-Name", + "source": "nl" + }, + { + "id": "0x55eadb4b18b0-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4b6b20-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b6b20-ExecutableConstruct" + }, + { + "id": "0x55eadb4b6b20-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b6b20-Statement" + }, + { + "id": "0x55eadb4b6b20-Statement", + "statement": "0x55eadb4b6b30-ActionStmt", + "source": "g(j, i) = 0.0" + }, + { + "id": "0x55eadb4b6b30-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4bb760-AssignmentStmt" + }, + { + "id": "0x55eadb4bb760-AssignmentStmt", + "Variable": "0x55eadb4bb840-Variable", + "Expr": "0x55eadb4bb770-Expr" + }, + { + "id": "0x55eadb4bb840-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb577060-Designator" + }, + { + "id": "0x55eadb577060-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb577070-DataRef" + }, + { + "id": "0x55eadb577070-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4ba640-ArrayElement" + }, + { + "id": "0x55eadb4ba640-ArrayElement", + "base": "0x55eadb4ba640-DataRef", + "subscripts": [ + "0x55eadb5770d0-SectionSubscript", + "0x55eadb578fb0-SectionSubscript" + ] + }, + { + "id": "0x55eadb4ba640-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ba640-Name" + }, + { + "id": "0x55eadb4ba640-Name", + "source": "g" + }, + { + "id": "0x55eadb5770d0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4ba250-Expr" + }, + { + "id": "0x55eadb4ba250-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b9770-Designator" + }, + { + "id": "0x55eadb4b9770-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b9780-DataRef" + }, + { + "id": "0x55eadb4b9780-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9780-Name" + }, + { + "id": "0x55eadb4b9780-Name", + "source": "j" + }, + { + "id": "0x55eadb578fb0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4ba450-Expr" + }, + { + "id": "0x55eadb4ba450-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b71f0-Designator" + }, + { + "id": "0x55eadb4b71f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7200-DataRef" + }, + { + "id": "0x55eadb4b7200-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7200-Name" + }, + { + "id": "0x55eadb4b7200-Name", + "source": "i" + }, + { + "id": "0x55eadb4bb770-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4bb790-LiteralConstant" + }, + { + "id": "0x55eadb4bb790-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55eadb4bb790-RealLiteralConstant" + }, + { + "id": "0x55eadb4bb790-RealLiteralConstant", + "real": "0x55eadb4bb790-Real" + }, + { + "id": "0x55eadb4bb790-Real", + "source": "0.0" + }, + { + "id": "0x55eadb4bc9a0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4bc9a0-ExecutableConstruct" + }, + { + "id": "0x55eadb4bc9a0-ExecutableConstruct", + "variantKey": "DoConstruct", + "DoConstruct": "0x55eadb4b1750-DoConstruct" + }, + { + "id": "0x55eadb4b1750-DoConstruct", + "Statement": "0x55eadb4b17a8-Statement", + "ExecutionPartConstruct": [ + "0x55eadb4b1df0-ExecutionPartConstruct" + ], + "Statement": "0x55eadb4b1750-Statement" + }, + { + "id": "0x55eadb4b17a8-Statement", + "statement": "0x55eadb4b17b8-NonLabelDoStmt", + "source": "do k = 1, nj" + }, + { + "id": "0x55eadb4b17b8-NonLabelDoStmt", + "LoopControl": "0x55eadb4b17b8-LoopControl" + }, + { + "id": "0x55eadb4b17b8-LoopControl", + "variantKey": "LoopBounds", + "LoopBounds": "0x55eadb4b17b8-LoopBounds" + }, + { + "id": "0x55eadb4b17b8-LoopBounds", + "var": "0x55eadb4b17b8-Name", + "lower": "0x55eadb4bb870-Expr", + "upper": "0x55eadb4bb950-Expr" + }, + { + "id": "0x55eadb4b17b8-Name", + "source": "k" + }, + { + "id": "0x55eadb4bb870-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55eadb4bb890-LiteralConstant" + }, + { + "id": "0x55eadb4bb890-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55eadb4bb890-IntLiteralConstant" + }, + { + "id": "0x55eadb4bb890-IntLiteralConstant", + "CharBlock": "1" + }, + { + "id": "0x55eadb4bb950-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b5060-Designator" + }, + { + "id": "0x55eadb4b5060-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b5070-DataRef" + }, + { + "id": "0x55eadb4b5070-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b5070-Name" + }, + { + "id": "0x55eadb4b5070-Name", + "source": "nj" + }, + { + "id": "0x55eadb4b1790-ExecutionPartConstruct" + }, + { + "id": "0x55eadb4b1df0-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55eadb4b1df0-ExecutableConstruct" + }, + { + "id": "0x55eadb4b1df0-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55eadb4b1df0-Statement" + }, + { + "id": "0x55eadb4b1df0-Statement", + "statement": "0x55eadb4b1e00-ActionStmt", + "source": "g(j, i) = g(j, i) + e(k, i) * f(j, k)" + }, + { + "id": "0x55eadb4b1e00-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55eadb4b20f0-AssignmentStmt" + }, + { + "id": "0x55eadb4b20f0-AssignmentStmt", + "Variable": "0x55eadb4b21d0-Variable", + "Expr": "0x55eadb4b2100-Expr" + }, + { + "id": "0x55eadb4b21d0-Variable", + "variantKey": "Designator", + "Designator": "0x55eadb577d20-Designator" + }, + { + "id": "0x55eadb577d20-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb577d30-DataRef" + }, + { + "id": "0x55eadb577d30-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4bb5f0-ArrayElement" + }, + { + "id": "0x55eadb4bb5f0-ArrayElement", + "base": "0x55eadb4bb5f0-DataRef", + "subscripts": [ + "0x55eadb57a9b0-SectionSubscript", + "0x55eadb57aa00-SectionSubscript" + ] + }, + { + "id": "0x55eadb4bb5f0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bb5f0-Name" + }, + { + "id": "0x55eadb4bb5f0-Name", + "source": "g" + }, + { + "id": "0x55eadb57a9b0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bb380-Expr" + }, + { + "id": "0x55eadb4bb380-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b9c50-Designator" + }, + { + "id": "0x55eadb4b9c50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b9c60-DataRef" + }, + { + "id": "0x55eadb4b9c60-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9c60-Name" + }, + { + "id": "0x55eadb4b9c60-Name", + "source": "j" + }, + { + "id": "0x55eadb57aa00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bb460-Expr" + }, + { + "id": "0x55eadb4bb460-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b75f0-Designator" + }, + { + "id": "0x55eadb4b75f0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b7600-DataRef" + }, + { + "id": "0x55eadb4b7600-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b7600-Name" + }, + { + "id": "0x55eadb4b7600-Name", + "source": "i" + }, + { + "id": "0x55eadb4b2100-Expr", + "variantKey": "Add", + "Add": "0x55eadb4b2120-Add" + }, + { + "id": "0x55eadb4b2120-Add", + "left": "0x55eadb4b2010-Expr", + "right": "0x55eadb48d0e0-Expr", + "op": "ADD" + }, + { + "id": "0x55eadb4b2010-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb57ab90-Designator" + }, + { + "id": "0x55eadb57ab90-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb57aba0-DataRef" + }, + { + "id": "0x55eadb57aba0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4bb720-ArrayElement" + }, + { + "id": "0x55eadb4bb720-ArrayElement", + "base": "0x55eadb4bb720-DataRef", + "subscripts": [ + "0x55eadb57ab00-SectionSubscript", + "0x55eadb57ab50-SectionSubscript" + ] + }, + { + "id": "0x55eadb4bb720-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bb720-Name" + }, + { + "id": "0x55eadb4bb720-Name", + "source": "g" + }, + { + "id": "0x55eadb57ab00-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bba30-Expr" + }, + { + "id": "0x55eadb4bba30-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4b9cb0-Designator" + }, + { + "id": "0x55eadb4b9cb0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4b9cc0-DataRef" + }, + { + "id": "0x55eadb4b9cc0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4b9cc0-Name" + }, + { + "id": "0x55eadb4b9cc0-Name", + "source": "j" + }, + { + "id": "0x55eadb57ab50-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bbb10-Expr" + }, + { + "id": "0x55eadb4bbb10-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4ba390-Designator" + }, + { + "id": "0x55eadb4ba390-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4ba3a0-DataRef" + }, + { + "id": "0x55eadb4ba3a0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4ba3a0-Name" + }, + { + "id": "0x55eadb4ba3a0-Name", + "source": "i" + }, + { + "id": "0x55eadb48d0e0-Expr", + "variantKey": "Multiply", + "Multiply": "0x55eadb48d100-Multiply" + }, + { + "id": "0x55eadb48d100-Multiply", + "left": "0x55eadb4b1ec0-Expr", + "right": "0x55eadb4b1c20-Expr", + "op": "MULTIPLY" + }, + { + "id": "0x55eadb4b1ec0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb57af30-Designator" + }, + { + "id": "0x55eadb57af30-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb57af40-DataRef" + }, + { + "id": "0x55eadb57af40-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4bc0e0-ArrayElement" + }, + { + "id": "0x55eadb4bc0e0-ArrayElement", + "base": "0x55eadb4bc0e0-DataRef", + "subscripts": [ + "0x55eadb4bc1e0-SectionSubscript", + "0x55eadb57aef0-SectionSubscript" + ] + }, + { + "id": "0x55eadb4bc0e0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bc0e0-Name" + }, + { + "id": "0x55eadb4bc0e0-Name", + "source": "e" + }, + { + "id": "0x55eadb4bc1e0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bbe10-Expr" + }, + { + "id": "0x55eadb4bbe10-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4bc570-Designator" + }, + { + "id": "0x55eadb4bc570-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4bc580-DataRef" + }, + { + "id": "0x55eadb4bc580-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bc580-Name" + }, + { + "id": "0x55eadb4bc580-Name", + "source": "k" + }, + { + "id": "0x55eadb57aef0-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bbef0-Expr" + }, + { + "id": "0x55eadb4bbef0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4bc370-Designator" + }, + { + "id": "0x55eadb4bc370-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4bc380-DataRef" + }, + { + "id": "0x55eadb4bc380-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bc380-Name" + }, + { + "id": "0x55eadb4bc380-Name", + "source": "i" + }, + { + "id": "0x55eadb4b1c20-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb57b3a0-Designator" + }, + { + "id": "0x55eadb57b3a0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb57b3b0-DataRef" + }, + { + "id": "0x55eadb57b3b0-DataRef", + "variantKey": "ArrayElement", + "ArrayElement": "0x55eadb4bc7c0-ArrayElement" + }, + { + "id": "0x55eadb4bc7c0-ArrayElement", + "base": "0x55eadb4bc7c0-DataRef", + "subscripts": [ + "0x55eadb57b310-SectionSubscript", + "0x55eadb57b360-SectionSubscript" + ] + }, + { + "id": "0x55eadb4bc7c0-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bc7c0-Name" + }, + { + "id": "0x55eadb4bc7c0-Name", + "source": "f" + }, + { + "id": "0x55eadb57b310-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bc3d0-Expr" + }, + { + "id": "0x55eadb4bc3d0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4bcc50-Designator" + }, + { + "id": "0x55eadb4bcc50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4bcc60-DataRef" + }, + { + "id": "0x55eadb4bcc60-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bcc60-Name" + }, + { + "id": "0x55eadb4bcc60-Name", + "source": "j" + }, + { + "id": "0x55eadb57b360-SectionSubscript", + "variantKey": "Expr", + "Expr": "0x55eadb4bc5d0-Expr" + }, + { + "id": "0x55eadb4bc5d0-Expr", + "variantKey": "Designator", + "Designator": "0x55eadb4bca50-Designator" + }, + { + "id": "0x55eadb4bca50-Designator", + "variantKey": "DataRef", + "DataRef": "0x55eadb4bca60-DataRef" + }, + { + "id": "0x55eadb4bca60-DataRef", + "variantKey": "Name", + "Name": "0x55eadb4bca60-Name" + }, + { + "id": "0x55eadb4bca60-Name", + "source": "k" + }, + { + "id": "0x55eadb4b1750-Statement", + "statement": "0x55eadb4b1760-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b1760-EndDoStmt" + }, + { + "id": "0x55eadb4b1870-Statement", + "statement": "0x55eadb4b1880-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b1880-EndDoStmt" + }, + { + "id": "0x55eadb4b12f0-Statement", + "statement": "0x55eadb4b1300-EndDoStmt", + "source": "end do" + }, + { + "id": "0x55eadb4b1300-EndDoStmt" + }, + { + "id": "0x55eadb4bd350-Statement", + "statement": "0x55eadb4bd360-EndSubroutineStmt", + "source": "end subroutine" + }, + { + "id": "0x55eadb4bd360-EndSubroutineStmt" + }, + { + "id": "0x55eadb4a00a0-Statement", + "statement": "0x55eadb4a00b0-EndProgramStmt", + "source": "end program" + }, + { + "id": "0x55eadb4a00b0-EndProgramStmt" + } + ], + "comments": [ + { + "text": "!******************************************************************************", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "!", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "! 3mm.F90: This file is part of the PolyBench/Fortran 1.0 test suite.", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "!", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "! Contact: Louis-Noel Pouchet ", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "! Web address: http://polybench.sourceforge.net", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "!", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "!******************************************************************************", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "! Include polybench common header.", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "! Include benchmark-specific header.", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "! Default data type is double, default size is 4000.", + "stmtId": "0x55eadb4a01e8-Statement", + "trailing": false + }, + { + "text": "! Allocation of Arrays", + "stmtId": "0x55eadb48e510-Statement", + "trailing": false + }, + { + "text": "! Initialization", + "stmtId": "0x55eadb494fa0-Statement", + "trailing": false + }, + { + "text": "! Kernel Execution", + "stmtId": "0x55eadb493e60-Statement", + "trailing": false + }, + { + "text": "! Prevent dead-code elimination. All live-out data must be printed", + "stmtId": "0x55eadb493820-Statement", + "trailing": false + }, + { + "text": "! by the function call in argument.", + "stmtId": "0x55eadb493820-Statement", + "trailing": false + }, + { + "text": "! Deallocation of Arrays", + "stmtId": "0x55eadb4a74c0-Statement", + "trailing": false + }, + { + "text": "!$pragma scop", + "stmtId": "0x55eadb4b86d8-Statement", + "trailing": false + }, + { + "text": "! E := A*B", + "stmtId": "0x55eadb4b86d8-Statement", + "trailing": false + }, + { + "text": "! F := C*D", + "stmtId": "0x55eadb4baf38-Statement", + "trailing": false + }, + { + "text": "! G := E*F", + "stmtId": "0x55eadb4b1348-Statement", + "trailing": false + }, + { + "text": "!$pragma endscop", + "stmtId": "0x55eadb4bd350-Statement", + "trailing": false + } + ], + "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"] } } 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/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..6c5d115a --- /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..ec86e799 --- /dev/null +++ b/FortranParser/resources-test/fortran/parser/stmt/common_stmt.json @@ -0,0 +1,675 @@ +{ + "nodes": [ + { + "id": "0x55c384b48f00-Program", + "ProgramUnit": [ + "0x55c384b7dd60-ProgramUnit" + ] + }, + { + "id": "0x55c384b7dd60-ProgramUnit", + "variantKey": "MainProgram", + "MainProgram": "0x55c384b75f70-MainProgram" + }, + { + "id": "0x55c384b75f70-MainProgram", + "Statement": "0x55c384b760b8-Statement", + "SpecificationPart": "0x55c384b76010-SpecificationPart", + "ExecutionPart": "0x55c384b75ff8-ExecutionPart", + "Statement": "0x55c384b75f70-Statement" + }, + { + "id": "0x55c384b760b8-Statement", + "statement": "0x55c384b760c8-ProgramStmt", + "source": "program COMMON_STMT" + }, + { + "id": "0x55c384b760c8-ProgramStmt", + "Name": "0x55c384b760c8-Name" + }, + { + "id": "0x55c384b760c8-Name", + "source": "COMMON_STMT" + }, + { + "id": "0x55c384b76010-SpecificationPart", + "ImplicitPart": "0x55c384b76028-ImplicitPart", + "DeclarationConstruct": [ + "0x55c384b56170-DeclarationConstruct", + "0x55c384b55da0-DeclarationConstruct", + "0x55c384b56110-DeclarationConstruct" + ] + }, + { + "id": "0x55c384b76028-ImplicitPart" + }, + { + "id": "0x55c384b56170-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55c384b56170-SpecificationConstruct" + }, + { + "id": "0x55c384b56170-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55c384b56170-Statement" + }, + { + "id": "0x55c384b56170-Statement", + "statement": "0x55c384b88030-TypeDeclarationStmt", + "source": "real :: x" + }, + { + "id": "0x55c384b88030-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c384b88060-DeclarationTypeSpec", + "EntityDecl": [ + "0x55c384b88140-EntityDecl" + ] + }, + { + "id": "0x55c384b88060-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55c384b88060-IntrinsicTypeSpec" + }, + { + "id": "0x55c384b88060-IntrinsicTypeSpec", + "variantKey": "Real", + "Real": "0x55c384b88060-Real" + }, + { + "id": "0x55c384b88060-Real" + }, + { + "id": "0x55c384b88140-EntityDecl", + "Name": "0x55c384b881f8-Name" + }, + { + "id": "0x55c384b881f8-Name", + "source": "x" + }, + { + "id": "0x55c384b55da0-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55c384b55da0-SpecificationConstruct" + }, + { + "id": "0x55c384b55da0-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55c384b55da0-Statement" + }, + { + "id": "0x55c384b55da0-Statement", + "statement": "0x55c384b55db0-OtherSpecificationStmt", + "source": "common /data_block/ x, my_array(5)" + }, + { + "id": "0x55c384b55db0-OtherSpecificationStmt", + "variantKey": "CommonStmt", + "CommonStmt": "0x55c384b7dd20-CommonStmt" + }, + { + "id": "0x55c384b7dd20-CommonStmt", + "CommonStmtBlock": [ + "0x55c384b7d460-CommonStmtBlock" + ] + }, + { + "id": "0x55c384b7d460-CommonStmtBlock", + "Name": "0x55c384b7d478-Name", + "CommonBlockObject": [ + "0x55c384b88390-CommonBlockObject", + "0x55c384b88320-CommonBlockObject" + ] + }, + { + "id": "0x55c384b7d478-Name", + "source": "data_block" + }, + { + "id": "0x55c384b88390-CommonBlockObject", + "Name": "0x55c384b883c8-Name" + }, + { + "id": "0x55c384b883c8-Name", + "source": "x" + }, + { + "id": "0x55c384b88320-CommonBlockObject", + "Name": "0x55c384b88358-Name", + "ArraySpec": "0x55c384b88320-ArraySpec" + }, + { + "id": "0x55c384b88358-Name", + "source": "my_array" + }, + { + "id": "0x55c384b88320-ArraySpec", + "variantKey": "ExplicitShapeSpec", + "ExplicitShapeSpec": [ + "0x55c384b7dd00-ExplicitShapeSpec" + ] + }, + { + "id": "0x55c384b7dd00-ExplicitShapeSpec", + "upper_bound": "0x55c384b7dd00-SpecificationExpr" + }, + { + "id": "0x55c384b7dd00-SpecificationExpr", + "Expr": "0x55c384ae8790-Expr" + }, + { + "id": "0x55c384ae8790-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55c384ae87b0-LiteralConstant" + }, + { + "id": "0x55c384ae87b0-LiteralConstant", + "variantKey": "IntLiteralConstant", + "IntLiteralConstant": "0x55c384ae87b0-IntLiteralConstant" + }, + { + "id": "0x55c384ae87b0-IntLiteralConstant", + "CharBlock": "5" + }, + { + "id": "0x55c384b56110-DeclarationConstruct", + "variantKey": "SpecificationConstruct", + "SpecificationConstruct": "0x55c384b56110-SpecificationConstruct" + }, + { + "id": "0x55c384b56110-SpecificationConstruct", + "variantKey": "Statement", + "Statement": "0x55c384b56110-Statement" + }, + { + "id": "0x55c384b56110-Statement", + "statement": "0x55c384b880b0-TypeDeclarationStmt", + "source": "integer :: my_array" + }, + { + "id": "0x55c384b880b0-TypeDeclarationStmt", + "DeclarationTypeSpec": "0x55c384b880e0-DeclarationTypeSpec", + "EntityDecl": [ + "0x55c384b884e0-EntityDecl" + ] + }, + { + "id": "0x55c384b880e0-DeclarationTypeSpec", + "variantKey": "IntrinsicTypeSpec", + "IntrinsicTypeSpec": "0x55c384b880e0-IntrinsicTypeSpec" + }, + { + "id": "0x55c384b880e0-IntrinsicTypeSpec", + "variantKey": "IntegerTypeSpec", + "IntegerTypeSpec": "0x55c384b880e0-IntegerTypeSpec" + }, + { + "id": "0x55c384b880e0-IntegerTypeSpec" + }, + { + "id": "0x55c384b884e0-EntityDecl", + "Name": "0x55c384b88598-Name" + }, + { + "id": "0x55c384b88598-Name", + "source": "my_array" + }, + { + "id": "0x55c384b75ff8-ExecutionPart", + "ExecutionPartConstruct": [ + "0x55c384b86250-ExecutionPartConstruct" + ] + }, + { + "id": "0x55c384b75ff8-ExecutionPartConstruct" + }, + { + "id": "0x55c384b86250-ExecutionPartConstruct", + "variantKey": "ExecutableConstruct", + "ExecutableConstruct": "0x55c384b86250-ExecutableConstruct" + }, + { + "id": "0x55c384b86250-ExecutableConstruct", + "variantKey": "Statement", + "Statement": "0x55c384b86250-Statement" + }, + { + "id": "0x55c384b86250-Statement", + "statement": "0x55c384b86260-ActionStmt", + "source": "x = 42.0" + }, + { + "id": "0x55c384b86260-ActionStmt", + "variantKey": "AssignmentStmt", + "AssignmentStmt": "0x55c384b56ce0-AssignmentStmt" + }, + { + "id": "0x55c384b56ce0-AssignmentStmt", + "Variable": "0x55c384b56dc0-Variable", + "Expr": "0x55c384b56cf0-Expr" + }, + { + "id": "0x55c384b56dc0-Variable", + "variantKey": "Designator", + "Designator": "0x55c384afe1d0-Designator" + }, + { + "id": "0x55c384afe1d0-Designator", + "variantKey": "DataRef", + "DataRef": "0x55c384afe1e0-DataRef" + }, + { + "id": "0x55c384afe1e0-DataRef", + "variantKey": "Name", + "Name": "0x55c384afe1e0-Name" + }, + { + "id": "0x55c384afe1e0-Name", + "source": "x" + }, + { + "id": "0x55c384b56cf0-Expr", + "variantKey": "LiteralConstant", + "LiteralConstant": "0x55c384b56d10-LiteralConstant" + }, + { + "id": "0x55c384b56d10-LiteralConstant", + "variantKey": "RealLiteralConstant", + "RealLiteralConstant": "0x55c384b56d10-RealLiteralConstant" + }, + { + "id": "0x55c384b56d10-RealLiteralConstant", + "real": "0x55c384b56d10-Real" + }, + { + "id": "0x55c384b56d10-Real", + "source": "42.0" + }, + { + "id": "0x55c384b75f70-Statement", + "statement": "0x55c384b75f80-EndProgramStmt", + "source": "end program COMMON_STMT" + }, + { + "id": "0x55c384b75f80-EndProgramStmt", + "Name": "0x55c384b75f80-Name" + }, + { + "id": "0x55c384b75f80-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/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/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 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/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/FlangName.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java index 544d034d..0552e087 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangName.java @@ -22,10 +22,12 @@ public enum FlangName implements StringProvider { EXECUTION_PART_CONSTRUCT, EXECUTABLE_CONSTRUCT, ALLOCATION, + FUNCTION_SUBPROGRAM, /// DECLs ENTITY_DECL, DUMMY_ARG, + DATA_STMT_OBJECT, DATA_STMT_VALUE, DATA_STMT_REPEAT, DATA_STMT_CONSTANT, @@ -35,6 +37,7 @@ public enum FlangName implements StringProvider { PROGRAM_STMT, END_PROGRAM_STMT, SUBROUTINE_STMT, + FUNCTION_STMT, END_SUBROUTINE_STMT, ACTION_STMT, PRINT_STMT, @@ -45,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, @@ -58,7 +62,16 @@ public enum FlangName implements StringProvider { USE_STMT, CONTINUE_STMT, PARAMETER_STMT, + EXTERNAL_STMT, + RETURN_STMT, STOP_STMT, + DATA_STMT, + DATA_STMT_SET, + COMMON_STMT, + COMMON_STMT_BLOCK, + COMMON_BLOCK_OBJECT, + OPEN_STMT, + CLOSE_STMT, /// Conditional Statements IF_CONSTRUCT, @@ -103,6 +116,7 @@ public enum FlangName implements StringProvider { SUBTRACT, MULTIPLY, DIVIDE, + POWER, EQ("EQ"), NE("NE"), LT("LT"), @@ -121,6 +135,9 @@ public enum FlangName implements StringProvider { AC_SPEC, AC_VALUE, ARRAY_ELEMENT, + SECTION_SUBSCRIPT, + SUBSCRIPT, + SUBSCRIPT_TRIPLET, AC_IMPLIED_DO, AC_IMPLIED_DO_CONTROL, @@ -173,10 +190,13 @@ public enum FlangName implements StringProvider { ARRAY_SPEC, EXPLICIT_SHAPE_SPEC, ALLOCATE_SHAPE_SPEC, + IMPLIED_SHAPE_SPEC, ALLOCATABLE, ASYNCHRONOUS, INTENT_SPEC, PARAMETER, + ASSUMED_SIZE_SPEC, + ASSUMED_IMPLIED_SPEC, // OTHER @@ -186,7 +206,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 51f33a87..9a03247e 100644 --- a/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java +++ b/FortranParser/src/pt/up/fe/specs/fortran/parser/FlangToClass.java @@ -1,6 +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.*; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtValue; @@ -20,7 +21,12 @@ 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.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; @@ -30,6 +36,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.*; @@ -45,26 +52,37 @@ 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); 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); /// 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); /// STMTs NAME_TO_CLASS.put(FlangName.PRINT_STMT, PrintStmt.class); NAME_TO_CLASS.put(FlangName.FORMAT_STMT, FormatStmt.class); NAME_TO_CLASS.put(FlangName.TYPE_DECLARATION_STMT, TypeDeclarationStmt.class); NAME_TO_CLASS.put(FlangName.ASSIGNMENT_STMT, AssignmentStmt.class); - NAME_TO_CLASS.put(FlangName.DO_CONSTRUCT, 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); + 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); @@ -88,8 +106,17 @@ 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.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); + NAME_TO_CLASS.put(FlangName.OPEN_STMT, OpenStmt.class); + NAME_TO_CLASS.put(FlangName.CLOSE_STMT, CloseStmt.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); @@ -111,6 +138,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); @@ -121,6 +149,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); @@ -144,11 +174,13 @@ 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); 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/FortranJsonParser.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/FortranJsonParser.java index d319c4d4..78a28fb5 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,35 @@ 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) { + var content = commentData.get("text").toString(); + var stmtId = commentData.get("stmtId").toString(); + var trailing = commentData.get("trailing").toString(); + + var stmtAttrs = attributes.get(stmtId); + + if (trailing.equals("false")) { + stmtAttrs.putIfAbsent("leadingComments", new ArrayList<>()); + var stmtComments = (List) stmtAttrs.get("leadingComments"); + stmtComments.add(content); + } else { + stmtAttrs.put("trailingComment", content); + } + } + /** * Kind is encoded in the id. * 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..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 @@ -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,8 @@ import pt.up.fe.specs.fortran.parser.FortranJsonResult; import java.util.EnumSet; +import java.util.List; +import java.util.Optional; import java.util.Set; public class AttributesProcessor extends ANodeProcessor { @@ -24,8 +27,24 @@ public AttributesProcessor(FortranJsonResult data) { public void arraySpecification(ArraySpecification arraySpecification) { var variantKey = attributes(arraySpecification).getVariantKey(); - var shapes = getChildren(arraySpecification, variantKey); + 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); + 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(); + shapes = getChildren(childSpec, FlangName.ASSUMED_IMPLIED_SPEC); + } + 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/ExprProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ExprProcessors.java index 07ad4309..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 @@ -76,8 +76,55 @@ 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 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 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) { 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 14e7ecef..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 @@ -1,6 +1,7 @@ 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.*; import pt.up.fe.specs.fortran.ast.nodes.alloc.Allocation; import pt.up.fe.specs.fortran.ast.nodes.alloc.StatVariable; import pt.up.fe.specs.fortran.ast.nodes.decl.DataStmtValue; @@ -20,7 +21,12 @@ 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.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; @@ -29,6 +35,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.*; @@ -47,12 +54,13 @@ 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); 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); @@ -75,6 +83,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); @@ -84,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); @@ -99,8 +112,19 @@ public Nodes(FortranJsonResult data) { processors.put(DeallocateStmt.class, s::deallocateStmt); processors.put(ContinueStmt.class, s::continueStmt); processors.put(ParameterStmt.class, s::parameterStmt); + processors.put(ExternalStmt.class, s::externalStmt); + processors.put(ReturnStmt.class, s::returnStmt); + processors.put(OpenStmt.class, s::openStmt); + processors.put(CloseStmt.class, s::closeStmt); processors.put(NamedConstantDef.class, s::namedConstantDef); + processors.put(DataStmt.class, s::dataStmt); + 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); processors.put(IntLiteral.class, e::intLiteral); @@ -112,6 +136,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(Call.class, e::call); processors.put(Argument.class, e::argument); processors.put(AcImpliedDo.class, e::acImpliedDo); @@ -136,6 +161,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); @@ -149,7 +175,7 @@ public Nodes(FortranJsonResult data) { 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); @@ -165,5 +191,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..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,18 +9,24 @@ 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; 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); @@ -44,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/ProgramProcessors.java b/FortranParser/src/pt/up/fe/specs/fortran/parser/processors/ProgramProcessors.java index 8610a00e..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 @@ -2,12 +2,13 @@ import pt.up.fe.specs.fortran.ast.FortranContext; import pt.up.fe.specs.fortran.ast.nodes.FortranNode; -import pt.up.fe.specs.fortran.ast.nodes.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; import pt.up.fe.specs.util.SpecsIo; +import java.util.List; + public class ProgramProcessors extends ANodeProcessor { @@ -15,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); @@ -28,9 +29,19 @@ 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) { + 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 +53,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) { @@ -75,16 +89,33 @@ public void internalSubprogram(InternalSubprogram internalSubprogram) { } public void subroutine(Subroutine subroutine) { + var subroutineStmt = getStmtChild(subroutine, FlangName.SUBROUTINE_STMT); + subroutine.addChild(subroutineStmt); + + var specification = getChild(subroutine, FlangName.SPECIFICATION_PART); + subroutine.addChild(specification); + + var execution = getChild(subroutine, FlangName.EXECUTION_PART); + subroutine.addChild(execution); + + 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) { + var name = attributes().getString(function, "source", FlangName.FUNCTION_STMT, FlangName.NAME); // [specification-part] - subroutine.addChild(getChild(subroutine, FlangName.SPECIFICATION_PART)); + function.addChild(getChild(function, FlangName.SPECIFICATION_PART)); // [execution-part] - subroutine.addChild(getChild(subroutine, FlangName.EXECUTION_PART)); + function.addChild(getChild(function, FlangName.EXECUTION_PART)); // [internal-subprogram-part] - subroutine.set(Subroutine.SUBROUTINE_NAME, name); + function.set(Function.FUNCTION_NAME, name); - String statementId = attributes().get(attributes(subroutine).getString(FlangName.SUBROUTINE_STMT.getStmtAttr())).getString("statement"); - subroutine.addChildren(getChildren(statementId, FlangName.DUMMY_ARG)); + String statementId = attributes().get(attributes(function).getString(FlangName.FUNCTION_STMT.getStmtAttr())).getString("statement"); + function.addChildren(getChildren(statementId, FlangName.FUNCTION_ARGUMENT_DECL)); } } 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) { + + } } 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..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 @@ -3,12 +3,18 @@ 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.Execution; -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.*; +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.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; @@ -18,42 +24,65 @@ 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; - public class StmtProcessors extends ANodeProcessor { 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("leadingComments")) { + var leadingComments = attrs.getStringList("leadingComments"); + stmt.set(Stmt.LEADING_COMMENTS, leadingComments); + } else { + stmt.set(Stmt.LEADING_COMMENTS, List.of()); + } + + var trailingComment = attrs.getOptionalString("trailingComment"); + stmt.set(Stmt.TRAILING_COMMENT, trailingComment); - 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)); } 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) { + stmt(typeDeclarationStmt); + var entityDecls = getChildren(typeDeclarationStmt, FlangName.ENTITY_DECL); var type = getChild(typeDeclarationStmt, FlangName.DECLARATION_TYPE_SPEC); @@ -74,6 +103,8 @@ public void typeDeclarationStmt(TypeDeclarationStmt typeDeclarationStmt) { } public void assignmentStmt(AssignmentStmt assignmentStmt) { + actionStmt(assignmentStmt); + var variable = getChild(assignmentStmt, FlangName.VARIABLE); var expression = getChild(assignmentStmt, FlangName.EXPR); assignmentStmt.addChild(variable); @@ -85,10 +116,12 @@ public void stmtBlock(StmtBlock stmtBlock) { } public void ifConstruct(IfConstruct ifConstruct) { + executableStmt(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); @@ -125,6 +158,8 @@ public void ifConstruct(IfConstruct ifConstruct) { } public void ifThenStmt(IfThenStmt ifThenStmt) { + actionStmt(ifThenStmt); + var condition = getChild(ifThenStmt, FlangName.EXPR); ifThenStmt.addChild(0, condition); @@ -135,12 +170,14 @@ 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); } public void elseIfStmt(ElseIfStmt elseIfStmt) { + stmt(elseIfStmt); + var condition = getChild(elseIfStmt, FlangName.EXPR); elseIfStmt.addChild(condition); } @@ -150,20 +187,22 @@ 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); } - 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); @@ -172,6 +211,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); @@ -189,6 +230,8 @@ public void caseConstruct(CaseConstruct caseConstruct) { } public void selectCaseStmt(SelectCaseStmt selectCaseStmt) { + stmt(selectCaseStmt); + var expr = getChild(selectCaseStmt, FlangName.EXPR); selectCaseStmt.addChild(expr); @@ -222,6 +265,7 @@ public CaseStmt buildCaseStmt(String id) { .toList(); var valueCaseStmt = factory().newNode(ValueCaseStmt.class); + stmtWithAttrs(valueCaseStmt, caseSelectorAttrs); valueCaseStmt.addChildren(caseValueRanges); return valueCaseStmt; @@ -229,7 +273,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); @@ -287,22 +333,36 @@ 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) { - 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); + public void doConstruct(DoConstruct doConstruct) { + executableStmt(doConstruct); - name.ifPresent(str -> doStmt.setOptional(DoStmt.NAME, str)); + var name = attributes().getOptionalString(doConstruct, "source", FlangName.NON_LABEL_DO_STMT, FlangName.NAME); + name.ifPresent(str -> doConstruct.setOptional(DoConstruct.NAME, str)); + var doStmt = getStmtChild(doConstruct, FlangName.NON_LABEL_DO_STMT); + doConstruct.addChild(doStmt); + + 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 -> { @@ -319,25 +379,32 @@ 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) { + 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); @@ -345,6 +412,8 @@ public void gotoStmt(GotoStmt gotoStmt) { } public void writeStmt(WriteStmt writeStmt) { + actionStmt(writeStmt); + if (attributes(writeStmt).has("iounit")) { writeStmt.addChild(getChild(writeStmt, "iounit")); } @@ -363,19 +432,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"); @@ -383,22 +458,45 @@ public void useStmt(UseStmt useStmt) { } public void continueStmt(ContinueStmt continueStmt) { - + actionStmt(continueStmt); } public void parameterStmt(ParameterStmt parameterStmt) { + stmt(parameterStmt); + parameterStmt.addChildren(getChildren(parameterStmt, FlangName.NAMED_CONSTANT_DEF)); } + public void externalStmt(ExternalStmt externalStmt) { + externalStmt.addChildren(getChildren(externalStmt, FlangName.NAME)); + } + + public void returnStmt(ReturnStmt returnStmt) { + actionStmt(returnStmt); + if (attributes(returnStmt).has(FlangName.EXPR)) { + returnStmt.addChild(getChild(returnStmt, FlangName.EXPR)); + } + } + + public void openStmt(OpenStmt openStmt) { + actionStmt(openStmt); + } + + public void closeStmt(CloseStmt closeStmt) { + actionStmt(closeStmt); + } + public void namedConstantDef(NamedConstantDef namedConstantDef) { - var ref = getChild(namedConstantDef, NAMED_CONSTANT); +var ref = getChild(namedConstantDef, FlangName.NAMED_CONSTANT); namedConstantDef.addChild(ref); - var expr = getChild(namedConstantDef, EXPR); + var expr = getChild(namedConstantDef, FlangName.EXPR); namedConstantDef.addChild(expr); } 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")); @@ -412,4 +510,88 @@ public void stopStmt(StopStmt stopStmt) { var quietOpt = getChildOptional(stopStmt, "quiet"); quietOpt.ifPresent(stopStmt::addChild); } + + public void dataStmt(DataStmt dataStmt) { + stmt(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); + } + + public void commonStmt(CommonStmt commonStmt) { + stmt(commonStmt); + + var blocks = getChildren(commonStmt, FlangName.COMMON_STMT_BLOCK); + commonStmt.addChildren(blocks); + } + + public void commonBlock(CommonBlock commonBlock) { + var name = attributes().getOptionalString(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); + } + + public void programStmt(ProgramStmt programStmt) { + stmt(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); + } } 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) { 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..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 { @@ -10,8 +11,12 @@ public VariableProcessor(FortranJsonResult data) { public void dataRefProcessor(DataRef dataRef) { - String name = attributes(dataRef).getString("source"); + var name = attributes(dataRef).getString("source"); + var scope = attributes(dataRef) + .getOptionalString("scope") + .flatMap(ScopeKind::of); dataRef.set(DataRef.NAME, name); + dataRef.set(DataRef.SCOPE, scope); } } 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..5eb4111c 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,54 @@ void testStopNative() { } } + @Test + void testDataStmt() { + testJson("stmt/data_stmt.json"); + } + + @Test + void testDataStmtNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/data_stmt.f90"); + } + } + + @Test + void testSubscriptTriplet() { + testJson("expr/subscript_triplet.json"); + } + + @Test + void testSubscriptTripletNative() { + if (SpecsPlatforms.isLinux()) { + testNative("expr/subscript_triplet.f90"); + } + } + + @Test + void testCommonStmt() { + testJson("stmt/common_stmt.json"); + } + + @Test + void testCommonStmtNative() { + if (SpecsPlatforms.isLinux()) { + testNative("stmt/common_stmt.f90"); + } + } + + @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"); @@ -592,4 +640,40 @@ 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"); + } + } + + @Test + void testFujitsu0000_0030() { + testJson("fujitsu/0000/0000_0030.json"); + } + + @Test + void testFujitsu0000_0030Native() { + if (SpecsPlatforms.isLinux()) { + 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"); + } + } } 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/importable/AstFactory.java b/FortranWeaver/src/pt/up/fe/specs/fortran/weaver/importable/AstFactory.java index e92d75c8..d2afa9fd 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 ); } @@ -142,8 +138,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/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/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; } } 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() 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/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 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; } } 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 +