示例#1
0
        public override string Resolve(List <VPPMakro> makros, VPPTextParser parser, string[] args)
        {
            string block = ParseBlock(parser);

            VPPMakro tempMakro = new VPPTextMakro(
                args[1],
                block,
                new List <VPPMakroParameter>
            {
                new VPPMakroParameter {
                    Name = args[1]
                }
            }
                );

            makros.Add(tempMakro);
            string[] lines = File.ReadAllLines(args[0]);

            StringBuilder sb = new StringBuilder();

            foreach (string line in lines)
            {
                string[] kvp = line.Split(new[] { '=' });

                sb.AppendLine(tempMakro.GenerateValue(new[] { kvp[0] }));
            }
            makros.Remove(tempMakro);

            string s = sb.ToString();

            return(s);
        }
示例#2
0
        public override string Resolve(List <VPPMakro> makros, VPPTextParser parser, string[] args)
        {
            string block = ParseBlock(parser);


            return(args[0] == "1" || makros.Any(x => x.Name == args[0]) ? block : "");
        }
示例#3
0
        public override string Resolve(List <VPPMakro> makros, VPPTextParser parser, string[] args)
        {
            string block = ParseBlock(parser);

            VPPMakro tempMakro = new VPPTextMakro(
                args[1],
                block,
                new List <VPPMakroParameter>
            {
                new VPPMakroParameter {
                    Name = args[1]
                }
            }
                );

            makros.Add(tempMakro);
            string[] lines = args[0].Split(new [] { ' ', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);

            StringBuilder sb = new StringBuilder();

            foreach (string line in lines)
            {
                if (!string.IsNullOrWhiteSpace(line))
                {
                    sb.AppendLine(tempMakro.GenerateValue(new[] { line.Trim() }));
                }
            }
            makros.Remove(tempMakro);

            return(sb.ToString());
        }
示例#4
0
        protected static string ParseBlock(VPPTextParser parser)
        {
            parser.EatWhiteSpace();
            int pStart = parser.Eat('{');
            int end    = parser.FindClosing('{', '}');

            parser.SetPosition(pStart + 1);
            string block = parser.Get(end - pStart - 1).Trim();

            parser.SetPosition(pStart);
            parser.Remove(end + 1 - pStart);

            return(block);
        }
示例#5
0
 public abstract string Resolve(List <VPPMakro> makros, VPPTextParser parser, string[] args);