summaryrefslogtreecommitdiff
path: root/src/minijava/visitor/BuildSymbolTableVisitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/minijava/visitor/BuildSymbolTableVisitor.java')
-rw-r--r--src/minijava/visitor/BuildSymbolTableVisitor.java20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/minijava/visitor/BuildSymbolTableVisitor.java b/src/minijava/visitor/BuildSymbolTableVisitor.java
index c99d0ab..4de3383 100644
--- a/src/minijava/visitor/BuildSymbolTableVisitor.java
+++ b/src/minijava/visitor/BuildSymbolTableVisitor.java
@@ -112,6 +112,7 @@ public class BuildSymbolTableVisitor extends GJDepthFirst<MType, MType> {
// 往main class中添加main方法
MMethod main_method = new MMethod("main", MIdentifier.voidType,
n.f6.beginLine, n.f6.beginColumn);
+ //main_method.ret_type_name = MIdentifier.voidType;
MIdentifier argid = (MIdentifier) n.f11.accept(this, null);
MVariable param = new MVariable(argid.getName(), MIdentifier.sArrayType,
argid.getLine(), argid.getColumn());
@@ -627,10 +628,12 @@ public class BuildSymbolTableVisitor extends GJDepthFirst<MType, MType> {
* f1 -> ( ExpressionRest() )*
*/
public MType visit(ExpressionList n, MType argu) {
- MType _ret=null;
- n.f0.accept(this, argu);
- n.f1.accept(this, argu);
- return _ret;
+ if (argu!=null) {
+ MExpressionList m_elist = (MExpressionList)argu;
+ m_elist.add_expr((MExpression)n.f0.accept(this,null));
+ n.f1.accept(this, m_elist);
+ }
+ return null;
}
/**
@@ -638,10 +641,11 @@ public class BuildSymbolTableVisitor extends GJDepthFirst<MType, MType> {
* f1 -> Expression()
*/
public MType visit(ExpressionRest n, MType argu) {
- MType _ret=null;
- n.f0.accept(this, argu);
- n.f1.accept(this, argu);
- return _ret;
+ if (argu!=null) {
+ MExpressionList m_elist = (MExpressionList)argu;
+ m_elist.add_expr((MExpression)n.f1.accept(this,null));
+ }
+ return null;
}
/**