2 using System.Collections.Generic;
5 namespace Lextm.SharpSnmpLib.Mib.Elements.Entities
10 private string _units;
13 private string _description;
14 private string _reference;
15 private IList<string> _indices;
16 private string _augments;
17 private string _defVal;
20 : base(module, preAssignSymbols, symbols)
22 ParseProperties(preAssignSymbols);
25 private void ParseProperties(
SymbolList header)
28 Symbol temp = headerSymbols.NextNonEOLSymbol();
31 temp = headerSymbols.NextNonEOLSymbol();
34 _syntax = ParseSyntax (Module, headerSymbols);
35 _units = ParseUnits (headerSymbols);
36 _access = ParseAccess (headerSymbols);
37 _status = ParseStatus (headerSymbols);
38 _description = ParseDescription (headerSymbols);
39 _reference = ParseReference (headerSymbols);
40 _indices = ParseIndices (headerSymbols);
41 _augments = ParseAugments (headerSymbols);
42 _defVal = ParseDefVal (headerSymbols);
51 string augment = null;
53 current = symbols.NextNonEOLSymbol();
56 current = symbols.NextNonEOLSymbol();
59 current = symbols.NextNonEOLSymbol();
64 else if (current != null)
78 current = symbols.NextNonEOLSymbol();
82 current = symbols.NextNonEOLSymbol();
90 current = symbols.NextNonEOLSymbol();
104 current = symbols.NextNonEOLSymbol();
110 else if (current != null)
124 current = symbols.NextNonEOLSymbol();
127 List<string> indices =
new List<string>();
131 current = symbols.NextNonEOLSymbol();
133 bool lastIndex =
false;
136 current = symbols.NextNonEOLSymbol();
143 current = symbols.NextNonEOLSymbol();
156 else if (current != null)
170 return symbols.NextNonEOLSymbol().ToString();
172 else if (current != null)
186 return symbols.NextNonEOLSymbol().ToString().Trim(
new char[] {
'"' });
188 else if (current != null)
203 current = symbols.NextNonEOLSymbol();
208 catch (ArgumentException)
210 current.Assert(
false,
"Invalid/Unknown status");
223 current = symbols.NextNonEOLSymbol();
226 case "not-accessible":
229 case "accessible-for-notify":
245 current.Assert(
false,
"Invalid/Unknown access");
258 return symbols.NextNonEOLSymbol().ToString();
260 else if (current != null)
276 private static bool IsProperty(
Symbol sym)
279 return s ==
"SYNTAX" || s ==
"MAX-ACCESS" || s ==
"STATUS" || s ==
"DESCRIPTION";
284 get {
return _syntax; }
285 internal set { _syntax = value; }
288 public override string Description
290 get {
return _description; }
295 get {
return _access; }
298 public IList<string> Indices
300 get {
return _indices; }
303 public string Augments
305 get {
return _augments; }
308 #region ITypeReferrer Member 312 get {
return _syntax; }
313 set { _syntax = value; }
static readonly Symbol Implied
ISymbolEnumerator GetSymbolEnumerator()
static readonly Symbol Reference
static readonly Symbol Comma
ObjectType(IModule module, SymbolList preAssignSymbols, ISymbolEnumerator symbols)
static readonly Symbol Status
static readonly Symbol Access
bool PutBack(Symbol item)
static readonly Symbol Units
static readonly Symbol MaxAccess
static readonly Symbol Description
static readonly Symbol ObjectType
static readonly Symbol OpenBracket
Lexer class that parses MIB files into symbol list.
static readonly Symbol DefVal
static readonly Symbol Augments
ITypeAssignment ReferredType
static readonly Symbol Index
static ITypeAssignment ParseBasicTypeDef(IModule module, string name, ISymbolEnumerator symbols, bool isMacroSyntax=false)
static readonly Symbol CloseBracket
override string ToString()
Returns a String that represents this Symbol.
static readonly Symbol Syntax