All files / src/abap/2_statements/statements scroll_list.ts

100% Statements 31/31
100% Branches 1/1
100% Functions 1/1
100% Lines 31/31

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 321x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x  
import {IStatement} from "./_statement";
import {verNotLang, seq, alt, per, opt} from "../combi";
import {Source} from "../expressions";
import {LanguageVersion} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
 
export class ScrollList implements IStatement {
 
  public getMatcher(): IStatementRunnable {
    const index = seq("INDEX", Source);
    const line = seq("LINE", Source);
    const column = seq("TO COLUMN", Source);
 
    const to = seq("TO",
                   alt("FIRST PAGE",
                       "LAST PAGE",
                       seq("PAGE", Source)));
 
    const pages = seq(Source, "PAGES");
 
    const ret = seq("SCROLL LIST",
                    per(index,
                        seq(alt(to, "BACKWARD", "FORWARD"), opt(pages)),
                        seq(alt("LEFT", "RIGHT"), opt(seq("BY", Source, "PLACES"))),
                        column,
                        line));
 
    return verNotLang(LanguageVersion.Cloud, ret);
  }
 
}