tools/incparser/Program.cs
author David Anderson <dvander@alliedmods.net>
Mon May 21 04:46:17 2007 +0000 (2007-05-21)
changeset 824 0e9a2c98c9aa
child 2019 9f473114a511
permissions -rw-r--r--
initial import of working include -> keyvalues parser (warning: here be dragons)
dvander@824
     1
using System;
dvander@824
     2
using System.Collections.Generic;
dvander@824
     3
using System.Text;
dvander@824
     4
dvander@824
     5
namespace incparser
dvander@824
     6
{
dvander@824
     7
    class Program
dvander@824
     8
    {
dvander@824
     9
        static void Main(string[] args)
dvander@824
    10
        {
dvander@824
    11
            Environment.Exit(SubMain(args));
dvander@824
    12
        }
dvander@824
    13
dvander@824
    14
        static int SubMain(string[] args)
dvander@824
    15
        {
dvander@824
    16
            if (args.Length < 1)
dvander@824
    17
            {
dvander@824
    18
                Console.WriteLine("Usage: incparser <infile>");
dvander@824
    19
                return 1;
dvander@824
    20
            }
dvander@824
    21
dvander@824
    22
            IncParser inc = null;
dvander@824
    23
            try
dvander@824
    24
            {
dvander@824
    25
                inc = new IncParser(args[0]);
dvander@824
    26
            }
dvander@824
    27
            catch (ParseException e)
dvander@824
    28
            {
dvander@824
    29
                Console.WriteLine("Initial browsing failed: " + e.Message);
dvander@824
    30
                return 1;
dvander@824
    31
            }
dvander@824
    32
            catch (System.Exception e)
dvander@824
    33
            {
dvander@824
    34
                Console.WriteLine("Failed to read file: " + e.Message);
dvander@824
    35
                return 1;
dvander@824
    36
            }
dvander@824
    37
dvander@824
    38
            ParseWriter pw = new ParseWriter();
dvander@824
    39
dvander@824
    40
            try
dvander@824
    41
            {
dvander@824
    42
                inc.Parse(pw);
dvander@824
    43
            }
dvander@824
    44
            catch (System.Exception e)
dvander@824
    45
            {
dvander@824
    46
                Console.WriteLine("Error parsing file (line " + inc.GetLineNumber() + "): " + e.Message);
dvander@824
    47
                return 1;
dvander@824
    48
            }
dvander@824
    49
dvander@824
    50
            if (pw.Level != 0)
dvander@824
    51
            {
dvander@824
    52
                Console.WriteLine("Fatal parse error detected; unable to complete output.");
dvander@824
    53
                return 1;
dvander@824
    54
            }
dvander@824
    55
dvander@824
    56
            Console.Write(pw.Contents);
dvander@824
    57
            Console.Write("\n");
dvander@824
    58
dvander@824
    59
            return 0;
dvander@824
    60
        }
dvander@824
    61
    }
dvander@824
    62
}