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 postfix syntax, that which follows an expression it
27 * operates on and have an expression follow it. This is a convenience class to
28 * reduce the work required to implement a piece of postfix syntax.
29 */
30 public abstract class PostfixSyntax extends Syntax implements PostfixSyntaxInterface {
31
32 /**
33 * This syntax's precedence. Higher values represent more tightly bound
34 * syntax.
35 */
36 private int precedence = 0;
37
38 /**
39 * @see org.millscript.millscript.syntax.PostfixSyntaxInterface#getPrecedence()
40 */
41 public int getPrecedence() {
42 return precedence;
43 }
44
45 /**
46 * Sets the precedence for this postfix syntax and then returns the syntax
47 * object.
48 *
49 * @param p the new value for the precedence
50 * @return this syntax object
51 */
52 public PostfixSyntax setPrec( final int p ) {
53 precedence = p; return this;
54 }
55
56 /**
57 * @see org.millscript.millscript.syntax.PostfixSyntaxInterface#postfix(java.lang.String, int, org.millscript.millscript.expr.Expr, org.millscript.millscript.syntax.Parser)
58 */
59 public abstract Expr postfix( final String sym, final int prec, final Expr lhs, final Parser parser );
60
61 }