• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Created by SharpDevelop.
3  * User: lextm
4  * Date: 2008/5/31
5  * Time: 12:07
6  *
7  * To change this template use Tools | Options | Coding | Edit Standard Headers.
8  */
9 
10 using System.Collections.Generic;
11 
12 namespace Lextm.SharpSnmpLib.Mib.Elements
13 {
14     public sealed class ImportsFrom
15     {
16         private readonly string _module;
17         private readonly List<string> _types = new List<string>();
18 
ImportsFrom(Symbol last, ISymbolEnumerator symbols)19         public ImportsFrom(Symbol last, ISymbolEnumerator symbols)
20         {
21             Symbol previous = last;
22             Symbol current;
23             while ((current = symbols.NextSymbol()) != Symbol.From)
24             {
25                 if (current == Symbol.EOL)
26                 {
27                     continue;
28                 }
29 
30                 if (current == Symbol.Comma)
31                 {
32                     previous.AssertIsValidIdentifier();
33                     _types.Add(previous.ToString());
34                 }
35 
36                 previous = current;
37             }
38 
39             previous.AssertIsValidIdentifier();
40             _types.Add(previous.ToString());
41 
42             _module = symbols.NextSymbol().ToString().ToUpperInvariant(); // module names are uppercase
43         }
44 
45         public string Module
46         {
47             get { return _module; }
48         }
49 
50         public IList<string> Types
51         {
52             get { return _types; }
53         }
54 
ToString()55         public override string ToString()
56         {
57             return string.Join(", ", _types.ToArray()) + " FROM " + _module;
58         }
59     }
60 }