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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import {CDSArithmetics, CDSCast, CDSCondition, CDSFunction, CDSName, CDSString} from "."; import {altPrio, Expression, optPrio, plusPrio, seq} from "../../abap/2_statements/combi"; import {IStatementRunnable} from "../../abap/2_statements/statement_runnable"; export class CDSCase extends Expression { public getRunnable(): IStatementRunnable { const name = seq(CDSName, optPrio(seq(".", CDSName))); const value = altPrio(CDSFunction, CDSString, CDSCase, CDSCast, CDSArithmetics, name); const thenValue = altPrio(seq("(", value, ")"), value); const simple = seq(altPrio(CDSFunction, name), plusPrio(seq("WHEN", value, "THEN", thenValue))); const complex = plusPrio(seq("WHEN", CDSCondition, "THEN", thenValue)); return seq("CASE", altPrio(complex, simple), optPrio(seq("ELSE", value)), "END"); } } |