aboutsummaryrefslogtreecommitdiff
path: root/src/monkey
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-11-26 11:14:32 +0000
committerChristian Grothoff <christian@grothoff.org>2010-11-26 11:14:32 +0000
commit61ed99a0c77674d7408733c7c4972f3cf09ad375 (patch)
treee3f1d5cffeb1b3cc604d3ef4fc87501e9b76c26b /src/monkey
parent26c8d636296f130c9da010fdd1dfe3643ffac346 (diff)
downloadgnunet-61ed99a0c77674d7408733c7c4972f3cf09ad375.tar.gz
gnunet-61ed99a0c77674d7408733c7c4972f3cf09ad375.zip
fix
Diffstat (limited to 'src/monkey')
-rwxr-xr-xsrc/monkey/seaspider/Makefile2
-rw-r--r--src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java2
-rw-r--r--src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java33
3 files changed, 33 insertions, 4 deletions
diff --git a/src/monkey/seaspider/Makefile b/src/monkey/seaspider/Makefile
index 3ac6d508c..0f7a0b668 100755
--- a/src/monkey/seaspider/Makefile
+++ b/src/monkey/seaspider/Makefile
@@ -1,5 +1,5 @@
1all: 1all:
2 jtb C.jj 2 jtb C.jj
3 javacc C.out.jj 3 javacc C.out.jj
4 javac -5 -nowarn -classpath ../../../contrib/antlr-runtime-3.1.3.jariantlr-runtime-3.1.3.jarantlr-runtime-3.1.3.jar:../../../contrib/sqljet.1.0.3.b914.jar `find * -name "*.java"` 4 javac -nowarn -classpath ../../../contrib/antlr-runtime-3.1.3.jariantlr-runtime-3.1.3.jarantlr-runtime-3.1.3.jar:../../../contrib/sqljet.1.0.3.b914.jar `find * -name "*.java"`
5 jar -cvf seaspider.jar `find * -name "*.class"` 5 jar -cvf seaspider.jar `find * -name "*.class"`
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 f0e104486..59afc51ce 100644
--- a/src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java
+++ b/src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java
@@ -3,6 +3,7 @@ package org.gnunet.seaspider;
3import org.gnunet.seaspider.parser.nodes.ANDExpression; 3import org.gnunet.seaspider.parser.nodes.ANDExpression;
4import org.gnunet.seaspider.parser.nodes.AdditiveExpression; 4import org.gnunet.seaspider.parser.nodes.AdditiveExpression;
5import org.gnunet.seaspider.parser.nodes.ArgumentExpressionList; 5import org.gnunet.seaspider.parser.nodes.ArgumentExpressionList;
6import org.gnunet.seaspider.parser.nodes.AssignmentExpression;
6import org.gnunet.seaspider.parser.nodes.AssignmentOperator; 7import org.gnunet.seaspider.parser.nodes.AssignmentOperator;
7import org.gnunet.seaspider.parser.nodes.CastExpression; 8import org.gnunet.seaspider.parser.nodes.CastExpression;
8import org.gnunet.seaspider.parser.nodes.CompoundStatement; 9import org.gnunet.seaspider.parser.nodes.CompoundStatement;
@@ -297,13 +298,41 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
297 } 298 }
298 old.push(current_expression.expression); 299 old.push(current_expression.expression);
299 current_expression = old; 300 current_expression = old;
300 } 301 }
301 302
302 public void visit(AssignmentOperator n) { 303 public void visit(AssignmentOperator n) {
303 operator = true; 304 operator = true;
304 super.visit(n); 305 super.visit(n);
305 operator = false; 306 operator = false;
306 } 307 }
308
309 public void visit(AssignmentExpression n)
310 {
311 if (0 == n.f0.which)
312 {
313 NodeSequence ns = (NodeSequence) n.f0.choice;
314 UnaryExpression u = (UnaryExpression) ns.elementAt(0);
315 AssignmentOperator ao = (AssignmentOperator) ns.elementAt(1);
316 AssignmentExpression ae = (AssignmentExpression) ns.elementAt(2);
317 LineNumberInfo lin = LineNumberInfo.get(n);
318
319 ExpressionBuilder old = current_expression;
320 current_expression = new ExpressionBuilder();
321 u.accept(this);
322 current_expression.commit(lin.lineEnd);
323 ao.accept (this);
324 old.push(current_expression.expression);
325 current_expression = new ExpressionBuilder();
326 ae.accept(this);
327 current_expression.commit(lin.lineEnd);
328 old.push(current_expression.expression);
329 current_expression = old;
330 }
331 else
332 {
333 n.f0.choice.accept (this);
334 }
335 }
307 336
308 public void visit(ConditionalExpression n) { 337 public void visit(ConditionalExpression n) {
309 ExpressionBuilder old = current_expression; 338 ExpressionBuilder old = current_expression;