public override bool CheckType(QLTypeErrors typeErrors) { if (Memory.IsDeclared(Name)) { typeErrors.ReportError(new QLTypeError( string.Format("(Question) Identifier '{0}' is already defined!", Name), TokenInfo )); return false; } Memory.Declare(Name, Type); if (Memory.LabelIsDeclared(Label)) { typeErrors.ReportError(new QLTypeError( string.Format("(Question) Declared label already exists: '{0}'", Label), TokenInfo, true )); } Memory.DeclareLabel(Label); DeclareValue(); return true; }
public void CheckType(QLTypeErrors typeErrors) { foreach (StatementBase statement in _body) { statement.CheckType(typeErrors); } }
public override bool CheckType(QLTypeErrors typeErrors) { if (Memory.IsDeclared(Name)) { typeErrors.ReportError(new QLTypeError( string.Format("(Question) Identifier '{0}' is already defined!", Name), TokenInfo )); return(false); } Memory.Declare(Name, Type); if (Memory.LabelIsDeclared(Label)) { typeErrors.ReportError(new QLTypeError( string.Format("(Question) Declared label already exists: '{0}'", Label), TokenInfo, true )); } Memory.DeclareLabel(Label); DeclareValue(); return(true); }
public override bool CheckType(QLTypeErrors typeErrors) { if (!base.CheckType(typeErrors)) { return(false); } if (!_value.CheckType(typeErrors)) { return(false); } if (!Type.GetType().IsCompatibleWith(_value.GetResultType())) { typeErrors.ReportError(new QLTypeError( string.Format("(ComputedQuestion) Assigned value does not match declared type. Expected type: '{0}', Given value: '{1}'", Type.GetType(), _value.GetResultType()), TokenInfo = TokenInfo )); return(false); } return(true); }
public override bool CheckType(QLTypeErrors typeErrors) { if (!_memory.IsDeclared(_name)) { typeErrors.ReportError(new QLTypeError( string.Format("Referenced identifier '{0}' is not defined!", _name), TokenInfo )); return(false); } return(true); }
public override bool CheckType(QLTypeErrors typeErrors) { if (!_memory.IsDeclared(_name)) { typeErrors.ReportError(new QLTypeError( string.Format("Referenced identifier '{0}' is not defined!", _name), TokenInfo )); return false; } return true; }
public override bool CheckType(QLTypeErrors typeErrors) { if (!(InnerExpression.GetResultType().IsCompatibleWith(new QInt()))) { typeErrors.ReportError(new QLTypeError( string.Format("The POSITIVE (+) operator can only be applied on integers! Got '{0}'", InnerExpression.GetResultType()), TokenInfo = InnerExpression.TokenInfo )); return false; } return true; }
public override bool CheckType(QLTypeErrors typeErrors) { if (!(InnerExpression.GetResultType().IsCompatibleWith(new QBool()))) { typeErrors.ReportError(new QLTypeError( string.Format("The NOT (!) operator can only be applied on booleans! Got '{0}'", InnerExpression.GetResultType()), InnerExpression.TokenInfo )); return false; } return true; }
public override bool CheckType(QLTypeErrors typeErrors) { if (!(InnerExpression.GetResultType().IsCompatibleWith(new QInt()))) { typeErrors.ReportError(new QLTypeError( string.Format("The NEGATIVE (-) operator can only be applied on integers! Got '{0}'", InnerExpression.GetResultType()), InnerExpression.TokenInfo )); return(false); } return(true); }
public override bool CheckType(QLTypeErrors typeErrors) { if (!base.CheckType(typeErrors)) return false; if (!LeftExpression.GetResultType().IsCompatibleWith(new QInt()) || !RightExpression.GetResultType().IsCompatibleWith(new QInt())) { typeErrors.ReportError(new QLTypeError( string.Format("Can only compare values of type QInt! Left value: '{0}', right value: '{1}'", LeftExpression.GetResultType(), RightExpression.GetResultType()), LeftExpression.TokenInfo )); return false; } return true; }
public override bool CheckType(QLTypeErrors typeErrors) { if (!base.CheckType(typeErrors)) return false; if (!(LeftExpression.GetResultType().IsCompatibleWith(new QBool())) || !(RightExpression.GetResultType().IsCompatibleWith(new QBool()))) { typeErrors.ReportError(new QLTypeError( string.Format("Left -or right expression is not a boolean. Left value: '{0}', right value: '{1}'", LeftExpression.GetResultType(), RightExpression.GetResultType()), TokenInfo = TokenInfo )); return false; } return true; }
public override bool CheckType(QLTypeErrors typeErrors) { if (!base.CheckType(typeErrors)) { return(false); } if (!LeftExpression.GetResultType().IsCompatibleWith(new QInt()) || !RightExpression.GetResultType().IsCompatibleWith(new QInt())) { typeErrors.ReportError(new QLTypeError( string.Format("Can only apply math on 2 integers! Left value: '{0}', right value '{1}'", LeftExpression.GetResultType(), RightExpression.GetResultType()), LeftExpression.TokenInfo )); return(false); } return(true); }
public override bool CheckType(QLTypeErrors typeErrors) { if (!_condition.CheckType(typeErrors)) return false; if (!_condition.GetResultType().IsCompatibleWith(new QBool())) { typeErrors.ReportError(new QLTypeError( string.Format("Condition is not a boolean. Got QType '{0}'", _condition.GetResultType()), _condition.TokenInfo )); return false; } if (_body.Any(statement => !statement.CheckType(typeErrors))) return false; return _elseBody.All(elseStatement => elseStatement.CheckType(typeErrors)); }
public override bool CheckType(QLTypeErrors typeErrors) { if (!base.CheckType(typeErrors)) return false; if (!_value.CheckType(typeErrors)) return false; if (!Type.GetType().IsCompatibleWith(_value.GetResultType())) { typeErrors.ReportError(new QLTypeError( string.Format("(ComputedQuestion) Assigned value does not match declared type. Expected type: '{0}', Given value: '{1}'", Type.GetType(), _value.GetResultType()), TokenInfo = TokenInfo )); return false; } return true; }
public override bool CheckType(QLTypeErrors typeErrors) { if (!base.CheckType(typeErrors)) { return(false); } if (!(LeftExpression.GetResultType().IsCompatibleWith(new QBool())) || !(RightExpression.GetResultType().IsCompatibleWith(new QBool()))) { typeErrors.ReportError(new QLTypeError( string.Format("Left -or right expression is not a boolean. Left value: '{0}', right value: '{1}'", LeftExpression.GetResultType(), RightExpression.GetResultType()), TokenInfo = TokenInfo )); return(false); } return(true); }
public override bool CheckType(QLTypeErrors typeErrors) { if (!_condition.CheckType(typeErrors)) { return(false); } if (!_condition.GetResultType().IsCompatibleWith(new QBool())) { typeErrors.ReportError(new QLTypeError( string.Format("Condition is not a boolean. Got QType '{0}'", _condition.GetResultType()), _condition.TokenInfo )); return(false); } if (_body.Any(statement => !statement.CheckType(typeErrors))) { return(false); } return(_elseBody.All(elseStatement => elseStatement.CheckType(typeErrors))); }
public override bool CheckType(QLTypeErrors typeErrors) { return InnerExpression.CheckType(typeErrors); }
public override bool CheckType(QLTypeErrors typeErrors) { return(true); }
public override bool CheckType(QLTypeErrors typeErrors) { return(LeftExpression.CheckType(typeErrors) && RightExpression.CheckType(typeErrors)); }
public override bool CheckType(QLTypeErrors typeErrors) { return LeftExpression.CheckType(typeErrors) && RightExpression.CheckType(typeErrors); }
public override bool CheckType(QLTypeErrors typeErrors) { return(InnerExpression.CheckType(typeErrors)); }
public override bool CheckType(QLTypeErrors typeErrors) { return true; }
public abstract bool CheckType(QLTypeErrors errors);