public BaseVariables(IWalkerResult result, string output, AttributeParser[] attributes)
        {
            Filename = result.FilePath;
            OUTPUT   = output;
            var flags    = GetMacroVar("MacroFlags", attributes);
            var vars     = GetMacroVar("MacroVars", attributes);
            var values   = GetMacroVar("MacroValues", attributes);
            var includes = GetMacroVar("MacroInclude", attributes);
            var excludes = GetMacroVar("MacroExclude", attributes);

            Flags.AddBulk(flags);
            foreach (var varline in vars)
            {
                var v = varline.StripQuote();
                if (String.IsNullOrEmpty(v))
                {
                    continue;
                }
                var(vari, value) = v.GetAsign();
                if (!String.IsNullOrEmpty(vari))
                {
                    Variables.Set(vari, value);
                }
            }

            foreach (var varline in values)
            {
                var v = varline.StripQuote();
                if (String.IsNullOrEmpty(v))
                {
                    continue;
                }
                var(vari, value) = v.GetAsign();
                if (String.IsNullOrEmpty(vari))
                {
                    continue;
                }
                if (!Int32.TryParse(value, out var i))
                {
                    continue;
                }
                Values.Set(vari, i);
            }

            foreach (var varline in includes)
            {
                var v = varline.StripQuote();
                if (String.IsNullOrEmpty(v))
                {
                    continue;
                }
                Includes.Add(v);
            }

            foreach (var varline in excludes)
            {
                var v = varline.StripQuote();
                if (String.IsNullOrEmpty(v))
                {
                    continue;
                }
                Excludes.Add(v);
            }
        }