back out the indexer change until I can figure it out
[mono.git] / mcs / mcs / genericparser.cs
1 //
2 // GenericParser.cs: The Base Parser for the Mono compilers
3 //
4 // Author: A Rafael D Teixeira (rafaelteixeirabr@hotmail.com)
5 //
6 // Licensed under the terms of the GNU GPL
7 //
8 // Copyright (C) 2001 Ximian, Inc.
9 //
10 using System;
11 using System.Text;
12
13 namespace Mono.Languages
14 {
15         using System.Collections;
16
17         /// <summary>
18         /// Base class to support multiple Jay generated parsers
19         /// </summary>
20         public abstract class GenericParser
21         {
22                 static protected int global_errors;
23
24                 // Name of the file we are parsing
25                 public string name;
26
27                 // Input stream to parse from.
28                 public System.IO.Stream input;
29
30                 public abstract int parse ();
31
32                 public virtual string[] extensions()
33                 {
34                         string [] list = { ".cs" };
35                         return list;
36                 }
37
38                 /// <summary>
39                 /// Emits error messages and increments a global count of them
40                 /// </summary>
41                 /// <param name="code"></param>
42                 /// <param name="desc"></param>
43                 static public void error (int code, string desc)
44                 {
45                         Console.WriteLine ("Error "+code+": "+ desc);
46                         global_errors++;
47                 }
48
49                 // Emits error messages with location info.
50                 // FIXME : Ideally, all error reporting should happen
51                 // with Report.Error but how do you get at that non-static
52                 // method everywhere you need it ?
53                 static public void error (int code, Mono.CSharp.Location l, string text)
54                 {
55                         Console.WriteLine (l.Name + "(" + l.Row + "," + 
56                                            "): Error CS" + code + ": " + text);
57                         global_errors++;
58                 }
59                 
60                 public GenericParser()
61                 {
62                         //
63                         // DO NOTHING: Derived classes should do their iniatilization here duties
64                         //
65                 }
66
67                 protected bool yacc_verbose_flag = false;
68
69                 public bool yacc_verbose
70                 {
71                         set
72                         {
73                                 yacc_verbose_flag = value;
74                         }
75
76                         get
77                         {
78                                 return yacc_verbose_flag;
79                         }
80                 }
81         }
82 }
83
84
85