コード例 #1
0
ファイル: ImportModelValidator.cs プロジェクト: tumcms/QL4BIM
        public ImportModelValidator()
        {
            Name = "ImportModel";
            var sig1 = new FunctionSignatur(SyUseVal.Set, new [] { SyUseVal.String }, null, null);

            FunctionSignaturs.Add(sig1);
        }
コード例 #2
0
ファイル: OperatorValidator.cs プロジェクト: tumcms/QL4BIM
        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;
                }
            }
        }
コード例 #3
0
ファイル: ProjectorValidator.cs プロジェクト: tumcms/QL4BIM
        public ProjectorValidator()
        {
            Name = "Projector";

            var sig1 = new FunctionSignatur(SyUseVal.RelAtt, new [] { SyUseVal.RelAttVa }, null, null);

            FunctionSignaturs.Add(sig1);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: SpatialTopoValidator.cs プロジェクト: tumcms/QL4BIM
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
ファイル: OperatorValidator.cs プロジェクト: tumcms/QL4BIM
 private static bool PredicateCheck(StatementNode statement, FunctionSignatur functionSignatur)
 {
     //todo check first and second types in predicate
     return(true);
 }
コード例 #10
0
ファイル: OperatorValidator.cs プロジェクト: tumcms/QL4BIM
 private static bool IsVarArg(FunctionSignatur functionSignatur)
 {
     return(IsVarArg(functionSignatur.ArgumentTypes.Last()));
 }