* add more tests on edge cases
* generate reverse OID -> MIB index
* handle SMIv1 MAX clause in range constraint
* support MAX clause mapping it into type-specific value
* possibly split symbol table code generator onto imported modules and symbol
  table code generators.
* support more common broken SMI constructs 
* DEFVAL and AUGMENTS should not depend on the order of symbols in MIB
* make a collection of fixed MIBs (e.g. Huawei has lots of bad/broken MIBs)
* some MIBs use hex as DEFVAL for types other than OCTET STRING (additional AST processing phase will help)
* handle the case when the symbol and the enumaration value (which can be in DEFVAL) have the same name - llc2 in NETLINK-SPECIFIC-MIB (additional AST processing phase will help)
* check imports and try to add necessary ones if missed (like OBJECT-TYPE, MODULE-IDENTITY, etc)
* generate TextualConvention first or add additional AST processing phase
* implement a cache of available files at abstract reader path
* create a command-line tool for splitting MIBs stored in a single file
* create a MIB querying tool: get MIB module's OIDs, enterprise IDs,
  canonical name(s); search MIB objects by regexp; build source .index
* implement xml/html/yaml codegeneration backend
* write a tool to fetch canonical MIB name from MIB file, rename MIB file, split merged MIBs onto individual files
* write a tool to turn IANA assigned numbers into JSON
* introduce cached MIBs invalidation feature -- may be useful when we screw up and produce bad MIBs
* json codegen:
  - make schema configurable
  - further simplify/review codegen code
  - rebuild the docs
  - conditionally require simplejson and ordereddict
  - add tests
  - is it a good idea to make writers also reading data?
  - review symtable for unused pieces
  - write a tool to split json index onto separate documents
  - index NOTIFICATION-TYPE's
  - add example script on index build
