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 33 34 35 36 | 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 3x 3x 3x 3x 1x 1x | import {IStatement} from "./_statement"; import {verNot, seq, alt, opt} from "../combi"; import {Target, Source} from "../expressions"; import {Version} from "../../../version"; import {IStatementRunnable} from "../statement_runnable"; export class Communication implements IStatement { public getMatcher(): IStatementRunnable { const length = seq("LENGTH", Target); const init = seq("INIT ID", Source, "DESTINATION", Target); const allocate = seq("ALLOCATE ID", Source); const send = seq("SEND ID", Source, "BUFFER", Target, opt(length)); const deallocate = seq("DEALLOCATE ID", Source); const accept = seq("ACCEPT ID", Source); const receive = seq("RECEIVE ID", Source, "BUFFER", Source, opt(length), "DATAINFO", Target, "STATUSINFO", Target, "RECEIVED", Target); const ret = seq("COMMUNICATION", alt(init, allocate, send, deallocate, receive, accept)); return verNot(Version.Cloud, ret); } } |