aboutsummaryrefslogtreecommitdiff
path: root/src/monkey
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-11-12 11:20:12 +0000
committerChristian Grothoff <christian@grothoff.org>2010-11-12 11:20:12 +0000
commit98b6f4ba9988fce9e3e55a9aca7e7d59fd638543 (patch)
tree37961327d81cb182d7176a07f3190979c0a21598 /src/monkey
parent303817bf030ecf0dad80523fed46fe7604234fef (diff)
downloadgnunet-98b6f4ba9988fce9e3e55a9aca7e7d59fd638543.tar.gz
gnunet-98b6f4ba9988fce9e3e55a9aca7e7d59fd638543.zip
fixes
Diffstat (limited to 'src/monkey')
-rw-r--r--src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java2
-rw-r--r--src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java63
-rw-r--r--src/monkey/seaspider/org/gnunet/seaspider/SeaspiderTest.c2
3 files changed, 39 insertions, 28 deletions
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;
9 9
10public class ExpressionDatabaseHandler { 10public class ExpressionDatabaseHandler {
11 11
12 private static final boolean DEBUG = false; 12 private static final boolean DEBUG = true;
13 13
14 private static SqlJetDb db; 14 private static SqlJetDb db;
15 15
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 {
106 106
107 public void visit(InitDeclaratorList n) { 107 public void visit(InitDeclaratorList n) {
108 assert skip_mode == true; 108 assert skip_mode == true;
109 super.visit (n); 109 super.visit(n);
110 assert skip_mode == true; 110 assert skip_mode == true;
111 } 111 }
112 112
113 public void visit(Initializer n) { 113 public void visit(Initializer n) {
114 assert skip_mode == true; 114 assert skip_mode == true;
115 super.visit (n); 115 if (n.f0.which == 0) {
116 boolean old_mode = skip_mode;
117 skip_mode = false;
118 ExpressionBuilder old = current_expression;
119 current_expression = new ExpressionBuilder();
120 n.f0.accept(this);
121 if (old != null) {
122 old.push(current_expression.expression);
123 LineNumberInfo lin = LineNumberInfo.get(n);
124 old.commit(lin.lineEnd);
125 }
126 current_expression = old;
127 skip_mode = old_mode;
128 } else {
129 super.visit(n);
130 }
116 assert skip_mode == true; 131 assert skip_mode == true;
117 } 132 }
118 133
119 public void visit(InitializerList n) { 134 public void visit(InitializerList n) {
120 assert skip_mode == true; 135 assert skip_mode == true;
121 super.visit (n); 136 super.visit(n);
122 assert skip_mode == true; 137 assert skip_mode == true;
123 } 138 }
124 139
125 public void visit(VariableDeclaration n) { 140 public void visit(VariableDeclaration n) {
126 assert skip_mode == true; 141 assert skip_mode == true;
127 super.visit (n); 142 super.visit(n);
128 } 143 }
129 144
130 public void visit(FunctionDeclaration n) { 145 public void visit(FunctionDeclaration n) {
@@ -142,8 +157,7 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
142 public void visit(ParameterDeclaration n) { 157 public void visit(ParameterDeclaration n) {
143 skip_mode = false; 158 skip_mode = false;
144 assert current_expression == null; 159 assert current_expression == null;
145 if (n.f1.present()) 160 if (n.f1.present()) {
146 {
147 NodeSequence ns = (NodeSequence) n.f1.node; 161 NodeSequence ns = (NodeSequence) n.f1.node;
148 Node var = ns.elementAt(0); 162 Node var = ns.elementAt(0);
149 current_expression = new ExpressionBuilder(); 163 current_expression = new ExpressionBuilder();
@@ -286,21 +300,6 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
286 current_expression = old; 300 current_expression = old;
287 } 301 }
288 302
289 public void visit(AssignmentExpression n) {
290 boolean old_mode = skip_mode;
291 skip_mode = false;
292 ExpressionBuilder old = current_expression;
293 current_expression = new ExpressionBuilder();
294 n.f0.accept(this);
295 if (old != null) {
296 old.push(current_expression.expression);
297 LineNumberInfo lin = LineNumberInfo.get(n);
298 old.commit(lin.lineEnd);
299 }
300 current_expression = old;
301 skip_mode = old_mode;
302 }
303
304 public void visit(AssignmentOperator n) { 303 public void visit(AssignmentOperator n) {
305 operator = true; 304 operator = true;
306 super.visit(n); 305 super.visit(n);
@@ -313,16 +312,18 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
313 n.f0.accept(this); 312 n.f0.accept(this);
314 old.push(current_expression.expression); 313 old.push(current_expression.expression);
315 if (n.f1.present()) { 314 if (n.f1.present()) {
315 LineNumberInfo lin = LineNumberInfo.get(n);
316 NodeSequence ns = (NodeSequence) n.f1.node; 316 NodeSequence ns = (NodeSequence) n.f1.node;
317 current_expression = new ExpressionBuilder(); 317 current_expression = new ExpressionBuilder();
318 ns.elementAt(1).accept(this); 318 ns.elementAt(1).accept(this);
319 current_expression.commit(lin.lineEnd);
319 old.push("?"); 320 old.push("?");
320 old.push(current_expression.expression); 321 old.push(current_expression.expression);
321 current_expression = new ExpressionBuilder(); 322 current_expression = new ExpressionBuilder();
322 ns.elementAt(3).accept(this); 323 ns.elementAt(3).accept(this);
324 current_expression.commit(lin.lineEnd);
323 old.push(":"); 325 old.push(":");
324 old.push(current_expression.expression); 326 old.push(current_expression.expression);
325 LineNumberInfo lin = LineNumberInfo.get(n);
326 old.commit(lin.lineEnd); 327 old.commit(lin.lineEnd);
327 } 328 }
328 current_expression = old; 329 current_expression = old;
@@ -338,11 +339,16 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
338 current_expression = new ExpressionBuilder(); 339 current_expression = new ExpressionBuilder();
339 n.f0.accept(this); 340 n.f0.accept(this);
340 if (n.f1.present()) { 341 if (n.f1.present()) {
342 LineNumberInfo lin = LineNumberInfo.get(n);
343 current_expression.commit(lin.lineEnd);
341 operator = true; 344 operator = true;
342 NodeSequence ns = (NodeSequence) n.f1.node; 345 NodeSequence ns = (NodeSequence) n.f1.node;
343 ns.nodes.get(0).accept(this); 346 ns.nodes.get(0).accept(this);
344 operator = false; 347 operator = false;
348 old.push(current_expression.expression);
349 current_expression = new ExpressionBuilder();
345 ns.nodes.get(1).accept(this); 350 ns.nodes.get(1).accept(this);
351 current_expression.commit(lin.lineEnd);
346 } 352 }
347 old.push(current_expression.expression); 353 old.push(current_expression.expression);
348 current_expression = old; 354 current_expression = old;
@@ -354,11 +360,16 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
354 current_expression = new ExpressionBuilder(); 360 current_expression = new ExpressionBuilder();
355 n.f0.accept(this); 361 n.f0.accept(this);
356 if (n.f1.present()) { 362 if (n.f1.present()) {
363 LineNumberInfo lin = LineNumberInfo.get(n);
364 current_expression.commit(lin.lineEnd);
357 operator = true; 365 operator = true;
358 NodeSequence ns = (NodeSequence) n.f1.node; 366 NodeSequence ns = (NodeSequence) n.f1.node;
359 ns.nodes.get(0).accept(this); 367 ns.nodes.get(0).accept(this);
360 operator = false; 368 operator = false;
369 old.push(current_expression.expression);
370 current_expression = new ExpressionBuilder();
361 ns.nodes.get(1).accept(this); 371 ns.nodes.get(1).accept(this);
372 current_expression.commit(lin.lineEnd);
362 } 373 }
363 old.push(current_expression.expression); 374 old.push(current_expression.expression);
364 current_expression = old; 375 current_expression = old;
@@ -421,7 +432,7 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
421 n.f0.accept(this); 432 n.f0.accept(this);
422 if (n.f1.present()) { 433 if (n.f1.present()) {
423 LineNumberInfo lin = LineNumberInfo.get(n); 434 LineNumberInfo lin = LineNumberInfo.get(n);
424 current_expression.commit(lin.lineEnd); 435 current_expression.commit(lin.lineEnd);
425 operator = true; 436 operator = true;
426 NodeSequence ns = (NodeSequence) n.f1.node; 437 NodeSequence ns = (NodeSequence) n.f1.node;
427 ns.nodes.get(0).accept(this); 438 ns.nodes.get(0).accept(this);
@@ -429,7 +440,7 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
429 old.push(current_expression.expression); 440 old.push(current_expression.expression);
430 current_expression = new ExpressionBuilder(); 441 current_expression = new ExpressionBuilder();
431 ns.nodes.get(1).accept(this); 442 ns.nodes.get(1).accept(this);
432 current_expression.commit(lin.lineEnd); 443 current_expression.commit(lin.lineEnd);
433 } 444 }
434 old.push(current_expression.expression); 445 old.push(current_expression.expression);
435 current_expression = old; 446 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[])
55 /* for loop */ 55 /* for loop */
56 for (i = 0; i < 2; i++) { 56 for (i = 0; i < 2; i++) {
57 /* conditional expressions */ 57 /* conditional expressions */
58 if ( x > 0) { 58 if ( x > 0) {
59 while (y < 5) { 59 while (y < 5) {
60 y++; 60 y++;
61 } 61 }