using System;
using System.Linq;

namespace compiler
{
    class Program
    {
        static void Main(string[] args)
        {
            ConsoleLogger.Verbosity = Verbosity.Debugging;

            if (args.Length != 2)
            {
                ConsoleLogger.WriteLine("Invalid Arguments", Verbosity.Error);
                return;
            }

            var sourceDirectory = args[0];
            var sourceFiles = System.IO.Directory.GetFiles(sourceDirectory, "*.uml");
            foreach (var sourceFile in sourceFiles)
            {
                Console.WriteLine("New file: " + sourceFile);
                var rootNodes = TestParser.ReadFile(sourceFile).ToList();

                // thw following is just for testing
                foreach (var rootNode in rootNodes)
                {
                    Console.WriteLine("New rootNode");
                    var node = rootNode;
                    while (node != null)
                    {
                        Console.WriteLine(node.Text);
                        Console.WriteLine(node.Data?.Select(x => "  " + x)?.Aggregate((x, y) => x + "\n" + y));
                        node = node.Next;
                    }
                }
            }
        }
    }
}