| JThis.java |
1 // Copyright 2012- Bill Campbell, Swami Iyer and Bahar Akbal-Delibas
2
3 package jminusminus;
4
5 import static jminusminus.CLConstants.*;
6
7 /**
8 * The AST for a "this" expression. It serves as a target of some field selection or message.
9 */
10 class JThis extends JExpression {
11 /**
12 * Constructs an AST node for a "this" expression.
13 *
14 * @param line line in which the expression occurs in the source file.
15 */
16 public JThis(int line) {
17 super(line);
18 }
19
20 /**
21 * {@inheritDoc}
22 */
23 public JExpression analyze(Context context) {
24 type = ((JClassDeclaration) context.classContext.definition()).thisType();
25 return this;
26 }
27
28 /**
29 * {@inheritDoc}
30 */
31 public void codegen(CLEmitter output) {
32 output.addNoArgInstruction(ALOAD_0);
33 }
34
35 /**
36 * {@inheritDoc}
37 */
38 public void toJSON(JSONElement json) {
39 JSONElement e = new JSONElement();
40 json.addChild("JThis:" + line, e);
41 }
42 }
43