Пример #1
0
 private static bool IsVarArg(SyUseVal syUseVal)
 {
     return(syUseVal == SyUseVal.SetVa ||
            syUseVal == SyUseVal.RelVa ||
            syUseVal == SyUseVal.RelAttVa ||
            syUseVal == SyUseVal.StringVa ||
            syUseVal == SyUseVal.NumberVa ||
            syUseVal == SyUseVal.FloatVa ||
            syUseVal == SyUseVal.ExAttVa ||
            syUseVal == SyUseVal.ExTypeVa);
 }
Пример #2
0
        public FunctionSignatur(SyUseVal returnSymbol, SyUseVal[] argumentTypes,
                                SyUseVal[] predicateTypes, string allowedPredTokens)
        {
            PredicateTypes = predicateTypes;
            ReturnSymbol   = returnSymbol;
            ArgumentTypes  = argumentTypes;

            if (predicateTypes != null)
            {
                AllowedPredTokens = allowedPredTokens.Split(',');
            }
        }
Пример #3
0
        private bool TypeUsageEnumMatches(Node node, SyUseVal symbolUsage)
        {
            if (node is CNumberNode && symbolUsage == SyUseVal.Number)
            {
                return(true);
            }

            if (node is CFloatNode && symbolUsage == SyUseVal.Float)
            {
                return(true);
            }

            if (node is CStringNode && symbolUsage == SyUseVal.String)
            {
                return(true);
            }

            if (node is ExAttNode && symbolUsage == SyUseVal.ExAtt)
            {
                return(true);
            }

            if (node is ExTypeNode && symbolUsage == SyUseVal.ExType)
            {
                return(true);
            }

            if (node is RelationNode && symbolUsage == SyUseVal.Rel)
            {
                return(true);
            }

            var node1 = node as SetNode;

            if (node1 != null)
            {
                //var literalNode = node1;
                //if (literalNode.Usage == SetNode.SymbolUsage.RelAtt && symbolUsage == SyUseVal.RelAtt)
                //    return true;
                //if (literalNode.Usage == SetNode.SymbolUsage.Set && symbolUsage == SyUseVal.Set)
                //    return true;
            }


            return(false);
        }
Пример #4
0
        private SyUseVal MatchSyUseVarArg(SyUseVal syUseVal)
        {
            if (syUseVal == SyUseVal.NumberVa)
            {
                return(SyUseVal.Number);
            }

            if (syUseVal == SyUseVal.FloatVa)
            {
                return(SyUseVal.Float);
            }

            if (syUseVal == SyUseVal.StringVa)
            {
                return(SyUseVal.String);
            }

            if (syUseVal == SyUseVal.ExAttVa)
            {
                return(SyUseVal.ExAtt);
            }

            if (syUseVal == SyUseVal.ExTypeVa)
            {
                return(SyUseVal.ExType);
            }

            if (syUseVal == SyUseVal.RelVa)
            {
                return(SyUseVal.Rel);
            }

            if (syUseVal == SyUseVal.RelAttVa)
            {
                return(SyUseVal.RelAtt);
            }

            if (syUseVal == SyUseVal.SetVa)
            {
                return(SyUseVal.Set);
            }

            throw new InvalidOperationException();
        }