class documentation

class _Parser: (source)

View In Hierarchy

Internal parser. This class can translate a single rule into an abstract tree of tuples. It implements the following grammar:: condition = and_condition ('or' and_condition)* ('@integer' samples)? ('@decimal' samples)? and_condition = relation ('and' relation)* relation = is_relation | in_relation | within_relation is_relation = expr 'is' ('not')? value in_relation = expr (('not')? 'in' | '=' | '!=') range_list within_relation = expr ('not')? 'within' range_list expr = operand (('mod' | '%') value)? operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w' range_list = (range | value) (',' range_list)* value = digit+ digit = 0|1|2|3|4|5|6|7|8|9 range = value'..'value samples = sampleRange (',' sampleRange)* (',' ('…'|'...'))? sampleRange = decimalValue '~' decimalValue decimalValue = value ('.' value)? - Whitespace can occur between or around any of the above tokens. - Rules should be mutually exclusive; for a given numeric value, only one rule should apply (i.e. the condition should only be true for one of the plural rule elements). - The in and within relations can take comma-separated lists, such as: 'n in 3,5,7..15'. - Samples are ignored. The translator parses the expression on instantiation into an attribute called `ast`.

Method __init__ Undocumented
Method and_condition Undocumented
Method condition Undocumented
Method expect Undocumented
Method expr Undocumented
Method newfangled_relation Undocumented
Method range_list Undocumented
Method range_or_value Undocumented
Method relation Undocumented
Method value Undocumented
Instance Variable ast Undocumented
Instance Variable tokens Undocumented
def __init__(self, string): (source)

Undocumented

def and_condition(self): (source)

Undocumented

def condition(self): (source)

Undocumented

def expect(self, type_, value=None, term=None): (source)

Undocumented

def expr(self): (source)

Undocumented

def newfangled_relation(self, left): (source)

Undocumented

def range_list(self): (source)

Undocumented

def range_or_value(self): (source)

Undocumented

def relation(self): (source)

Undocumented

def value(self): (source)

Undocumented

Undocumented

Undocumented