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 35 36 37 38 39 40 41 42 43 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 32x 32x 32x 32x 32x 32x 32x 32x 10x 10x 32x 32x 34x 34x 32x 32x 32x 57x 30x 57x 27x 27x 57x 32x 32x 10x 10x 32x 32x 32x 1x | import {ExpressionNode} from "../../nodes"; import * as Expressions from "../../2_statements/expressions"; import {Source} from "./source"; import {Let} from "./let"; import {Cond} from "./cond"; import {AbstractType} from "../../types/basic/_abstract_type"; import {SyntaxInput} from "../_syntax_input"; export class CondBody { public runSyntax( node: ExpressionNode | undefined, input: SyntaxInput): AbstractType | undefined { if (node === undefined) { return undefined; } let scoped = false; const l = node.findDirectExpression(Expressions.Let); if (l) { scoped = new Let().runSyntax(l, input); } for (const s of node.findDirectExpressions(Expressions.Cond)) { new Cond().runSyntax(s, input); } let type: AbstractType | undefined = undefined; for (const s of node.findDirectExpressions(Expressions.Source)) { if (type === undefined) { type = new Source().runSyntax(s, input); } else { new Source().runSyntax(s, input); } } if (scoped === true) { input.scope.pop(node.getLastToken().getEnd()); } return type; } } |