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 32 | 1x 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 3x 1x 1x | import {IStatement} from "./_statement"; import {seq, alt, opt, per, optPrio, altPrio, ver} from "../combi"; import {FSTarget, Target, Source, Dynamic, TypeName, AssignSource} from "../expressions"; import {IStatementRunnable} from "../statement_runnable"; import {Version} from "../../../version"; export class Assign implements IStatement { public getMatcher(): IStatementRunnable { const type = seq("TYPE", altPrio(Dynamic, TypeName)); const like = seq("LIKE", altPrio(Dynamic, Source)); const handle = seq("TYPE HANDLE", Source); const range = seq("RANGE", Source); const decimals = seq("DECIMALS", Source); const casting = seq("CASTING", opt(alt(like, handle, per(type, decimals)))); const obsoleteType = seq("TYPE", Source, optPrio(decimals)); const ret = seq("ASSIGN", opt(seq(Target, "INCREMENT")), AssignSource, "TO", FSTarget, opt(altPrio(casting, obsoleteType)), opt(range), opt(ver(Version.v757, "ELSE UNASSIGN"))); return ret; } } |