2005-04-12 Dick Porter <dick@ximian.com>
[mono.git] / mcs / ilasm / scanner / StringHelperBase.cs
1 // StringHelperBase.cs\r
2 // Author: Sergey Chaban (serge@wildwestsoftware.com)\r
3 \r
4 using System;\r
5 using System.Text;\r
6 \r
7 namespace Mono.ILASM {\r
8 \r
9         /// <summary>\r
10         /// </summary>\r
11         internal abstract class StringHelperBase {\r
12 \r
13                 protected ILTokenizer host;\r
14                 protected int mode;\r
15 \r
16                 /// <summary>\r
17                 /// </summary>\r
18                 /// <param name="host"></param>\r
19                 public StringHelperBase (ILTokenizer host) {\r
20                         this.host = host;\r
21                         mode = Token.UNKNOWN;\r
22                 }\r
23 \r
24                 /// <summary>\r
25                 /// </summary>\r
26                 /// <returns></returns>\r
27                 public abstract bool Start (char ch);\r
28 \r
29 \r
30                 /// <summary>\r
31                 /// </summary>\r
32                 /// <returns></returns>\r
33                 public bool Start (int ch)\r
34                 {\r
35                         return Start ((char)ch);\r
36                 }\r
37 \r
38                 /// <summary>\r
39                 /// </summary>\r
40                 /// <returns></returns>\r
41                 public bool Start ()\r
42                 {\r
43                         return Start (host.Reader.Peek ());\r
44                 }\r
45 \r
46 \r
47                 /// <summary>\r
48                 /// </summary>\r
49                 /// <returns></returns>\r
50                 public abstract string Build ();\r
51 \r
52 \r
53                 /// <summary>\r
54                 /// </summary>\r
55                 public int TokenId {\r
56                         get {\r
57                                 return mode;\r
58                         }\r
59                 }\r
60 \r
61         }\r
62 \r
63 }