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.expr;
22
23 import org.millscript.millscript.action.Action;
24 import org.millscript.millscript.action.FnCompAction;
25
26 /**
27 * This class implements a compound function expression. A compound function
28 * expression has a left and right hand side function, the left hand side is
29 * executed first, then the right hand side is executed with the results of the
30 * left hand side as arguments. e.g.
31 *
32 * <p>
33 * <code>rhs( lhs( args...) )</code>
34 * </p>
35 *
36 * @see FnCompAction
37 */
38 public final class FnCompExpr extends BinaryOpExpr< FnCompAction > {
39
40 /**
41 * The name of this compound function expression.
42 */
43 private final String name;
44
45 /**
46 * Creates a new compound function expression with the specified name and
47 * component function expressions.
48 *
49 * @param n the name for the compound function expression
50 * @param a the left hand side component function expression
51 * @param b the right hand side component function expression
52 */
53 public FnCompExpr( final String n, final Expr< ? > a, final Expr< ? > b ) {
54 super( a, b );
55 this.name = n;
56 }
57
58 /**
59 * @see org.millscript.millscript.expr.BinaryOpExpr#newAction(org.millscript.millscript.action.Action, org.millscript.millscript.action.Action)
60 */
61 @Override
62 public FnCompAction newAction( final Action a, final Action b ) {
63 return new FnCompAction( name, a, b );
64 }
65
66 }