From 98b6f4ba9988fce9e3e55a9aca7e7d59fd638543 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 12 Nov 2010 11:20:12 +0000 Subject: fixes --- .../seaspider/ExpressionDatabaseHandler.java | 2 +- .../seaspider/ExpressionExtractorVisitor.java | 63 +++++++++++++--------- .../seaspider/org/gnunet/seaspider/SeaspiderTest.c | 2 +- 3 files changed, 39 insertions(+), 28 deletions(-) (limited to 'src/monkey/seaspider') diff --git a/src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java b/src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java index 5b269259b..4cd938a71 100644 --- a/src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java +++ b/src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java @@ -9,7 +9,7 @@ import org.tmatesoft.sqljet.core.table.SqlJetDb; public class ExpressionDatabaseHandler { - private static final boolean DEBUG = false; + private static final boolean DEBUG = true; private static SqlJetDb db; diff --git a/src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java b/src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java index ea3294e2e..bec9101bb 100644 --- a/src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java +++ b/src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java @@ -106,25 +106,40 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { public void visit(InitDeclaratorList n) { assert skip_mode == true; - super.visit (n); + super.visit(n); assert skip_mode == true; } - + public void visit(Initializer n) { assert skip_mode == true; - super.visit (n); + if (n.f0.which == 0) { + boolean old_mode = skip_mode; + skip_mode = false; + ExpressionBuilder old = current_expression; + current_expression = new ExpressionBuilder(); + n.f0.accept(this); + if (old != null) { + old.push(current_expression.expression); + LineNumberInfo lin = LineNumberInfo.get(n); + old.commit(lin.lineEnd); + } + current_expression = old; + skip_mode = old_mode; + } else { + super.visit(n); + } assert skip_mode == true; } public void visit(InitializerList n) { assert skip_mode == true; - super.visit (n); + super.visit(n); assert skip_mode == true; } - + public void visit(VariableDeclaration n) { assert skip_mode == true; - super.visit (n); + super.visit(n); } public void visit(FunctionDeclaration n) { @@ -142,8 +157,7 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { public void visit(ParameterDeclaration n) { skip_mode = false; assert current_expression == null; - if (n.f1.present()) - { + if (n.f1.present()) { NodeSequence ns = (NodeSequence) n.f1.node; Node var = ns.elementAt(0); current_expression = new ExpressionBuilder(); @@ -286,21 +300,6 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { current_expression = old; } - public void visit(AssignmentExpression n) { - boolean old_mode = skip_mode; - skip_mode = false; - ExpressionBuilder old = current_expression; - current_expression = new ExpressionBuilder(); - n.f0.accept(this); - if (old != null) { - old.push(current_expression.expression); - LineNumberInfo lin = LineNumberInfo.get(n); - old.commit(lin.lineEnd); - } - current_expression = old; - skip_mode = old_mode; - } - public void visit(AssignmentOperator n) { operator = true; super.visit(n); @@ -313,16 +312,18 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { n.f0.accept(this); old.push(current_expression.expression); if (n.f1.present()) { + LineNumberInfo lin = LineNumberInfo.get(n); NodeSequence ns = (NodeSequence) n.f1.node; current_expression = new ExpressionBuilder(); ns.elementAt(1).accept(this); + current_expression.commit(lin.lineEnd); old.push("?"); old.push(current_expression.expression); current_expression = new ExpressionBuilder(); ns.elementAt(3).accept(this); + current_expression.commit(lin.lineEnd); old.push(":"); old.push(current_expression.expression); - LineNumberInfo lin = LineNumberInfo.get(n); old.commit(lin.lineEnd); } current_expression = old; @@ -338,11 +339,16 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { current_expression = new ExpressionBuilder(); n.f0.accept(this); if (n.f1.present()) { + LineNumberInfo lin = LineNumberInfo.get(n); + current_expression.commit(lin.lineEnd); operator = true; NodeSequence ns = (NodeSequence) n.f1.node; ns.nodes.get(0).accept(this); operator = false; + old.push(current_expression.expression); + current_expression = new ExpressionBuilder(); ns.nodes.get(1).accept(this); + current_expression.commit(lin.lineEnd); } old.push(current_expression.expression); current_expression = old; @@ -354,11 +360,16 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { current_expression = new ExpressionBuilder(); n.f0.accept(this); if (n.f1.present()) { + LineNumberInfo lin = LineNumberInfo.get(n); + current_expression.commit(lin.lineEnd); operator = true; NodeSequence ns = (NodeSequence) n.f1.node; ns.nodes.get(0).accept(this); operator = false; + old.push(current_expression.expression); + current_expression = new ExpressionBuilder(); ns.nodes.get(1).accept(this); + current_expression.commit(lin.lineEnd); } old.push(current_expression.expression); current_expression = old; @@ -421,7 +432,7 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { n.f0.accept(this); if (n.f1.present()) { LineNumberInfo lin = LineNumberInfo.get(n); - current_expression.commit(lin.lineEnd); + current_expression.commit(lin.lineEnd); operator = true; NodeSequence ns = (NodeSequence) n.f1.node; ns.nodes.get(0).accept(this); @@ -429,7 +440,7 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor { old.push(current_expression.expression); current_expression = new ExpressionBuilder(); ns.nodes.get(1).accept(this); - current_expression.commit(lin.lineEnd); + current_expression.commit(lin.lineEnd); } old.push(current_expression.expression); current_expression = old; diff --git a/src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c b/src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c index d77a16a98..09e6e4710 100644 --- a/src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c +++ b/src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c @@ -55,7 +55,7 @@ int main(int args, const char * argv[]) /* for loop */ for (i = 0; i < 2; i++) { /* conditional expressions */ - if ( x > 0) { + if ( x > 0) { while (y < 5) { y++; } -- cgit v1.2.3