TODO.txt, v.1.2, 2003-03-27, Per Cederberg <per@percederberg.net>
=================================================================


1. Introduction
---------------

  This document contains a list of the currently known issues and 
  suggested improvements to the MIB parser. Please verify that any 
  new problem found is not in this list before sending a bug report.



2. Known Issues
---------------

  o No proper import mechanism. Symbol imports are currently 
    hardcoded with the known SNMPv1 and SNMPv2 symbols. This makes 
    the import mechanism impossible to use with other symbols. The
    only existing workaround is to copy all imported definitions into
    the ASN.1 file.

  o Experimental support for SNMPv2. The support for several of the 
    SNMPv2 macros is flaky or completely missing. The syntax parsing
    should be working correctly, but the semantical analysis is not
    complete yet.

  o No support for SNMPv3. The latest SNMP version hasn't been tested 
    with the library yet, and is therefore completely unsupported. 
    The RFCs should be checked for any changes to the SNMP macros, 
    thereby providing the same level of support as for SNMPv2.

  o Access to type information is missing. Many of the type classes 
    lacks accessor methods for getting hold of the type information. 
    This has not been fixed yet, as the type system should be 
    refactored to allow storing all the type data properly.

  o Symbol tree model does not include all symbols. The tree model 
    for the symbols only includes traps and object type symbols, and
    largely ignores all other symbols. This makes the tree model 
    unsuitable for displaying the symbol tree.

  o Test suite is mostly unfinished. The test suite lacks many 
    positive test cases, and the existing ones are not finished. Test
    cases for negative tests are so far completely missing.
  
  o No difference between upper- and lower-case identifiers. The 
    semantical analysis does not perform any checks on the first 
    character in the symbol names, as would be appropriate. Type
    symbols should start with a capital letter and value symbols
    not.


3. Suggested Improvements
-------------------------

  o Create a real import mechanism. Instead supporting hardcoded
    names from known RFCs, the default SNMP MIBs should be 
    distributed with the parser in order to import them as needed.

  o Separate the OID and the symbol object. This would make it 
    possible to create a loosely coupled symbol tree, and to support
    OIDs completely.
  
  o Replace the JavaCC parser generator. JavaCC does not generate
    the parse tree handling source code, making it rather unflexible
    to change the grammar. Another parser generator that also 
    generates nicer code would be desired.

  o Add syntactic fault tolerance. The grammar currently does not 
    have any fault tolerance on the syntax level, making it 
    impossible to parse a file containing an ever so small error.

  o Support strict SNMPv1 and SNMPv2 parsing. When parsing SNMPv1 
    files, no symbols or constructs from SNMPv2 should be available.
    The opposite goes for SNMPv2 files.

  o Create automatic unit tests. All the source code should be tested
    automatically through JUnit or a similar tool. The test suite 
    could be used to provide the test data for a complete validation.
