dvander@824: using System; dvander@824: using System.Collections.Generic; dvander@824: using System.Text; dvander@824: dvander@824: namespace incparser dvander@824: { dvander@824: class Program dvander@824: { dvander@824: static void Main(string[] args) dvander@824: { dvander@824: Environment.Exit(SubMain(args)); dvander@824: } dvander@824: dvander@824: static int SubMain(string[] args) dvander@824: { dvander@824: if (args.Length < 1) dvander@824: { dvander@824: Console.WriteLine("Usage: incparser "); dvander@824: return 1; dvander@824: } dvander@824: dvander@824: IncParser inc = null; dvander@824: try dvander@824: { dvander@824: inc = new IncParser(args[0]); dvander@824: } dvander@824: catch (ParseException e) dvander@824: { dvander@824: Console.WriteLine("Initial browsing failed: " + e.Message); dvander@824: return 1; dvander@824: } dvander@824: catch (System.Exception e) dvander@824: { dvander@824: Console.WriteLine("Failed to read file: " + e.Message); dvander@824: return 1; dvander@824: } dvander@824: dvander@824: ParseWriter pw = new ParseWriter(); dvander@824: dvander@824: try dvander@824: { dvander@824: inc.Parse(pw); dvander@824: } dvander@824: catch (System.Exception e) dvander@824: { dvander@824: Console.WriteLine("Error parsing file (line " + inc.GetLineNumber() + "): " + e.Message); dvander@824: return 1; dvander@824: } dvander@824: dvander@824: if (pw.Level != 0) dvander@824: { dvander@824: Console.WriteLine("Fatal parse error detected; unable to complete output."); dvander@824: return 1; dvander@824: } dvander@824: dvander@824: Console.Write(pw.Contents); dvander@824: Console.Write("\n"); dvander@824: dvander@824: return 0; dvander@824: } dvander@824: } dvander@824: }