@abaplint/core
Version:
abaplint - Core API
20 lines • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FieldChain = void 0;
const combi_1 = require("../combi");
const _1 = require(".");
const tokens_1 = require("../../1_lexer/tokens");
class FieldChain extends combi_1.Expression {
getRunnable() {
const attr = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.InstanceArrow), _1.AttributeName);
const comp = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), (0, combi_1.optPrio)(_1.ComponentName));
const chain = (0, combi_1.star)((0, combi_1.altPrio)(_1.Dereference, attr, comp, _1.TableExpression));
const clas = (0, combi_1.seq)(_1.ClassName, (0, combi_1.tok)(tokens_1.StaticArrow), _1.AttributeName);
const start = (0, combi_1.altPrio)(clas, _1.SourceField, _1.SourceFieldSymbol);
const after = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.DashW), (0, combi_1.seq)((0, combi_1.optPrio)(_1.TableBody), (0, combi_1.optPrio)(_1.FieldOffset), (0, combi_1.optPrio)(_1.FieldLength)));
const ret = (0, combi_1.seq)(start, chain, after);
return ret;
}
}
exports.FieldChain = FieldChain;
//# sourceMappingURL=field_chain.js.map