/// <exception cref="ArgumentNullException"> /// <paramref name="code" /> or <paramref name="conditionExpression" /> is /// <c>null</c>. /// </exception> internal LSLWhileLoopNode(LSLParser.WhileLoopContext context, ILSLExprNode conditionExpression, LSLCodeScopeNode code) { if (code == null) { throw new ArgumentNullException("code"); } if (conditionExpression == null) { throw new ArgumentNullException("conditionExpression"); } ConditionExpression = conditionExpression; ConditionExpression.Parent = this; Code = code; Code.Parent = this; Code.CodeScopeType = LSLCodeScopeType.WhileLoop; SourceRange = new LSLSourceCodeRange(context); SourceRangeWhileKeyword = new LSLSourceCodeRange(context.loop_keyword); SourceRangeOpenParenth = new LSLSourceCodeRange(context.open_parenth); SourceRangeCloseParenth = new LSLSourceCodeRange(context.close_parenth); SourceRangesAvailable = true; }
/// <summary> /// Exit a parse tree produced by <see cref="LSLParser.whileLoop"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitWhileLoop([NotNull] LSLParser.WhileLoopContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="LSLParser.whileLoop"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitWhileLoop([NotNull] LSLParser.WhileLoopContext context) { return(VisitChildren(context)); }