private void PrintFlags(
            string file,
            IEnumerable <Flag> flags,
            ProgressReporter reporter)
        {
            foreach (var f in flags)
            {
                switch (f.Severity)
                {
                case SeverityKind.Info:
                    reporter.Info(
                        file,
                        f.Span.StartLine,
                        f.Span.StartCol,
                        string.Format("{0} (Code {1})", f.Message, f.Code));
                    break;

                case SeverityKind.Warning:
                    reporter.Warning(
                        file,
                        f.Span.StartLine,
                        f.Span.StartCol,
                        string.Format("{0} (Code {1})", f.Message, f.Code));
                    break;

                case SeverityKind.Error:
                    reporter.Error(
                        file,
                        f.Span.StartLine,
                        f.Span.StartCol,
                        string.Format("{0} (Code {1})", f.Message, f.Code));
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
        }
        private void PrintFlags(
            IEnumerable <Tuple <AST <Microsoft.Formula.API.Nodes.Program>, Flag> > flags,
            ProgressReporter reporter)
        {
            foreach (var f in flags)
            {
                switch (f.Item2.Severity)
                {
                case SeverityKind.Info:
                    reporter.Info(
                        f.Item1.Node.Name.ToString(),
                        f.Item2.Span.StartLine,
                        f.Item2.Span.StartCol,
                        string.Format("{0} (Code {1})", f.Item2.Message, f.Item2.Code));
                    break;

                case SeverityKind.Warning:
                    reporter.Warning(
                        f.Item1.Node.Name.ToString(),
                        f.Item2.Span.StartLine,
                        f.Item2.Span.StartCol,
                        string.Format("{0} (Code {1})", f.Item2.Message, f.Item2.Code));
                    break;

                case SeverityKind.Error:
                    reporter.Error(
                        f.Item1.Node.Name.ToString(),
                        f.Item2.Span.StartLine,
                        f.Item2.Span.StartCol,
                        string.Format("{0} (Code {1})", f.Item2.Message, f.Item2.Code));
                    break;

                default:
                    throw new NotImplementedException();
                }
            }
        }