All files / src/abap/2_statements/expressions method_source.ts

100% Statements 9/9
100% Branches 0/0
100% Functions 1/1
100% Lines 9/9

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 171x 1x 1x     1x   1x 1x   1x   1x   1x    
import {seq, alt, optPrio, tok, Expression, starPrio} from "../combi";
import {InstanceArrow, StaticArrow} from "../../1_lexer/tokens";
import {ClassName, MethodName, Dynamic, FieldChain, MethodCallChain} from ".";
import {IStatementRunnable} from "../statement_runnable";
 
export class MethodSource extends Expression {
  public getRunnable(): IStatementRunnable {
    const mname = alt(MethodName, Dynamic);
    const cname = alt(FieldChain, MethodCallChain, Dynamic);
 
    const stati = seq(ClassName, tok(StaticArrow));
 
    const part1 = seq(cname, alt(tok(InstanceArrow), tok(StaticArrow)));
 
    return seq(optPrio(stati), starPrio(part1), mname);
  }
}