public void CheckRewriteRuleNodeStreamConstructors() { RewriteRuleNodeStream nodeTest1 = new RewriteRuleNodeStream(CreateTreeAdaptor(), "RewriteRuleNodeStream test1"); RewriteRuleNodeStream nodeTest2 = new RewriteRuleNodeStream(CreateTreeAdaptor(), "RewriteRuleNodeStream test2", CreateToken(1, "test token without any real context")); RewriteRuleNodeStream nodeTest3 = new RewriteRuleNodeStream(CreateTreeAdaptor(), "RewriteRuleNodeStream test3", CreateTokenList(4)); }
public void CheckRRNodeStreamBehaviourWhileEmpty2() { RewriteRuleNodeStream nodeTest = new RewriteRuleNodeStream(CreateTreeAdaptor(), "RewriteRuleNodeStream test"); nodeTest.NextTree(); }
public void CheckRRNodeStreamBehaviourWithElements() { RewriteRuleNodeStream nodeTest = new RewriteRuleNodeStream(CreateTreeAdaptor(), "RewriteRuleNodeStream test"); IToken token1 = CreateToken(1, "test token without any real context"); ITree tree1 = CreateTree(token1); // Test Add() nodeTest.Add(tree1); Assert.AreEqual(1, nodeTest.Size(), "nodeTest should have the size 1 (1)."); Assert.IsTrue(nodeTest.HasNext(), "HasNext() should be true here (1)."); // Test NextNode() CommonTree returnedTree = (CommonTree) nodeTest.NextNode(); Assert.AreEqual(tree1.Type, returnedTree.Type, "The returned tree should be equal to the given tree (1)."); Assert.AreEqual(1, nodeTest.Size(), "nodeTest should have the size 1 (2)."); Assert.IsFalse(nodeTest.HasNext(), "HasNext() should be false here (1)."); nodeTest.Reset(); Assert.AreEqual(1, nodeTest.Size(), "nodeTest should have the size 1 (3)."); Assert.IsTrue(nodeTest.HasNext(), "HasNext() should be true here (2)."); // Test NextTree() returnedTree = (CommonTree) nodeTest.NextTree(); Assert.AreEqual(token1, returnedTree.Token, "The returned token should be equal to the given token (3)."); Assert.AreEqual(1, nodeTest.Size(), "nodeTest should have the size 1 (4)."); Assert.IsFalse(nodeTest.HasNext(), "HasNext() should be false here (2)."); nodeTest.Reset(); Assert.AreEqual(1, nodeTest.Size(), "nodeTest should have the size 1 (5)."); Assert.IsTrue(nodeTest.HasNext(), "HasNext() should be true here (3)."); // Test, what happens with two elements IToken token2 = CreateToken(2, "test token without any real context"); ITree tree2 = CreateTree(token2); nodeTest.Add(tree2); Assert.AreEqual(2, nodeTest.Size(), "nodeTest should have the size 2 (1)."); Assert.IsTrue(nodeTest.HasNext(), "HasNext() should be true here (4)."); returnedTree = (CommonTree) nodeTest.NextTree(); Assert.AreEqual(token1, returnedTree.Token, "The returned token should be equal to the given token (4)."); Assert.AreEqual(2, nodeTest.Size(), "nodeTest should have the size 2 (2)."); Assert.IsTrue(nodeTest.HasNext(), "HasNext() should be true here (5)."); returnedTree = (CommonTree) nodeTest.NextTree(); Assert.AreEqual(token2, returnedTree.Token, "The returned token should be equal to the given token (5)."); Assert.IsFalse(nodeTest.HasNext(), "HasNext() should be false here (3)."); // Test exception nodeTest.NextTree(); }
// $ANTLR start "parameter" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:517:1: parameter : ( ^(c= COLON a= identifier ) -> ^() | ^(p= PARAM (n= NUM_INT )? ) -> {n != null}? ^() -> ^() ); public HqlSqlWalker.parameter_return parameter() // throws RecognitionException [1] { HqlSqlWalker.parameter_return retval = new HqlSqlWalker.parameter_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode c = null; IASTNode p = null; IASTNode n = null; HqlSqlWalker.identifier_return a = default(HqlSqlWalker.identifier_return); IASTNode c_tree=null; IASTNode p_tree=null; IASTNode n_tree=null; RewriteRuleNodeStream stream_PARAM = new RewriteRuleNodeStream(adaptor,"token PARAM"); RewriteRuleNodeStream stream_NUM_INT = new RewriteRuleNodeStream(adaptor,"token NUM_INT"); RewriteRuleNodeStream stream_COLON = new RewriteRuleNodeStream(adaptor,"token COLON"); RewriteRuleSubtreeStream stream_identifier = new RewriteRuleSubtreeStream(adaptor,"rule identifier"); try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:518:2: ( ^(c= COLON a= identifier ) -> ^() | ^(p= PARAM (n= NUM_INT )? ) -> {n != null}? ^() -> ^() ) int alt65 = 2; int LA65_0 = input.LA(1); if ( (LA65_0 == COLON) ) { alt65 = 1; } else if ( (LA65_0 == PARAM) ) { alt65 = 2; } else { NoViableAltException nvae_d65s0 = new NoViableAltException("", 65, 0, input); throw nvae_d65s0; } switch (alt65) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:518:4: ^(c= COLON a= identifier ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); c=(IASTNode)Match(input,COLON,FOLLOW_COLON_in_parameter2550); stream_COLON.Add(c); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_identifier_in_parameter2554); a = identifier(); state.followingStackPointer--; stream_identifier.Add(a.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 520:3: -> ^() { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:520:6: ^() { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(GenerateNamedParameter( c, ((a != null) ? ((IASTNode)a.Tree) : null) ), root_1); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:521:4: ^(p= PARAM (n= NUM_INT )? ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); p=(IASTNode)Match(input,PARAM,FOLLOW_PARAM_in_parameter2575); stream_PARAM.Add(p); if ( input.LA(1) == Token.DOWN ) { Match(input, Token.DOWN, null); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:521:14: (n= NUM_INT )? int alt64 = 2; int LA64_0 = input.LA(1); if ( (LA64_0 == NUM_INT) ) { alt64 = 1; } switch (alt64) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:521:15: n= NUM_INT { _last = (IASTNode)input.LT(1); n=(IASTNode)Match(input,NUM_INT,FOLLOW_NUM_INT_in_parameter2580); stream_NUM_INT.Add(n); } break; } Match(input, Token.UP, null); }adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 522:3: -> {n != null}? ^() if (n != null) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:522:19: ^() { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(GenerateNamedParameter( p, n ), root_1); adaptor.AddChild(root_0, root_1); } } else // 523:3: -> ^() { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:523:6: ^() { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(GeneratePositionalParameter( p ), root_1); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
public void CheckRRNodeStreamBehaviourWhileEmpty1() { string description = "RewriteRuleNodeStream test"; RewriteRuleNodeStream nodeTest = new RewriteRuleNodeStream(CreateTreeAdaptor(), description); Assert.IsFalse(nodeTest.HasNext(), "HasNext() has to give back false here."); Assert.AreEqual(description.ToString(), nodeTest.Description, "Description strings should be equal."); Assert.AreEqual(0, nodeTest.Size(), "The number of elements should be zero."); nodeTest.Reset(); Assert.IsTrue(true, "Reset() shouldn't make any problems here."); Assert.AreEqual(0, nodeTest.Size(), "The number of elements should be still zero."); nodeTest.NextNode(); }
// $ANTLR start "addrExprIndex" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:446:1: addrExprIndex[ bool root ] : ^(i= INDEX_OP lhs2= addrExprLhs rhs2= expr ) -> ^( $i $lhs2 $rhs2) ; public HqlSqlWalker.addrExprIndex_return addrExprIndex(bool root) // throws RecognitionException [1] { HqlSqlWalker.addrExprIndex_return retval = new HqlSqlWalker.addrExprIndex_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode i = null; HqlSqlWalker.addrExprLhs_return lhs2 = default(HqlSqlWalker.addrExprLhs_return); HqlSqlWalker.expr_return rhs2 = default(HqlSqlWalker.expr_return); IASTNode i_tree=null; RewriteRuleNodeStream stream_INDEX_OP = new RewriteRuleNodeStream(adaptor,"token INDEX_OP"); RewriteRuleSubtreeStream stream_expr = new RewriteRuleSubtreeStream(adaptor,"rule expr"); RewriteRuleSubtreeStream stream_addrExprLhs = new RewriteRuleSubtreeStream(adaptor,"rule addrExprLhs"); try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:452:2: ( ^(i= INDEX_OP lhs2= addrExprLhs rhs2= expr ) -> ^( $i $lhs2 $rhs2) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:452:4: ^(i= INDEX_OP lhs2= addrExprLhs rhs2= expr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); i=(IASTNode)Match(input,INDEX_OP,FOLLOW_INDEX_OP_in_addrExprIndex2321); stream_INDEX_OP.Add(i); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_addrExprLhs_in_addrExprIndex2325); lhs2 = addrExprLhs(); state.followingStackPointer--; stream_addrExprLhs.Add(lhs2.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_expr_in_addrExprIndex2329); rhs2 = expr(); state.followingStackPointer--; stream_expr.Add(rhs2.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: rhs2, lhs2, i // token labels: i // rule labels: rhs2, retval, lhs2 // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_i = new RewriteRuleNodeStream(adaptor, "token i", i); RewriteRuleSubtreeStream stream_rhs2 = new RewriteRuleSubtreeStream(adaptor, "rule rhs2", rhs2!=null ? rhs2.Tree : null); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_lhs2 = new RewriteRuleSubtreeStream(adaptor, "rule lhs2", lhs2!=null ? lhs2.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 453:3: -> ^( $i $lhs2 $rhs2) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:453:6: ^( $i $lhs2 $rhs2) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_i.NextNode(), root_1); adaptor.AddChild(root_1, stream_lhs2.NextTree()); adaptor.AddChild(root_1, stream_rhs2.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); ProcessIndex(((IASTNode)retval.Tree)); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "propertyRefPath" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:478:1: propertyRefPath : ^(d= DOT lhs= propertyRefLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ; public HqlSqlWalker.propertyRefPath_return propertyRefPath() // throws RecognitionException [1] { HqlSqlWalker.propertyRefPath_return retval = new HqlSqlWalker.propertyRefPath_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode d = null; HqlSqlWalker.propertyRefLhs_return lhs = default(HqlSqlWalker.propertyRefLhs_return); HqlSqlWalker.propertyName_return rhs = default(HqlSqlWalker.propertyName_return); IASTNode d_tree=null; RewriteRuleNodeStream stream_DOT = new RewriteRuleNodeStream(adaptor,"token DOT"); RewriteRuleSubtreeStream stream_propertyName = new RewriteRuleSubtreeStream(adaptor,"rule propertyName"); RewriteRuleSubtreeStream stream_propertyRefLhs = new RewriteRuleSubtreeStream(adaptor,"rule propertyRefLhs"); try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:483:2: ( ^(d= DOT lhs= propertyRefLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:483:4: ^(d= DOT lhs= propertyRefLhs rhs= propertyName ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); d=(IASTNode)Match(input,DOT,FOLLOW_DOT_in_propertyRefPath2454); stream_DOT.Add(d); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_propertyRefLhs_in_propertyRefPath2458); lhs = propertyRefLhs(); state.followingStackPointer--; stream_propertyRefLhs.Add(lhs.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_propertyName_in_propertyRefPath2462); rhs = propertyName(); state.followingStackPointer--; stream_propertyName.Add(rhs.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: d, lhs, rhs // token labels: d // rule labels: lhs, retval, rhs // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_d = new RewriteRuleNodeStream(adaptor, "token d", d); RewriteRuleSubtreeStream stream_lhs = new RewriteRuleSubtreeStream(adaptor, "rule lhs", lhs!=null ? lhs.Tree : null); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_rhs = new RewriteRuleSubtreeStream(adaptor, "rule rhs", rhs!=null ? rhs.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 484:3: -> ^( $d $lhs $rhs) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:484:6: ^( $d $lhs $rhs) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_d.NextNode(), root_1); adaptor.AddChild(root_1, stream_lhs.NextTree()); adaptor.AddChild(root_1, stream_rhs.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); // This gives lookupProperty() a chance to transform the tree to process collection properties (.elements, etc). retval.Tree = LookupProperty((IASTNode) retval.Tree,false,true); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "whereClause" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:292:1: whereClause : ^(w= WHERE b= logicalExpr ) -> ^( $w $b) ; public HqlSqlWalker.whereClause_return whereClause() // throws RecognitionException [1] { HqlSqlWalker.whereClause_return retval = new HqlSqlWalker.whereClause_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode w = null; HqlSqlWalker.logicalExpr_return b = default(HqlSqlWalker.logicalExpr_return); IASTNode w_tree=null; RewriteRuleNodeStream stream_WHERE = new RewriteRuleNodeStream(adaptor,"token WHERE"); RewriteRuleSubtreeStream stream_logicalExpr = new RewriteRuleSubtreeStream(adaptor,"rule logicalExpr"); try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:293:2: ( ^(w= WHERE b= logicalExpr ) -> ^( $w $b) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:293:4: ^(w= WHERE b= logicalExpr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); w=(IASTNode)Match(input,WHERE,FOLLOW_WHERE_in_whereClause1355); stream_WHERE.Add(w); HandleClauseStart( WHERE ); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_whereClause1361); b = logicalExpr(); state.followingStackPointer--; stream_logicalExpr.Add(b.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: w, b // token labels: w // rule labels: retval, b // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_w = new RewriteRuleNodeStream(adaptor, "token w", w); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_b = new RewriteRuleSubtreeStream(adaptor, "rule b", b!=null ? b.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 294:2: -> ^( $w $b) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:294:5: ^( $w $b) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_w.NextNode(), root_1); adaptor.AddChild(root_1, stream_b.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "updateStatement" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:51:1: updateStatement : ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ; public HqlSqlWalker.updateStatement_return updateStatement() // throws RecognitionException [1] { HqlSqlWalker.updateStatement_return retval = new HqlSqlWalker.updateStatement_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode u = null; IASTNode v = null; HqlSqlWalker.fromClause_return f = default(HqlSqlWalker.fromClause_return); HqlSqlWalker.setClause_return s = default(HqlSqlWalker.setClause_return); HqlSqlWalker.whereClause_return w = default(HqlSqlWalker.whereClause_return); IASTNode u_tree=null; IASTNode v_tree=null; RewriteRuleNodeStream stream_UPDATE = new RewriteRuleNodeStream(adaptor,"token UPDATE"); RewriteRuleNodeStream stream_VERSIONED = new RewriteRuleNodeStream(adaptor,"token VERSIONED"); RewriteRuleSubtreeStream stream_fromClause = new RewriteRuleSubtreeStream(adaptor,"rule fromClause"); RewriteRuleSubtreeStream stream_whereClause = new RewriteRuleSubtreeStream(adaptor,"rule whereClause"); RewriteRuleSubtreeStream stream_setClause = new RewriteRuleSubtreeStream(adaptor,"rule setClause"); try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:58:2: ( ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) -> ^( $u $f $s ( $w)? ) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:58:4: ^(u= UPDATE (v= VERSIONED )? f= fromClause s= setClause (w= whereClause )? ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); u=(IASTNode)Match(input,UPDATE,FOLLOW_UPDATE_in_updateStatement215); stream_UPDATE.Add(u); BeforeStatement( "update", UPDATE ); Match(input, Token.DOWN, null); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:58:57: (v= VERSIONED )? int alt2 = 2; int LA2_0 = input.LA(1); if ( (LA2_0 == VERSIONED) ) { alt2 = 1; } switch (alt2) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:58:58: v= VERSIONED { _last = (IASTNode)input.LT(1); v=(IASTNode)Match(input,VERSIONED,FOLLOW_VERSIONED_in_updateStatement222); stream_VERSIONED.Add(v); } break; } _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_fromClause_in_updateStatement228); f = fromClause(); state.followingStackPointer--; stream_fromClause.Add(f.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_setClause_in_updateStatement232); s = setClause(); state.followingStackPointer--; stream_setClause.Add(s.Tree); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:58:97: (w= whereClause )? int alt3 = 2; int LA3_0 = input.LA(1); if ( (LA3_0 == WHERE) ) { alt3 = 1; } switch (alt3) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:58:98: w= whereClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_whereClause_in_updateStatement237); w = whereClause(); state.followingStackPointer--; stream_whereClause.Add(w.Tree); } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: f, u, w, s // token labels: u // rule labels: w, f, retval, s // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_u = new RewriteRuleNodeStream(adaptor, "token u", u); RewriteRuleSubtreeStream stream_w = new RewriteRuleSubtreeStream(adaptor, "rule w", w!=null ? w.Tree : null); RewriteRuleSubtreeStream stream_f = new RewriteRuleSubtreeStream(adaptor, "rule f", f!=null ? f.Tree : null); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_s = new RewriteRuleSubtreeStream(adaptor, "rule s", s!=null ? s.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 59:3: -> ^( $u $f $s ( $w)? ) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:59:6: ^( $u $f $s ( $w)? ) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_u.NextNode(), root_1); adaptor.AddChild(root_1, stream_f.NextTree()); adaptor.AddChild(root_1, stream_s.NextTree()); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:59:17: ( $w)? if ( stream_w.HasNext() ) { adaptor.AddChild(root_1, stream_w.NextTree()); } stream_w.Reset(); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); BeforeStatementCompletion( "update" ); PrepareVersioned( ((IASTNode)retval.Tree), v ); PostProcessUpdate( ((IASTNode)retval.Tree) ); AfterStatementCompletion( "update" ); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "fromElement" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:218:1: fromElement : ( ^( RANGE p= path (a= ALIAS )? (pf= FETCH )? ) -> {fromElement != null}? ^() -> | je= joinElement -> | fe= FILTER_ENTITY a3= ALIAS -> ^() ); public HqlSqlWalker.fromElement_return fromElement() // throws RecognitionException [1] { HqlSqlWalker.fromElement_return retval = new HqlSqlWalker.fromElement_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode a = null; IASTNode pf = null; IASTNode fe = null; IASTNode a3 = null; IASTNode RANGE60 = null; HqlSqlWalker.path_return p = default(HqlSqlWalker.path_return); HqlSqlWalker.joinElement_return je = default(HqlSqlWalker.joinElement_return); IASTNode a_tree=null; IASTNode pf_tree=null; IASTNode fe_tree=null; IASTNode a3_tree=null; IASTNode RANGE60_tree=null; RewriteRuleNodeStream stream_FETCH = new RewriteRuleNodeStream(adaptor,"token FETCH"); RewriteRuleNodeStream stream_RANGE = new RewriteRuleNodeStream(adaptor,"token RANGE"); RewriteRuleNodeStream stream_FILTER_ENTITY = new RewriteRuleNodeStream(adaptor,"token FILTER_ENTITY"); RewriteRuleNodeStream stream_ALIAS = new RewriteRuleNodeStream(adaptor,"token ALIAS"); RewriteRuleSubtreeStream stream_joinElement = new RewriteRuleSubtreeStream(adaptor,"rule joinElement"); RewriteRuleSubtreeStream stream_path = new RewriteRuleSubtreeStream(adaptor,"rule path"); IASTNode fromElement = null; try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:223:2: ( ^( RANGE p= path (a= ALIAS )? (pf= FETCH )? ) -> {fromElement != null}? ^() -> | je= joinElement -> | fe= FILTER_ENTITY a3= ALIAS -> ^() ) int alt27 = 3; switch ( input.LA(1) ) { case RANGE: { alt27 = 1; } break; case JOIN: { alt27 = 2; } break; case FILTER_ENTITY: { alt27 = 3; } break; default: NoViableAltException nvae_d27s0 = new NoViableAltException("", 27, 0, input); throw nvae_d27s0; } switch (alt27) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:223:4: ^( RANGE p= path (a= ALIAS )? (pf= FETCH )? ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); RANGE60=(IASTNode)Match(input,RANGE,FOLLOW_RANGE_in_fromElement1016); stream_RANGE.Add(RANGE60); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_path_in_fromElement1020); p = path(); state.followingStackPointer--; stream_path.Add(p.Tree); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:223:19: (a= ALIAS )? int alt25 = 2; int LA25_0 = input.LA(1); if ( (LA25_0 == ALIAS) ) { alt25 = 1; } switch (alt25) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:223:20: a= ALIAS { _last = (IASTNode)input.LT(1); a=(IASTNode)Match(input,ALIAS,FOLLOW_ALIAS_in_fromElement1025); stream_ALIAS.Add(a); } break; } // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:223:30: (pf= FETCH )? int alt26 = 2; int LA26_0 = input.LA(1); if ( (LA26_0 == FETCH) ) { alt26 = 1; } switch (alt26) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:223:31: pf= FETCH { _last = (IASTNode)input.LT(1); pf=(IASTNode)Match(input,FETCH,FOLLOW_FETCH_in_fromElement1032); stream_FETCH.Add(pf); } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } fromElement = CreateFromElement(((p != null) ? p.p : default(String)), ((p != null) ? ((IASTNode)p.Tree) : null), a, pf); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 224:3: -> {fromElement != null}? ^() if (fromElement != null) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:224:29: ^() { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(fromElement, root_1); adaptor.AddChild(root_0, root_1); } } else // 225:3: -> { root_0 = null; } retval.Tree = root_0; } break; case 2 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:226:4: je= joinElement { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_joinElement_in_fromElement1059); je = joinElement(); state.followingStackPointer--; stream_joinElement.Add(je.Tree); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 227:3: -> { root_0 = null; } retval.Tree = root_0; } break; case 3 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:229:4: fe= FILTER_ENTITY a3= ALIAS { _last = (IASTNode)input.LT(1); fe=(IASTNode)Match(input,FILTER_ENTITY,FOLLOW_FILTER_ENTITY_in_fromElement1074); stream_FILTER_ENTITY.Add(fe); _last = (IASTNode)input.LT(1); a3=(IASTNode)Match(input,ALIAS,FOLLOW_ALIAS_in_fromElement1078); stream_ALIAS.Add(a3); // AST REWRITE // elements: // token labels: // rule labels: retval // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 230:3: -> ^() { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:230:6: ^() { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(CreateFromFilterElement(fe,a3), root_1); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } break; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "selectClause" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:151:1: selectClause : ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ; public HqlSqlWalker.selectClause_return selectClause() // throws RecognitionException [1] { HqlSqlWalker.selectClause_return retval = new HqlSqlWalker.selectClause_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode d = null; IASTNode SELECT36 = null; HqlSqlWalker.selectExprList_return x = default(HqlSqlWalker.selectExprList_return); IASTNode d_tree=null; IASTNode SELECT36_tree=null; RewriteRuleNodeStream stream_DISTINCT = new RewriteRuleNodeStream(adaptor,"token DISTINCT"); RewriteRuleNodeStream stream_SELECT = new RewriteRuleNodeStream(adaptor,"token SELECT"); RewriteRuleSubtreeStream stream_selectExprList = new RewriteRuleSubtreeStream(adaptor,"rule selectExprList"); try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:152:2: ( ^( SELECT (d= DISTINCT )? x= selectExprList ) -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:152:4: ^( SELECT (d= DISTINCT )? x= selectExprList ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); SELECT36=(IASTNode)Match(input,SELECT,FOLLOW_SELECT_in_selectClause689); stream_SELECT.Add(SELECT36); HandleClauseStart( SELECT ); BeforeSelectClause(); Match(input, Token.DOWN, null); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:152:68: (d= DISTINCT )? int alt17 = 2; int LA17_0 = input.LA(1); if ( (LA17_0 == DISTINCT) ) { alt17 = 1; } switch (alt17) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:152:69: d= DISTINCT { _last = (IASTNode)input.LT(1); d=(IASTNode)Match(input,DISTINCT,FOLLOW_DISTINCT_in_selectClause696); stream_DISTINCT.Add(d); } break; } _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_selectExprList_in_selectClause702); x = selectExprList(); state.followingStackPointer--; stream_selectExprList.Add(x.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: x, d // token labels: d // rule labels: retval, x // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_d = new RewriteRuleNodeStream(adaptor, "token d", d); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_x = new RewriteRuleSubtreeStream(adaptor, "rule x", x!=null ? x.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 153:2: -> ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:153:5: ^( SELECT_CLAUSE[\"{select clause}\"] ( $d)? $x) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT_CLAUSE, "{select clause}"), root_1); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:153:40: ( $d)? if ( stream_d.HasNext() ) { adaptor.AddChild(root_1, stream_d.NextNode()); } stream_d.Reset(); adaptor.AddChild(root_1, stream_x.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "unionedQuery" // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:119:1: unionedQuery : ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) ; public HqlSqlWalker.unionedQuery_return unionedQuery() // throws RecognitionException [1] { HqlSqlWalker.unionedQuery_return retval = new HqlSqlWalker.unionedQuery_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode QUERY25 = null; IASTNode SELECT_FROM26 = null; HqlSqlWalker.fromClause_return f = default(HqlSqlWalker.fromClause_return); HqlSqlWalker.selectClause_return s = default(HqlSqlWalker.selectClause_return); HqlSqlWalker.whereClause_return w = default(HqlSqlWalker.whereClause_return); HqlSqlWalker.groupClause_return g = default(HqlSqlWalker.groupClause_return); HqlSqlWalker.orderClause_return o = default(HqlSqlWalker.orderClause_return); IASTNode QUERY25_tree=null; IASTNode SELECT_FROM26_tree=null; RewriteRuleNodeStream stream_QUERY = new RewriteRuleNodeStream(adaptor,"token QUERY"); RewriteRuleNodeStream stream_SELECT_FROM = new RewriteRuleNodeStream(adaptor,"token SELECT_FROM"); RewriteRuleSubtreeStream stream_selectClause = new RewriteRuleSubtreeStream(adaptor,"rule selectClause"); RewriteRuleSubtreeStream stream_fromClause = new RewriteRuleSubtreeStream(adaptor,"rule fromClause"); RewriteRuleSubtreeStream stream_orderClause = new RewriteRuleSubtreeStream(adaptor,"rule orderClause"); RewriteRuleSubtreeStream stream_whereClause = new RewriteRuleSubtreeStream(adaptor,"rule whereClause"); RewriteRuleSubtreeStream stream_groupClause = new RewriteRuleSubtreeStream(adaptor,"rule groupClause"); try { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:126:2: ( ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) ) // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:126:4: ^( QUERY ^( SELECT_FROM f= fromClause (s= selectClause )? ) (w= whereClause )? (g= groupClause )? (o= orderClause )? ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); QUERY25=(IASTNode)Match(input,QUERY,FOLLOW_QUERY_in_unionedQuery503); stream_QUERY.Add(QUERY25); BeforeStatement( "select", SELECT ); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); { IASTNode _save_last_2 = _last; IASTNode _first_2 = null; IASTNode root_2 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); SELECT_FROM26=(IASTNode)Match(input,SELECT_FROM,FOLLOW_SELECT_FROM_in_unionedQuery515); stream_SELECT_FROM.Add(SELECT_FROM26); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_fromClause_in_unionedQuery523); f = fromClause(); state.followingStackPointer--; stream_fromClause.Add(f.Tree); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:130:5: (s= selectClause )? int alt9 = 2; int LA9_0 = input.LA(1); if ( (LA9_0 == SELECT) ) { alt9 = 1; } switch (alt9) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:130:6: s= selectClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_selectClause_in_unionedQuery532); s = selectClause(); state.followingStackPointer--; stream_selectClause.Add(s.Tree); } break; } Match(input, Token.UP, null); adaptor.AddChild(root_1, root_2);_last = _save_last_2; } // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:132:4: (w= whereClause )? int alt10 = 2; int LA10_0 = input.LA(1); if ( (LA10_0 == WHERE) ) { alt10 = 1; } switch (alt10) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:132:5: w= whereClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_whereClause_in_unionedQuery547); w = whereClause(); state.followingStackPointer--; stream_whereClause.Add(w.Tree); } break; } // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:133:4: (g= groupClause )? int alt11 = 2; int LA11_0 = input.LA(1); if ( (LA11_0 == GROUP) ) { alt11 = 1; } switch (alt11) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:133:5: g= groupClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_groupClause_in_unionedQuery557); g = groupClause(); state.followingStackPointer--; stream_groupClause.Add(g.Tree); } break; } // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:134:4: (o= orderClause )? int alt12 = 2; int LA12_0 = input.LA(1); if ( (LA12_0 == ORDER) ) { alt12 = 1; } switch (alt12) { case 1 : // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:134:5: o= orderClause { _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_orderClause_in_unionedQuery567); o = orderClause(); state.followingStackPointer--; stream_orderClause.Add(o.Tree); } break; } Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: s, o, f, g, w // token labels: // rule labels: o, w, f, retval, g, s // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleSubtreeStream stream_o = new RewriteRuleSubtreeStream(adaptor, "rule o", o!=null ? o.Tree : null); RewriteRuleSubtreeStream stream_w = new RewriteRuleSubtreeStream(adaptor, "rule w", w!=null ? w.Tree : null); RewriteRuleSubtreeStream stream_f = new RewriteRuleSubtreeStream(adaptor, "rule f", f!=null ? f.Tree : null); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_g = new RewriteRuleSubtreeStream(adaptor, "rule g", g!=null ? g.Tree : null); RewriteRuleSubtreeStream stream_s = new RewriteRuleSubtreeStream(adaptor, "rule s", s!=null ? s.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 136:2: -> ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) { // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:136:5: ^( SELECT ( $s)? $f ( $w)? ( $g)? ( $o)? ) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot((IASTNode)adaptor.Create(SELECT, "SELECT"), root_1); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:136:14: ( $s)? if ( stream_s.HasNext() ) { adaptor.AddChild(root_1, stream_s.NextTree()); } stream_s.Reset(); adaptor.AddChild(root_1, stream_f.NextTree()); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:136:21: ( $w)? if ( stream_w.HasNext() ) { adaptor.AddChild(root_1, stream_w.NextTree()); } stream_w.Reset(); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:136:25: ( $g)? if ( stream_g.HasNext() ) { adaptor.AddChild(root_1, stream_g.NextTree()); } stream_g.Reset(); // /Users/Steve/Projects/NHibernate/Branches/2.1.x/nhibernate/src/NHibernate/Hql/Ast/ANTLR/HqlSqlWalker.g:136:29: ( $o)? if ( stream_o.HasNext() ) { adaptor.AddChild(root_1, stream_o.NextTree()); } stream_o.Reset(); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); // Antlr note: #x_in refers to the input AST, #x refers to the output AST BeforeStatementCompletion( "select" ); ProcessQuery( ((s != null) ? ((IASTNode)s.Tree) : null), ((IASTNode)retval.Tree) ); AfterStatementCompletion( "select" ); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "addrExprDot" // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:446:1: addrExprDot[ bool root ] : ^(d= DOT lhs= addrExprLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ; public HqlSqlWalker.addrExprDot_return addrExprDot(bool root) // throws RecognitionException [1] { HqlSqlWalker.addrExprDot_return retval = new HqlSqlWalker.addrExprDot_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode d = null; HqlSqlWalker.addrExprLhs_return lhs = default(HqlSqlWalker.addrExprLhs_return); HqlSqlWalker.propertyName_return rhs = default(HqlSqlWalker.propertyName_return); IASTNode d_tree=null; RewriteRuleNodeStream stream_DOT = new RewriteRuleNodeStream(adaptor,"token DOT"); RewriteRuleSubtreeStream stream_propertyName = new RewriteRuleSubtreeStream(adaptor,"rule propertyName"); RewriteRuleSubtreeStream stream_addrExprLhs = new RewriteRuleSubtreeStream(adaptor,"rule addrExprLhs"); try { // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:451:2: ( ^(d= DOT lhs= addrExprLhs rhs= propertyName ) -> ^( $d $lhs $rhs) ) // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:451:4: ^(d= DOT lhs= addrExprLhs rhs= propertyName ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); d=(IASTNode)Match(input,DOT,FOLLOW_DOT_in_addrExprDot2318); stream_DOT.Add(d); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_addrExprLhs_in_addrExprDot2322); lhs = addrExprLhs(); state.followingStackPointer--; stream_addrExprLhs.Add(lhs.Tree); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_propertyName_in_addrExprDot2326); rhs = propertyName(); state.followingStackPointer--; stream_propertyName.Add(rhs.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: rhs, lhs, d // token labels: d // rule labels: retval, rhs, lhs // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_d = new RewriteRuleNodeStream(adaptor, "token d", d); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_rhs = new RewriteRuleSubtreeStream(adaptor, "rule rhs", rhs!=null ? rhs.Tree : null); RewriteRuleSubtreeStream stream_lhs = new RewriteRuleSubtreeStream(adaptor, "rule lhs", lhs!=null ? lhs.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 452:3: -> ^( $d $lhs $rhs) { // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:452:6: ^( $d $lhs $rhs) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_d.NextNode(), root_1); adaptor.AddChild(root_1, stream_lhs.NextTree()); adaptor.AddChild(root_1, stream_rhs.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); LookupProperty(((IASTNode)retval.Tree),root,false); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }
// $ANTLR start "withClause" // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:281:1: withClause : ^(w= WITH b= logicalExpr ) -> ^( $w $b) ; public HqlSqlWalker.withClause_return withClause() // throws RecognitionException [1] { HqlSqlWalker.withClause_return retval = new HqlSqlWalker.withClause_return(); retval.Start = input.LT(1); IASTNode root_0 = null; IASTNode _first_0 = null; IASTNode _last = null; IASTNode w = null; HqlSqlWalker.logicalExpr_return b = default(HqlSqlWalker.logicalExpr_return); IASTNode w_tree=null; RewriteRuleNodeStream stream_WITH = new RewriteRuleNodeStream(adaptor,"token WITH"); RewriteRuleSubtreeStream stream_logicalExpr = new RewriteRuleSubtreeStream(adaptor,"rule logicalExpr"); try { // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:288:2: ( ^(w= WITH b= logicalExpr ) -> ^( $w $b) ) // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:288:4: ^(w= WITH b= logicalExpr ) { _last = (IASTNode)input.LT(1); { IASTNode _save_last_1 = _last; IASTNode _first_1 = null; IASTNode root_1 = (IASTNode)adaptor.GetNilNode();_last = (IASTNode)input.LT(1); w=(IASTNode)Match(input,WITH,FOLLOW_WITH_in_withClause1321); stream_WITH.Add(w); HandleClauseStart( WITH ); Match(input, Token.DOWN, null); _last = (IASTNode)input.LT(1); PushFollow(FOLLOW_logicalExpr_in_withClause1327); b = logicalExpr(); state.followingStackPointer--; stream_logicalExpr.Add(b.Tree); Match(input, Token.UP, null); adaptor.AddChild(root_0, root_1);_last = _save_last_1; } // AST REWRITE // elements: b, w // token labels: w // rule labels: retval, b // token list labels: // rule list labels: // wildcard labels: retval.Tree = root_0; RewriteRuleNodeStream stream_w = new RewriteRuleNodeStream(adaptor, "token w", w); RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); RewriteRuleSubtreeStream stream_b = new RewriteRuleSubtreeStream(adaptor, "rule b", b!=null ? b.Tree : null); root_0 = (IASTNode)adaptor.GetNilNode(); // 289:2: -> ^( $w $b) { // C:\\Users\\Steve\\Documents\\NHibernate\\nhibernate\\src\\NHibernate\\Hql\\Ast\\ANTLR\\HqlSqlWalker.g:289:5: ^( $w $b) { IASTNode root_1 = (IASTNode)adaptor.GetNilNode(); root_1 = (IASTNode)adaptor.BecomeRoot(stream_w.NextNode(), root_1); adaptor.AddChild(root_1, stream_b.NextTree()); adaptor.AddChild(root_0, root_1); } } retval.Tree = root_0; } retval.Tree = (IASTNode)adaptor.RulePostProcessing(root_0); } catch (RecognitionException re) { ReportError(re); Recover(input,re); } finally { } return retval; }