示例#1
0
        public static TransformationResult <T> Transform <T>(this TransformationResult <T> result, TransformerFactory <T> _transformerFactory)
            where T : SyntaxNode
        {
            if (_transformerFactory == null)
            {
                return(result);
            }

            var transformer = _transformerFactory(result.Node);

            if (transformer?.CanTransform(result.Root) ?? false)
            {
                result = transformer.Transform(result.Root);
            }

            return(result);
        }
示例#2
0
        public static Or <TransformationResult <TSource>, TransformationResult <TRes> > Transform <TSource, TRes>(
            this TransformationResult <TSource> result,
            TransformerFactory <TSource, TRes> _transformerFactory)
            where TSource : SyntaxNode
            where TRes : SyntaxNode
        {
            if (_transformerFactory == null)
            {
                return(result);
            }

            var transformer = _transformerFactory(result.Node);

            if (transformer?.CanTransform(result.Root) ?? false)
            {
                return(transformer.Transform(result.Root));
            }

            return(result);
        }
示例#3
0
 public static TransformationResult <TResult> SelectNode <TArg, TResult>(this TransformationResult <TArg> originalResult, Func <TArg, TResult> selector)
     where TArg : SyntaxNode
     where TResult : SyntaxNode
 {
     return(Transformed(originalResult.Root, selector(originalResult.Node)));
 }