Exemple #1
0
            private static bool ContainsInvalidKind(Parser.ExpressionNode node)
            {
                if (node == null)
                {
                    return(false);
                }

                if (node.Kind == Parser.ExpressionKind.Cast || node.Kind == Parser.ExpressionKind.FunctionCall)
                {
                    return(true);
                }

                return(ContainsInvalidKind(node.LeftNode) || ContainsInvalidKind(node.RightNode));
            }
Exemple #2
0
            public static bool IsValidConstant(NativeConstant constant)
            {
                if (constant.ConstantKind == ConstantKind.MacroMethod)
                {
                    return(false);
                }

                Parser.ExpressionParser p    = new Parser.ExpressionParser();
                Parser.ExpressionNode   node = null;
                if (!p.TryParse(constant.Value.Expression, out node))
                {
                    return(false);
                }

                return(!ContainsInvalidKind(node));
            }