public virtual Object Visit(ASTSetDirective node, Object data)
		{
			data = node.ChildrenAccept(this, data);
			return data;
		}
Beispiel #2
0
		/// <summary>  Currently support both types of set :
		/// #set( expr )
		/// #set expr
		/// </summary>
		public void SetDirective()
		{
			/*@bgen(jjtree) SetDirective */
			ASTSetDirective jjtn000 = new ASTSetDirective(this, ParserTreeConstants.SET_DIRECTIVE);
			bool jjtc000 = true;
			nodeTree.OpenNodeScope(jjtn000);
			//UPGRADE_NOTE: Exception 'java.lang.Throwable' was converted to ' ' which has different behavior. 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="jlca1100"'
			try
			{
				ConsumeToken(ParserConstants.SET_DIRECTIVE);
				if (jj_2_9(2))
				{
					ConsumeToken(ParserConstants.WHITESPACE);
				}
				ConsumeToken(ParserConstants.LPAREN);
				Expression();
				ConsumeToken(ParserConstants.RPAREN);
				/*
				* ensure that inSet is false.  Leads to some amusing bugs...
				*/

				token_source.inSet = false;
				switch(GetCurrentTokenKind())
				{
					case ParserConstants.NEWLINE:
						ConsumeToken(ParserConstants.NEWLINE);
						break;

					default:
						jj_la1[35] = jj_gen;
						break;
				}
			}
			catch(System.Exception exception)
			{
				nodeTree.ClearNodeScope(jjtn000);
				jjtc000 = false;
				if (exception is SystemException)
				{
					throw;
				}
				if (exception is ParseException)
				{
					throw;
				}
				throw (ApplicationException) exception;
			}
			finally
			{
				if (jjtc000)
				{
					nodeTree.CloseNodeScope(jjtn000, true);
				}
			}
		}
		public override Object Visit(ASTSetDirective node, Object data)
		{
			return ShowNode(node, data);
		}