public ImportModelValidator() { Name = "ImportModel"; var sig1 = new FunctionSignatur(SyUseVal.Set, new [] { SyUseVal.String }, null, null); FunctionSignaturs.Add(sig1); }
private void ArgumentTypeCheck(StatementNode statement, FunctionSignatur functionSignatur, ref bool argumentTypesOkay) { var varArg = IsVarArg(functionSignatur); var count = varArg ? functionSignatur.ArgumentTypes.Length : functionSignatur.ArgumentTypes.Length - 1; for (int i = 0; i < count; i++) { var arguement = statement.Arguments[i]; argumentTypesOkay = TypeUsageEnumMatches(arguement, functionSignatur.ArgumentTypes[i]); if (!argumentTypesOkay) { break; } } if (!varArg) { return; } var varArgSy = MatchSyUseVarArg(functionSignatur.ArgumentTypes.Last()); for (int i = count - 1; i < statement.Arguments.Count; i++) { var arguement = statement.Arguments[i]; argumentTypesOkay = TypeUsageEnumMatches(arguement, varArgSy); if (!argumentTypesOkay) { break; } } }
public ProjectorValidator() { Name = "Projector"; var sig1 = new FunctionSignatur(SyUseVal.RelAtt, new [] { SyUseVal.RelAttVa }, null, null); FunctionSignaturs.Add(sig1); }
public ArguementFilterValidator() { Name = "AttributeFilter"; var sig1 = new FunctionSignatur(SyUseVal.Set, new[] { SyUseVal.Set }, new[] { SyUseVal.ExAtt }, "=,!="); var sig2 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.RelAtt }, new[] { SyUseVal.ExAtt }, "=,!="); FunctionSignaturs.Add(sig1); FunctionSignaturs.Add(sig2); }
public SpatialTopoValidator() { Name = "SpatialTopoValidator"; var sig1 = new FunctionSignatur(SyUseVal.RelVa, new[] { SyUseVal.Set, SyUseVal.Set }, null, null); //todo tolerances //var sig2 = new FunctionSignatur(SyUseVal.Set, new[] { SyUseVal.Set, SyUseVal.String }, null, null); FunctionSignaturs.Add(sig1); //FunctionSignaturs.Add(sig2); }
public PropertyFilterValidator() { Name = "PropertyFilterOperator"; var sig1 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.Set, SyUseVal.String, SyUseVal.String }, null, null); //var sig2 = new FunctionSignatur(SymbolUsage.Relation, new[] { "SetNode"}, "CStringNode", "=,!="); FunctionSignaturs.Add(sig1); //FunctionSignaturs.Add(sig2); }
public TypeFilterValidator() { Name = "TypeFilter"; var sig1 = new FunctionSignatur(SyUseVal.Set, new[] { SyUseVal.Set, SyUseVal.ExType }, null, null); var sig2 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.RelAtt, SyUseVal.ExType }, null, null); var sig3 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.Rel, SyUseVal.ExTypeVa }, null, null); FunctionSignaturs.Add(sig1); FunctionSignaturs.Add(sig2); FunctionSignaturs.Add(sig3); }
public DereferencerValidator() { Name = "Dereferencer"; var sig1 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.Set, SyUseVal.ExAtt, SyUseVal.ExAtt }, null, null); var sig2 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.Set, SyUseVal.ExAtt }, null, null); var sig3 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.RelAtt, SyUseVal.ExAtt }, null, null); var sig4 = new FunctionSignatur(SyUseVal.Rel, new[] { SyUseVal.RelAtt, SyUseVal.ExAtt, SyUseVal.ExAtt }, null, null); FunctionSignaturs.Add(sig1); FunctionSignaturs.Add(sig2); FunctionSignaturs.Add(sig3); FunctionSignaturs.Add(sig4); }
private static bool PredicateCheck(StatementNode statement, FunctionSignatur functionSignatur) { //todo check first and second types in predicate return(true); }
private static bool IsVarArg(FunctionSignatur functionSignatur) { return(IsVarArg(functionSignatur.ArgumentTypes.Last())); }