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.syntax;
22
23 import org.millscript.millscript.expr.Expr;
24
25 /**
26 * This class represents simple postfix syntax. This is a convenience class to
27 * reduce the work required to implement a piece of simple postfix syntax. The
28 * 'simple' refers to the fact that the syntax follows the form
29 *
30 * <p>
31 * <code><expr> S <expr></code>
32 * </p>
33 *
34 * <p>
35 * and as such is rather simple. In these situations, the syntax doesn't involve
36 * other functions
37 * </p>
38 *
39 * <p>
40 * e.g. <code><expr> && <expr></code>
41 * </p>
42 */
43 public abstract class SimplePostfixSyntax extends PostfixSyntax {
44
45 /**
46 * Returns the expression for this simple postfix syntax, which is made by
47 * combining the left and right hand side expressions.
48 *
49 * @param lhs the expression on the left hand side of this syntax
50 * @param rhs the expression on the right hand side of this syntax
51 * @return the expression for this syntax
52 */
53 abstract Expr simple( final Expr lhs, final Expr rhs );
54
55 /**
56 * @see org.millscript.millscript.syntax.PostfixSyntaxInterface#postfix(java.lang.String, int, org.millscript.millscript.expr.Expr, org.millscript.millscript.syntax.Parser)
57 */
58 @Override
59 public Expr postfix( final String sym, final int prec, final Expr lhs, final Parser parser ) {
60
61 Expr rhs = parser.readExprPrec( prec );
62
63
64 return simple( lhs, rhs );
65 }
66
67 }