Table of Contents

Class: Scanner em.py

A scanner holds a buffer for lookahead parsing and has the ability to scan for special symbols and indicators in that buffer.

Methods   
__getitem__
__getslice__
__init__
__len__
__nonzero__
acquire
advance
check
chop
complex
feed
find
last
nested
next
one
phrase
read
release
rest
set
simple
sync
unsync
word
  __getitem__ 
__getitem__ ( self,  index )

  __getslice__ 
__getslice__ (
        self,
        start,
        stop,
        )

  __init__ 
__init__ (
        self,
        prefix,
        data='',
        )

  __len__ 
__len__ ( self )

  __nonzero__ 
__nonzero__ ( self )

  acquire 
acquire ( self )

Lock the scanner so it doesn't destroy data on sync.

  advance 
advance ( self,  count=1 )

Advance the pointer count characters.

  check 
check (
        self,
        i,
        archetype=None,
        )

Scan for the next single or triple quote, with the specified archetype (if the archetype is present, only trigger on those types of quotes. Return the found quote or None.

Exceptions   
TransientParseError( "need to scan for rest of quote" )
  chop 
chop (
        self,
        count=None,
        slop=0,
        )

Chop the first count + slop characters off the front, and return the first count. If count is not specified, then return everything.

Exceptions   
TransientParseError( "not enough data to read" )
  complex 
complex (
        self,
        enter,
        exit,
        start=0,
        end=None,
        skip=None,
        )

Scan from i for an ending sequence, respecting quotes, entries and exits.

Exceptions   
TransientParseError( "expecting end of complex expression" )
  feed 
feed ( self,  data )

Feed some more data to the scanner.

  find 
find (
        self,
        sub,
        start=0,
        end=None,
        )

Find the next occurrence of the character, or return -1.

  last 
last (
        self,
        char,
        start=0,
        end=None,
        )

Find the first character that is not the specified character.

Exceptions   
TransientParseError( "expecting other than %s" % char )
  nested 
nested (
        self,
        enter,
        exit,
        start=0,
        end=None,
        )

Scan from i for an ending sequence, respecting entries and exits only.

Exceptions   
TransientParseError( "expecting end of complex expression" )
  next 
next (
        self,
        target,
        start=0,
        end=None,
        mandatory=False,
        )

Scan from i to j for the next occurrence of one of the characters in the target string; optionally, make the scan mandatory.

Exceptions   
ParseError( "expecting %s, not found" % target )
TransientParseError( "expecting ending character" )
  one 
one ( self )

Parse and return one token, or None if the scanner is empty.

Exceptions   
ParseError("unknown markup: %s%s" %( self.prefix, first ) )
  phrase 
phrase ( self,  start=0 )

Scan from i for a phrase (e.g., word, f(a, b, c), 'a[i]', or combinations like 'x[i](a)'.

Exceptions   
ParseError( "curly braces can't open simple expressions" )
  read 
read (
        self,
        i=0,
        count=1,
        )

Read count chars starting from i; raise a transient error if there aren't enough characters remaining.

Exceptions   
TransientParseError( "need more data to read" )
  release 
release ( self )

Unlock the scanner.

  rest 
rest ( self )

Get the remainder of the buffer.

  set 
set ( self,  data )

Start the scanner digesting a new batch of data; start the pointer over from scratch.

  simple 
simple ( self,  start=0 )

Scan from i for a simple expression, which consists of one more phrases separated by dots.

  sync 
sync ( self )

Sync up the buffer with the read head.

  unsync 
unsync ( self )

Undo changes; reset the read head.

  word 
word ( self,  start=0 )

Scan from i for a simple word.

Exceptions   
TransientParseError( "expecting end of word" )

Table of Contents

This document was automatically generated on Mon Sep 8 19:12:14 2003 by HappyDoc version 2.1