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 | 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x | import {seq, altPrio, Expression, tok} from "../combi";
import * as Expressions from ".";
import {ParenLeft, ParenRightW} from "../../1_lexer/tokens";
import {IStatementRunnable} from "../statement_runnable";
export class MethodParam extends Expression {
public getRunnable(): IStatementRunnable {
// The escape is part of the token: the lexer gives "!VALUE" as a single
// Identifier, so a literal "VALUE" cannot match it and the whole METHODS
// statement falls back to Unknown.
const ref = seq(altPrio("REFERENCE", "!REFERENCE"),
tok(ParenLeft),
Expressions.MethodParamName,
tok(ParenRightW));
const value = seq(altPrio("VALUE", "!VALUE"),
tok(ParenLeft),
Expressions.MethodParamName,
tok(ParenRightW));
const fieldsOrValue = seq(altPrio(value, ref, Expressions.MethodParamName),
Expressions.TypeParam);
return fieldsOrValue;
}
} |