1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.millscript.millscript.action;
22
23 import org.millscript.millscript.vm.Machine;
24
25 /**
26 * This class represents the action for a comma expression. More specifically
27 * this is used anywhere in MillScript where a sequence of actions must be
28 * performed, kind of like a very specific linked list of actions.
29 *
30 * @see org.millscript.millscript.expr.CommaExpr
31 * @see org.millscript.millscript.syntax.CommaSyntax
32 */
33 public final class CommaAction extends Action {
34
35 /**
36 * The action for the left hand side of the comma expression, or the first
37 * action to be performed.
38 */
39 private Action lhs;
40
41 /**
42 * The action for the right hand side of the comma expression, or the
43 * second action to be performed.
44 */
45 private Action rhs;
46
47 /**
48 * Constructs a new comma action to perform the specified left and right
49 * hand actions in sequence.
50 *
51 * @param l the left hand, or first, action
52 * @param r the right hand, or second, action
53 */
54 public CommaAction( final Action l, final Action r ) {
55 this.lhs = l;
56 this.rhs = r;
57 }
58
59 /**
60 * @see org.millscript.millscript.action.Action#action(org.millscript.millscript.vm.Machine)
61 */
62 @Override
63 public void action( final Machine mc ) {
64 lhs.act( mc );
65 rhs.act( mc );
66 }
67
68 }