void ILSLSyntaxWarningListener.ConditionalExpressionIsConstant(LSLSourceCodeRange location, ILSLReadOnlyExprNode expression, LSLConditionalStatementType conditionalStatementType) { _warningActionQueue.Enqueue(location.StartIndex, () => SyntaxWarningListener.ConditionalExpressionIsConstant(location, expression, conditionalStatementType)); }
/// <summary> /// A constant value was used for the conditional expression in a control or loop statement. /// </summary> /// <param name="location">The location in the source code.</param> /// <param name="expression">The offending expression.</param> /// <param name="conditionalStatementType">The type of conditional statement the expression was used in.</param> public virtual void ConditionalExpressionIsConstant(LSLSourceCodeRange location, ILSLReadOnlyExprNode expression, LSLConditionalStatementType conditionalStatementType) { if (conditionalStatementType == LSLConditionalStatementType.If) { OnWarning(location, "Conditional expression in 'if' branch is constant."); } else if (conditionalStatementType == LSLConditionalStatementType.ElseIf) { OnWarning(location, "Conditional expression in 'else if' branch is constant."); } else if (conditionalStatementType == LSLConditionalStatementType.For) { OnWarning(location, "Conditional expression in 'for' loop is constant."); } else if (conditionalStatementType == LSLConditionalStatementType.While) { OnWarning(location, "Conditional expression in 'while' loop is constant."); } else if (conditionalStatementType == LSLConditionalStatementType.DoWhile) { OnWarning(location, "Conditional expression in 'do while' loop is constant."); } }
void ILSLSyntaxErrorListener.MissingConditionalExpression(LSLSourceCodeRange location, LSLConditionalStatementType statementType) { _errorActionQueue.Enqueue(location.StartIndex, () => SyntaxErrorListener.MissingConditionalExpression(location, statementType)); }