Package libxyz :: Package parser :: Module flat :: Class FlatParser
[hide private]
[frames] | no frames]

Class FlatParser

source code

BaseParser --+
             |
            FlatParser

FlatParser is simple linear parser.

Format:

var1 <assign> val1 <delimiter> var2 <assign> val2 <delimiter> ...

Instance Methods [hide private]
 
__init__(self, opt=None) source code
 
parse(self, source, default_data=None)
Begin parsing
source code
 
_process_state_variable(self, word) source code
 
_process_state_assign(self, word) source code
 
_process_state_value(self, word) source code
 
_process_state_list_value(self, word) source code
 
_process_state_delim(self, word) source code
 
_cleanup(self) source code
 
_check_complete(self) source code
Class Variables [hide private]
  STATE_VARIABLE = 0
  STATE_ASSIGN = 1
  STATE_VALUE = 2
  STATE_LIST_VALUE = 3
  STATE_DELIM = 4
  DEFAULT_OPT = {u"comment": u"#", u"assignchar": u":", u"delimi...
Method Details [hide private]

__init__(self, opt=None)
(Constructor)

source code 
Parameters:
  • opt (dict

    Available options:

    • comment: Comment character. Everything else ignored until EOL. Type: string (single char)
    • assignchar: Variable-value split character. Type: string (single char)
    • delimiter: Character to use as delimiter between statements. Type: string (single char)
    • validvars: List of variables valid within block. Type: sequence
    • value_validator: Value validator Type: A function that takes two args: variable and value and validates them. In case value is invalid, XYZValueError must be raised. Otherwise function must return required value, possibly modified.
    • count: How many blocks to parse. If count <= 0 - will parse all available. Type: integer
    • list_separator: Character to separate elements in list Type: string (single char) Default: ,
    ) - Options

parse(self, source, default_data=None)

source code 

Begin parsing

Parameters:
  • default_data - Dictionary with default values.

Class Variable Details [hide private]

DEFAULT_OPT

Value:
{u"comment": u"#", u"assignchar": u":", u"delimiter": u"\n", u"validva\
rs":(), u"value_validator": None, u"count": 0, u"list_separator": u","\
,}