summaryrefslogtreecommitdiff
path: root/contrib/apps/LwipMibCompiler/SharpSnmpLib/Mib/MibDocument.cs
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/apps/LwipMibCompiler/SharpSnmpLib/Mib/MibDocument.cs')
-rw-r--r--contrib/apps/LwipMibCompiler/SharpSnmpLib/Mib/MibDocument.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/contrib/apps/LwipMibCompiler/SharpSnmpLib/Mib/MibDocument.cs b/contrib/apps/LwipMibCompiler/SharpSnmpLib/Mib/MibDocument.cs
new file mode 100644
index 00000000000..aac3b280ed3
--- /dev/null
+++ b/contrib/apps/LwipMibCompiler/SharpSnmpLib/Mib/MibDocument.cs
@@ -0,0 +1,57 @@
+/*
+ * Created by SharpDevelop.
+ * User: lextm
+ * Date: 2008/5/17
+ * Time: 17:38
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+
+using System.Collections.Generic;
+
+namespace Lextm.SharpSnmpLib.Mib
+{
+ /// <summary>
+ /// MIB document.
+ /// </summary>
+ public sealed class MibDocument
+ {
+ private readonly List<IModule> _modules = new List<IModule>();
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MibDocument" /> class.
+ /// </summary>
+ /// <param name="file">The file.</param>
+ public MibDocument(string file)
+ : this(new Lexer(file))
+ {
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MibDocument"/> class.
+ /// </summary>
+ /// <param name="lexer">The lexer.</param>
+ public MibDocument(Lexer lexer)
+ {
+ ISymbolEnumerator symbols = lexer.GetEnumerator();
+
+ Symbol current;
+ while ((current = symbols.NextNonEOLSymbol()) != null)
+ {
+ symbols.PutBack(current);
+ _modules.Add(new MibModule(symbols));
+ }
+ }
+
+ /// <summary>
+ /// <see cref="MibModule"/> containing in this document.
+ /// </summary>
+ public IList<IModule> Modules
+ {
+ get
+ {
+ return _modules;
+ }
+ }
+ }
+} \ No newline at end of file