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 44 45 46 47 48 49 50 51 52 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 43x 43x 43x 43x 1x 1x 1x 42x 42x 43x 43x 43x 1x 43x 42x 43x 34x 33x 33x 34x 1x 1x 34x 42x 43x 16x 16x 43x 43x 26x 26x 42x 42x 1x | import * as Expressions from "../../2_statements/expressions";
import {StatementNode} from "../../nodes";
import {InlineData} from "../expressions/inline_data";
import {StringType} from "../../types/basic";
import {Source} from "../expressions/source";
import {Target} from "../expressions/target";
import {StatementSyntax} from "../_statement_syntax";
import {MessageSource} from "../expressions/message_source";
import {SyntaxInput, syntaxIssue} from "../_syntax_input";
import {ObjectOriented} from "../_object_oriented";
export class Message implements StatementSyntax {
public runSyntax(node: StatementNode, input: SyntaxInput): void {
const exceptionName = node.findDirectExpression(Expressions.ExceptionName);
const classicMessage = exceptionName ? new ObjectOriented(input.scope).checkClassicException() : undefined;
if (exceptionName && classicMessage) {
input.issues.push(syntaxIssue(input, exceptionName.getFirstToken(), classicMessage));
return;
}
const found = node.findExpressionAfterToken("INTO");
const inline = found?.findDirectExpression(Expressions.InlineData);
if (inline) {
InlineData.runSyntax(inline, input, StringType.get());
} else if (found) {
Target.runSyntax(found, input);
}
for (const mss of node.findDirectExpressions(Expressions.MessageSourceSource)) {
for (const s of mss.findDirectExpressions(Expressions.Source)) {
Source.runSyntax(s, input);
}
for (const s of mss.findDirectExpressions(Expressions.SimpleSource3)) {
Source.runSyntax(s, input);
}
}
for (const s of node.findDirectExpressions(Expressions.Source)) {
Source.runSyntax(s, input);
}
for (const s of node.findDirectExpressions(Expressions.SimpleSource3)) {
Source.runSyntax(s, input);
}
for (const s of node.findDirectExpressions(Expressions.MessageSource)) {
MessageSource.runSyntax(s, input);
}
}
}
|