commit | b2527c126f1a8c4f2a3259481996915a93aef5c6 | [log] [tgz] |
---|---|---|
author | ilovesoup <ilovesoup@eaa15691-b419-025a-1212-ee371bd00084> | Thu Jul 12 03:21:13 2012 +0000 |
committer | ilovesoup <ilovesoup@eaa15691-b419-025a-1212-ee371bd00084> | Thu Jul 12 03:21:13 2012 +0000 |
tree | 95b931d1c914249c47dfbab3698ceb23915139fa | |
parent | c9fef1da25167a86d4ecb9d7642354cff13462d0 [diff] |
change parser: now left hand side var of let clause will not enter symbol table scope until right hand side expression is parsed. git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_function_merge@483 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-algebra/src/main/java/edu/uci/ics/asterix/translator/AqlExpressionToPlanTranslator.java b/asterix-algebra/src/main/java/edu/uci/ics/asterix/translator/AqlExpressionToPlanTranslator.java index e004a7d..8f928f2 100644 --- a/asterix-algebra/src/main/java/edu/uci/ics/asterix/translator/AqlExpressionToPlanTranslator.java +++ b/asterix-algebra/src/main/java/edu/uci/ics/asterix/translator/AqlExpressionToPlanTranslator.java
@@ -348,9 +348,9 @@ break; } default: { + v = context.newVar(lc.getVarExpr()); Pair<ILogicalExpression, Mutable<ILogicalOperator>> eo = aqlExprToAlgExpression(lc.getBindingExpr(), - tupSource); - v = context.newVar(lc.getVarExpr()); + tupSource); returnedOp = new AssignOperator(v, new MutableObject<ILogicalExpression>(eo.first)); returnedOp.getInputs().add(eo.second); break;
diff --git a/asterix-algebra/src/main/javacc/AQLPlus.jj b/asterix-algebra/src/main/javacc/AQLPlus.jj index 4a10ca0..3422652 100644 --- a/asterix-algebra/src/main/javacc/AQLPlus.jj +++ b/asterix-algebra/src/main/javacc/AQLPlus.jj
@@ -1237,12 +1237,9 @@ extendCurrentScope(); } { - "let" varExp = Variable() + "let" varExp = Variable() ":=" beExp = Expression() { getCurrentScope().addNewVarSymbolToScope(varExp.getVar()); - } - ":=" beExp = Expression() - { lc.setVarExpr(varExp); lc.setBeExpr(beExp); return lc;
diff --git a/asterix-aql/src/main/javacc/AQL.jj b/asterix-aql/src/main/javacc/AQL.jj index b55f9c8..0767c4e 100644 --- a/asterix-aql/src/main/javacc/AQL.jj +++ b/asterix-aql/src/main/javacc/AQL.jj
@@ -1865,12 +1865,9 @@ extendCurrentScope(); } { - "let" varExp = Variable() + "let" varExp = Variable() ":=" beExp = Expression() { getCurrentScope().addNewVarSymbolToScope(varExp.getVar()); - } - ":=" beExp = Expression() - { lc.setVarExpr(varExp); lc.setBeExpr(beExp); return lc;