diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-11-12 11:20:12 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-11-12 11:20:12 +0000 |
commit | 98b6f4ba9988fce9e3e55a9aca7e7d59fd638543 (patch) | |
tree | 37961327d81cb182d7176a07f3190979c0a21598 /src/monkey/seaspider | |
parent | 303817bf030ecf0dad80523fed46fe7604234fef (diff) | |
download | gnunet-98b6f4ba9988fce9e3e55a9aca7e7d59fd638543.tar.gz gnunet-98b6f4ba9988fce9e3e55a9aca7e7d59fd638543.zip |
fixes
Diffstat (limited to 'src/monkey/seaspider')
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 | ||
10 | public class ExpressionDatabaseHandler { | 10 | public 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 | } |