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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import {CDSString} from ".";
import {CDSPrefixedName} from "./cds_prefixed_name";
import {altPrio, Expression, regex, seq, starPrio} from "../../abap/2_statements/combi";
import {IStatementRunnable} from "../../abap/2_statements/statement_runnable";
export class CDSAnnotationSimple extends Expression {
public getRunnable(): IStatementRunnable {
const ident = regex(/^[\w_]+$/);
// #(expr) where expr can be: identifier, dotted path, string, or concatenation with +
const hashArg = altPrio(CDSString, CDSPrefixedName, ident);
const hashExpr = seq(hashArg, starPrio(seq("+", hashArg)));
const value = altPrio(CDSString,
"true",
"false",
"null",
seq("-", regex(/^\d+$/), ".", regex(/^\d+$/)),
seq("-", regex(/^\d+$/)),
seq(regex(/^\d+$/), ".", regex(/^\d+$/)),
regex(/^\d+$/),
seq("#", "(", hashExpr, ")"),
regex(/^#[\w_]+$/));
return value;
}
} |