예제 #1
0
        public void Basic()
        {
            ResolveContext context = new ResolveContext();

            _ = context.FromArgumentList(new string[] { "a=a", "b=b", "c=" });
            Assert.AreEqual("a", context.GetVariable <string>(new Variable("a")));
            Assert.AreEqual("b", context.GetVariable <string>(new Variable("b")));
            Assert.AreEqual("", context.GetVariable <string>(new Variable("c")));
        }
예제 #2
0
        public static Task ResolveCallback(VariableCollection variables, ResolveContext resolveContext, ParserContext parser, PipelineContext pipeline)
        {
            _ = resolveContext.FromArgumentList(parser.UnparsedTokens);
            ITerminal terminal = pipeline.Services.GetTerminal();

            if (!terminal.FillVariables(variables, resolveContext))
            {
                throw new ArgumentException();
            }
            return(Task.CompletedTask);
        }
예제 #3
0
        public static Task ResolveCallback(VariableCollection variables, ResolveContext resolveContext, InvocationContext context, PipelineContext pipeline)
        {
            _ = resolveContext.FromArgumentList(context.ParseResult.UnparsedTokens);

            TextReader input    = pipeline.Services.GetInput();
            ITerminal  terminal = pipeline.Services.GetConsole().GetTerminal();

            if (!terminal.FillVariables(input, variables, resolveContext))
            {
                throw new ArgumentException();
            }
            return(Task.CompletedTask);
        }