Parsing coverage annotations with AnnotationParser:
---------------------------------------------------

   Say we have a file as follows:
    
    >>> from xix.utils.mock import File
    >>> t = '''> def foo(a):
    ... >     if a:
    ... !         print 'hello'
    ...   #  just a comment
    ...    
    ... > r = lambda : 45
    ...     
    ... '''
    >>> f = File(t)

    Create a parser instance and call parse with file object:
   
    >>> from xix.utils.cover import AnnotationParser
    >>> parser = AnnotationParser()
    >>> ant = parser.parse(f)

    The annotation object should be created sucessfully.  Let's see:
    
    >>> covered = [ line for line in ant if line.covered ]
    >>> isexec = [ line for line in ant if line.isexec ]
    >>> notexec = [ line for line in ant if not line.isexec ]
    >>> for line in covered:
    ...     print line.text
    def foo(a):
        if a:
    r = lambda : 45
    >>> for line in isexec:
    ...     print line.text
    def foo(a):
        if a:
            print 'hello'
    r = lambda : 45
    >>> for line in notexec:
    ...     print line.text
    #  just a comment
    <BLANKLINE>
    <BLANKLINE>
    <BLANKLINE>
    

