diff --git a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseListener.java b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseListener.java
index 1ce65d5..861e93f 100644
--- a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseListener.java
+++ b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseListener.java
@@ -67,13 +67,13 @@ public class VMAssemblerBaseListener implements VMAssemblerListener {
*
*
The default implementation does nothing.
*/
- @Override public void enterOperand(VMAssemblerParser.OperandContext ctx) { }
+ @Override public void enterTemp(VMAssemblerParser.TempContext ctx) { }
/**
* {@inheritDoc}
*
* The default implementation does nothing.
*/
- @Override public void exitOperand(VMAssemblerParser.OperandContext ctx) { }
+ @Override public void exitTemp(VMAssemblerParser.TempContext ctx) { }
/**
* {@inheritDoc}
*
diff --git a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseVisitor.java b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseVisitor.java
index 7ff39c0..2cea062 100644
--- a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseVisitor.java
+++ b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerBaseVisitor.java
@@ -48,7 +48,7 @@ public class VMAssemblerBaseVisitor extends AbstractParseTreeVisitor imple
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
- @Override public T visitOperand(VMAssemblerParser.OperandContext ctx) { return visitChildren(ctx); }
+ @Override public T visitTemp(VMAssemblerParser.TempContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
diff --git a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerListener.java b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerListener.java
index ae32d2a..79332fc 100644
--- a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerListener.java
+++ b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerListener.java
@@ -50,15 +50,15 @@ public interface VMAssemblerListener extends ParseTreeListener {
*/
void exitInstr(VMAssemblerParser.InstrContext ctx);
/**
- * Enter a parse tree produced by {@link VMAssemblerParser#operand}.
+ * Enter a parse tree produced by {@link VMAssemblerParser#temp}.
* @param ctx the parse tree
*/
- void enterOperand(VMAssemblerParser.OperandContext ctx);
+ void enterTemp(VMAssemblerParser.TempContext ctx);
/**
- * Exit a parse tree produced by {@link VMAssemblerParser#operand}.
+ * Exit a parse tree produced by {@link VMAssemblerParser#temp}.
* @param ctx the parse tree
*/
- void exitOperand(VMAssemblerParser.OperandContext ctx);
+ void exitTemp(VMAssemblerParser.TempContext ctx);
/**
* Enter a parse tree produced by {@link VMAssemblerParser#label}.
* @param ctx the parse tree
diff --git a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerParser.java b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerParser.java
index 485a723..050cba9 100644
--- a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerParser.java
+++ b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerParser.java
@@ -23,10 +23,10 @@ public class VMAssemblerParser extends Parser {
INT=11, CHAR=12, BOOL=13, STRING=14, FLOAT=15, WS=16, NEWLINE=17;
public static final int
RULE_program = 0, RULE_globals = 1, RULE_functionDeclaration = 2, RULE_instr = 3,
- RULE_operand = 4, RULE_label = 5;
+ RULE_temp = 4, RULE_label = 5;
private static String[] makeRuleNames() {
return new String[] {
- "program", "globals", "functionDeclaration", "instr", "operand", "label"
+ "program", "globals", "functionDeclaration", "instr", "temp", "label"
};
}
public static final String[] ruleNames = makeRuleNames();
@@ -349,16 +349,16 @@ public final FunctionDeclarationContext functionDeclaration() throws Recognition
@SuppressWarnings("CheckReturnValue")
public static class InstrContext extends ParserRuleContext {
public Token op;
- public OperandContext a;
- public OperandContext b;
- public OperandContext c;
+ public TempContext a;
+ public TempContext b;
+ public TempContext c;
public TerminalNode NEWLINE() { return getToken(VMAssemblerParser.NEWLINE, 0); }
public TerminalNode ID() { return getToken(VMAssemblerParser.ID, 0); }
- public List operand() {
- return getRuleContexts(OperandContext.class);
+ public List temp() {
+ return getRuleContexts(TempContext.class);
}
- public OperandContext operand(int i) {
- return getRuleContext(OperandContext.class,i);
+ public TempContext temp(int i) {
+ return getRuleContext(TempContext.class,i);
}
public InstrContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
@@ -401,7 +401,7 @@ public final InstrContext instr() throws RecognitionException {
setState(47);
((InstrContext)_localctx).op = match(ID);
setState(48);
- ((InstrContext)_localctx).a = operand();
+ ((InstrContext)_localctx).a = temp();
setState(49);
match(NEWLINE);
}
@@ -412,11 +412,11 @@ public final InstrContext instr() throws RecognitionException {
setState(51);
((InstrContext)_localctx).op = match(ID);
setState(52);
- ((InstrContext)_localctx).a = operand();
+ ((InstrContext)_localctx).a = temp();
setState(53);
match(T__5);
setState(54);
- ((InstrContext)_localctx).b = operand();
+ ((InstrContext)_localctx).b = temp();
setState(55);
match(NEWLINE);
}
@@ -427,15 +427,15 @@ public final InstrContext instr() throws RecognitionException {
setState(57);
((InstrContext)_localctx).op = match(ID);
setState(58);
- ((InstrContext)_localctx).a = operand();
+ ((InstrContext)_localctx).a = temp();
setState(59);
match(T__5);
setState(60);
- ((InstrContext)_localctx).b = operand();
+ ((InstrContext)_localctx).b = temp();
setState(61);
match(T__5);
setState(62);
- ((InstrContext)_localctx).c = operand();
+ ((InstrContext)_localctx).c = temp();
setState(63);
match(NEWLINE);
}
@@ -454,7 +454,7 @@ public final InstrContext instr() throws RecognitionException {
}
@SuppressWarnings("CheckReturnValue")
- public static class OperandContext extends ParserRuleContext {
+ public static class TempContext extends ParserRuleContext {
public TerminalNode ID() { return getToken(VMAssemblerParser.ID, 0); }
public TerminalNode REG() { return getToken(VMAssemblerParser.REG, 0); }
public TerminalNode FUNC() { return getToken(VMAssemblerParser.FUNC, 0); }
@@ -463,28 +463,28 @@ public static class OperandContext extends ParserRuleContext {
public TerminalNode CHAR() { return getToken(VMAssemblerParser.CHAR, 0); }
public TerminalNode STRING() { return getToken(VMAssemblerParser.STRING, 0); }
public TerminalNode FLOAT() { return getToken(VMAssemblerParser.FLOAT, 0); }
- public OperandContext(ParserRuleContext parent, int invokingState) {
+ public TempContext(ParserRuleContext parent, int invokingState) {
super(parent, invokingState);
}
- @Override public int getRuleIndex() { return RULE_operand; }
+ @Override public int getRuleIndex() { return RULE_temp; }
@Override
public void enterRule(ParseTreeListener listener) {
- if ( listener instanceof VMAssemblerListener ) ((VMAssemblerListener)listener).enterOperand(this);
+ if ( listener instanceof VMAssemblerListener ) ((VMAssemblerListener)listener).enterTemp(this);
}
@Override
public void exitRule(ParseTreeListener listener) {
- if ( listener instanceof VMAssemblerListener ) ((VMAssemblerListener)listener).exitOperand(this);
+ if ( listener instanceof VMAssemblerListener ) ((VMAssemblerListener)listener).exitTemp(this);
}
@Override
public T accept(ParseTreeVisitor extends T> visitor) {
- if ( visitor instanceof VMAssemblerVisitor ) return ((VMAssemblerVisitor extends T>)visitor).visitOperand(this);
+ if ( visitor instanceof VMAssemblerVisitor ) return ((VMAssemblerVisitor extends T>)visitor).visitTemp(this);
else return visitor.visitChildren(this);
}
}
- public final OperandContext operand() throws RecognitionException {
- OperandContext _localctx = new OperandContext(_ctx, getState());
- enterRule(_localctx, 8, RULE_operand);
+ public final TempContext temp() throws RecognitionException {
+ TempContext _localctx = new TempContext(_ctx, getState());
+ enterRule(_localctx, 8, RULE_temp);
int _la;
try {
enterOuterAlt(_localctx, 1);
diff --git a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerVisitor.java b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerVisitor.java
index d676602..35aea4d 100644
--- a/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerVisitor.java
+++ b/ep18/src/main/java/org/teachfx/antlr4/ep18/parser/VMAssemblerVisitor.java
@@ -37,11 +37,11 @@ public interface VMAssemblerVisitor extends ParseTreeVisitor {
*/
T visitInstr(VMAssemblerParser.InstrContext ctx);
/**
- * Visit a parse tree produced by {@link VMAssemblerParser#operand}.
+ * Visit a parse tree produced by {@link VMAssemblerParser#temp}.
* @param ctx the parse tree
* @return the visitor result
*/
- T visitOperand(VMAssemblerParser.OperandContext ctx);
+ T visitTemp(VMAssemblerParser.TempContext ctx);
/**
* Visit a parse tree produced by {@link VMAssemblerParser#label}.
* @param ctx the parse tree
diff --git a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/ImmValue.java b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/ImmValue.java
index 88e6ec3..53bad77 100644
--- a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/ImmValue.java
+++ b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/ImmValue.java
@@ -1,5 +1,5 @@
package org.teachfx.antlr4.ep20.ir.expr;
-public abstract class ImmValue extends Temp {
+public abstract class ImmValue extends Operand {
}
diff --git a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/Temp.java b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/Operand.java
similarity index 76%
rename from ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/Temp.java
rename to ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/Operand.java
index 6418bea..79e5abb 100644
--- a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/Temp.java
+++ b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/Operand.java
@@ -2,6 +2,6 @@
import org.teachfx.antlr4.ep20.ir.IRVisitor;
-public abstract class Temp extends Expr {
+public abstract class Operand extends Expr {
abstract public E accept(IRVisitor visitor);
}
diff --git a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/VarSlot.java b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/VarSlot.java
index 5834236..e162c47 100644
--- a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/VarSlot.java
+++ b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/expr/VarSlot.java
@@ -1,5 +1,5 @@
package org.teachfx.antlr4.ep20.ir.expr;
-public abstract class VarSlot extends Temp {
+public abstract class VarSlot extends Operand {
}
diff --git a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/stmt/Assign.java b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/stmt/Assign.java
index 5679c3c..2791dfa 100644
--- a/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/stmt/Assign.java
+++ b/ep20/src/main/java/org/teachfx/antlr4/ep20/ir/stmt/Assign.java
@@ -1,12 +1,12 @@
package org.teachfx.antlr4.ep20.ir.stmt;
import org.teachfx.antlr4.ep20.ir.IRVisitor;
-import org.teachfx.antlr4.ep20.ir.expr.Temp;
+import org.teachfx.antlr4.ep20.ir.expr.Operand;
import org.teachfx.antlr4.ep20.ir.expr.VarSlot;
public class Assign extends Stmt {
protected VarSlot lhs;
- protected Temp rhs;
+ protected Operand rhs;
/**
* Assign a value to a variable
@@ -24,10 +24,10 @@ public static Assign with(VarSlot lhs,VarSlot rhs) {
* @param rhs Value to assign
* @return Assign object
*/
- public static Assign with(VarSlot lhs, Temp rhs) {
+ public static Assign with(VarSlot lhs, Operand rhs) {
return new Assign(lhs,rhs);
}
- public Assign(VarSlot lhs, Temp rhs) {
+ public Assign(VarSlot lhs, Operand rhs) {
this.lhs = lhs;
this.rhs = rhs;
}
@@ -36,7 +36,7 @@ public Assign(VarSlot lhs, Temp rhs) {
public VarSlot getLhs() {
return lhs;
}
- public Temp getRhs() {
+ public Operand getRhs() {
return rhs;
}
diff --git a/ep20/src/main/java/org/teachfx/antlr4/ep20/pass/ir/CymbolIRBuilder.java b/ep20/src/main/java/org/teachfx/antlr4/ep20/pass/ir/CymbolIRBuilder.java
index df202ce..89f3684 100644
--- a/ep20/src/main/java/org/teachfx/antlr4/ep20/pass/ir/CymbolIRBuilder.java
+++ b/ep20/src/main/java/org/teachfx/antlr4/ep20/pass/ir/CymbolIRBuilder.java
@@ -10,7 +10,7 @@
import org.teachfx.antlr4.ep20.ast.expr.*;
import org.teachfx.antlr4.ep20.ast.stmt.*;
import org.teachfx.antlr4.ep20.ast.type.TypeNode;
-import org.teachfx.antlr4.ep20.ir.expr.Temp;
+import org.teachfx.antlr4.ep20.ir.expr.Operand;
import org.teachfx.antlr4.ep20.pass.cfg.BasicBlock;
import org.teachfx.antlr4.ep20.ir.IRNode;
import org.teachfx.antlr4.ep20.ir.Prog;
@@ -382,24 +382,24 @@ public void popContinueStack() {
continueStack.pop();
}
static int cnt = 0;
- protected VarSlot pushEvalOperand(Temp temp) {
+ protected VarSlot pushEvalOperand(Operand operand) {
if (curNode != null) {
logger.info(curNode.toString());
}
- if (!(temp instanceof OperandSlot)){
+ if (!(operand instanceof OperandSlot)){
cnt++;
var assignee = OperandSlot.pushStack();
evalExprStack.push(assignee);
- addInstr(Assign.with(assignee, temp));
+ addInstr(Assign.with(assignee, operand));
logger.info("-> eval stack %s%n", evalExprStack.toString());
return assignee;
} else {
logger.info("-> eval stack %s%n", evalExprStack.toString());
- evalExprStack.push((VarSlot) temp);
- return (VarSlot) temp;
+ evalExprStack.push((VarSlot) operand);
+ return (VarSlot) operand;
}
}