public void Push(ExpressionDef def) { if (def == null) { throw new ArgumentNullException("def"); } if (_stack.Contains(def.Name)) { throw new InvalidOperationException(String.Format("Reference to expression {0} is invalid because it results in a circular reference.", def.Name)); } _stack.Push(def.Name); }
private CREFModel.NamedExpression TranslateNamedExpression(TranslationContext context, ExpressionDef expression) { var result = new CREFModel.NamedExpression(); result.Name = expression.Name; result.Item = context.TranslateNode(expression.Expression); return(result); }
public Trigger() { this.defField = new ExpressionDef(); }
private Model.Statement TranslateExpressionDef(SQLTranslationContext context, string artifactName, ExpressionDef expressionDef) { var result = new SQLModel.CreateViewStatement(); result.ViewName = context.GetExpressionObjectName(String.Format("{0}.{1}", artifactName, expressionDef.Name)); var translatedExpression = context.TranslateNode(expressionDef.Expression); if (DataTypes.Equal(expressionDef.Expression.ResultType, DataTypes.Boolean)) { translatedExpression = SQLTranslationUtilities.PromoteBooleanValuedExpression(translatedExpression); } result.Expression = SQLTranslationUtilities.EnsureSelectExpression(translatedExpression); return(result); }