Package twisted :: Package xish :: Module xpathparser :: Class Scanner

[frames | no frames]

## Class Scanner

Known Subclasses:
  `XPathParserScanner`

Yapps scanner.

The Yapps scanner can work in context sensitive or context insensitive modes. The token(i) method is used to retrieve the i-th token. It takes a restrict set that limits the set of tokens it is allowed to return. In context sensitive mode, this restrict set guides the scanner. In context insensitive mode, there is no restriction (the set is always the full set of tokens).

Method Summary
| ``__init__`(self, patterns, ignore, input)` Initialize the scanner.
| ``__repr__`(self)` Print the last 10 tokens that have been scanned in
| ``get_char_pos`(self)` Get the current char position in the input text.
| ``get_column_number`(self)` Get the column number of the current position in the input text.
| ``get_input_scanned`(self)` Get the portion of the input that has been tokenized.
| ``get_input_unscanned`(self)` Get the portion of the input that has not yet been tokenized.
| ``get_line_number`(self)` Get the line number of the current position in the input text.
| ``get_prev_char_pos`(self, i)` Get the previous position (one token back) in the input text.
| ``get_token_pos`(self)` Get the current token position in the input text.
| ``scan`(self, restrict)` Should scan another token and add it to the list, self.tokens, and add the restriction to self.restrictions
| ``token`(self, i, restrict)` Get the i'th token in the input.

Method Details

### __init__(self, patterns, ignore, input)
(Constructor)

    Initialize the scanner.

    Parameters:
      patterns : [(terminal, uncompiled regex), ...] or None
      ignore : [terminal,...]
      input : string

    If patterns is None, we assume that the subclass has
    defined self.patterns : [(terminal, compiled regex), ...].
    Note that the patterns parameter expects uncompiled regexes,
    whereas the self.patterns field expects compiled regexes.

### __repr__(self)
(Representation operator)

Print the last 10 tokens that have been scanned in

### get_char_pos(self)

Get the current char position in the input text.

### get_column_number(self)

Get the column number of the current position in the input text.

### get_input_scanned(self)

Get the portion of the input that has been tokenized.

### get_input_unscanned(self)

Get the portion of the input that has not yet been tokenized.

### get_line_number(self)

Get the line number of the current position in the input text.

### get_prev_char_pos(self, i=None)

Get the previous position (one token back) in the input text.

### get_token_pos(self)

Get the current token position in the input text.

### scan(self, restrict)

Should scan another token and add it to the list, self.tokens, and add the restriction to self.restrictions

### token(self, i, restrict=None)

Get the i'th token in the input.

If i is one past the end, then scan for another token.

Args:

restrict : [token, ...] or None; if restrict is None, then any token is allowed. You may call token(i) more than once. However, the restrict set may never be larger than what was passed in on the first call to token(i).

Generated by Epydoc 2.0 on Sat May 15 20:07:36 2004 | http://epydoc.sf.net