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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1796x 1796x 1796x 1796x 1796x 1796x 1796x 2x 2x 1790x 1790x 1x | import * as Expressions from "../../2_statements/expressions"; import {StatementNode} from "../../nodes"; import {CurrentScope} from "../_current_scope"; import {TypedIdentifier} from "../../types/_typed_identifier"; import {DataDefinition} from "../expressions/data_definition"; import {UnknownType} from "../../types/basic/unknown_type"; export class Data { public runSyntax(node: StatementNode, scope: CurrentScope, filename: string): TypedIdentifier | undefined { const name = node.findFirstExpression(Expressions.DefinitionName); const dd = node.findFirstExpression(Expressions.DataDefinition); if (dd) { const id = new DataDefinition().runSyntax(dd, scope, filename); if (id?.getType().isGeneric() === true && id?.getType().containsVoid() === false) { throw new Error("DATA definition cannot be generic, " + name?.concatTokens()); } return id; } if (name) { return new TypedIdentifier(name.getFirstToken(), filename, new UnknownType("data, fallback")); } return undefined; } } |