From: Christian Grothoff Date: Fri, 26 Nov 2010 11:14:32 +0000 (+0000) Subject: fix X-Git-Tag: initial-import-from-subversion-38251~19618 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=61ed99a0c77674d7408733c7c4972f3cf09ad375;p=oweals%2Fgnunet.git fix --- 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 @@ 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"` 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 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; 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;