fix
authorChristian Grothoff <christian@grothoff.org>
Fri, 26 Nov 2010 11:14:32 +0000 (11:14 +0000)
committerChristian Grothoff <christian@grothoff.org>
Fri, 26 Nov 2010 11:14:32 +0000 (11:14 +0000)
src/monkey/seaspider/Makefile
src/monkey/seaspider/org/gnunet/seaspider/ExpressionDatabaseHandler.java
src/monkey/seaspider/org/gnunet/seaspider/ExpressionExtractorVisitor.java

index 3ac6d508c2b8660cac0a41289ccb873f4e51b651..0f7a0b6680fe7cb2cf863bc910ba574b5b09e8a9 100755 (executable)
@@ -1,5 +1,5 @@
 all:
        jtb C.jj
        javacc C.out.jj
-       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"`
+       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"`
        jar -cvf seaspider.jar `find * -name "*.class"` 
index 5b269259b2ccabe7891d6012300cec81a26e6d1b..4cd938a7174d03c22ad398d4aba2da1594caaf82 100644 (file)
@@ -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;
 
index f0e1044869b2824bec54089218257cc36e5b1e06..59afc51cecd993664f58cd3b666f9b06110d01f0 100644 (file)
@@ -3,6 +3,7 @@ package org.gnunet.seaspider;
 import org.gnunet.seaspider.parser.nodes.ANDExpression;
 import org.gnunet.seaspider.parser.nodes.AdditiveExpression;
 import org.gnunet.seaspider.parser.nodes.ArgumentExpressionList;
+import org.gnunet.seaspider.parser.nodes.AssignmentExpression;
 import org.gnunet.seaspider.parser.nodes.AssignmentOperator;
 import org.gnunet.seaspider.parser.nodes.CastExpression;
 import org.gnunet.seaspider.parser.nodes.CompoundStatement;
@@ -297,13 +298,41 @@ public class ExpressionExtractorVisitor extends DepthFirstVisitor {
                }
                old.push(current_expression.expression);
                current_expression = old;
-       }
-
+       }       
+       
        public void visit(AssignmentOperator n) {
                operator = true;
                super.visit(n);
                operator = false;
        }
+       
+       public void visit(AssignmentExpression n)
+       {
+               if (0 == n.f0.which)
+               {
+                       NodeSequence ns = (NodeSequence) n.f0.choice;
+                       UnaryExpression u = (UnaryExpression) ns.elementAt(0);
+                       AssignmentOperator ao = (AssignmentOperator) ns.elementAt(1);
+                       AssignmentExpression ae = (AssignmentExpression) ns.elementAt(2);
+                       LineNumberInfo lin = LineNumberInfo.get(n);
+
+                       ExpressionBuilder old = current_expression;
+                       current_expression = new ExpressionBuilder();
+                       u.accept(this);
+                       current_expression.commit(lin.lineEnd);
+                       ao.accept (this);
+                       old.push(current_expression.expression);
+                       current_expression = new ExpressionBuilder();
+                       ae.accept(this);
+                       current_expression.commit(lin.lineEnd);
+                       old.push(current_expression.expression);
+                       current_expression = old;
+               }
+               else
+               {
+                       n.f0.choice.accept (this);
+               }
+       }
 
        public void visit(ConditionalExpression n) {
                ExpressionBuilder old = current_expression;