Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 17x 17x 17x 7x 7x 10x 10x 10x 10x 17x 3x 3x 3x 3x 3x 3x 3x 17x 2x 7x 5x 5x 17x 1x | import * as Expressions from "../../2_statements/expressions"; import {StatementNode} from "../../nodes"; import {IdentifierMeta, TypedIdentifier} from "../../types/_typed_identifier"; import {CharacterType, StructureType} from "../../types/basic"; import {StatementSyntax} from "../_statement_syntax"; import {SyntaxInput} from "../_syntax_input"; export class SelectionScreen implements StatementSyntax { public runSyntax(node: StatementNode, input: SyntaxInput) { const field = node.findFirstExpression(Expressions.InlineField); if (field === undefined) { return; } const name = field.getFirstToken(); const concat = node.concatTokens().toUpperCase(); if (concat.includes("BEGIN OF TABBED BLOCK")) { const type = new StructureType([ {name: "PROG", type: new CharacterType(40)}, {name: "DYNNR", type: new CharacterType(4)}, {name: "ACTIVETAB", type: new CharacterType(132)}, ]); input.scope.addIdentifier(new TypedIdentifier(name, input.filename, type, [IdentifierMeta.SelectionScreenTab])); } else if (concat.startsWith("SELECTION-SCREEN TAB")) { input.scope.addIdentifier(new TypedIdentifier(name, input.filename, new CharacterType(83), [IdentifierMeta.SelectionScreenTab])); } else { input.scope.addIdentifier(new TypedIdentifier(name, input.filename, new CharacterType(83))); } } } |