agglovar.merge.config.parser

Lexer and parser for intersect configuration strings. Contains code for parsing string and generating an AST from according to grammar rules. Downstream objects will generate a configuration object from the AST.

Classes

IntersectConfigLexer

Token lexer for intersect configuration strings.

IntersectConfigParser

Intersect configuration parser.

Module Contents

class agglovar.merge.config.parser.IntersectConfigLexer(**kwdargs: dict)

Bases: object

Token lexer for intersect configuration strings.

parse_float(str_val: str) float

Parse float from string.

Parameters:

str_val – String to parse.

Returns:

Float value.

Raises:

ValueError – If the string does not represent a float value.

parse_int(str_val: str) int

Parse int from string.

Parameters:

str_val – String to parse.

Returns:

Integer value.

Raises:

ValueError – If the string does not represent an int value.

t_KEYWORD(t)

w(w|d)*

t_KW_FALSE(t)

[fF][aA][lL][sS][eE]

t_KW_MATCH(t)

[mM][aA][tT][cC][hH]

t_KW_TRUE(t)

[tT][rR][uU][eE]

t_T_FLOAT(t)

[+-]?(d+.d*)|(d*.d+)

t_T_FLOAT_EXP(t)

[+-]?((d+.?d*)|(.d+))[eE][+-]?((d+.?d*)|(.d+))

t_T_INT(t)

[+-]?(d+)

t_T_INT_MULT(t)

[+-]?((d+.?d*)|(.d+))[kKmMgG]

t_T_UNLIMITED(t)

[uU][nN][lL][iI][mM][iI][tT][eE][dD]

t_error(t)

Handle lexer errors.

Parameters:

t – Token that caused the error.

Raises:

ValueError – Always raised for illegal characters.

lexer: ply.lex.Lexer
literals: tuple[str]
tokens: tuple[str]
class agglovar.merge.config.parser.IntersectConfigParser(**kwdargs: Any)

Bases: object

Intersect configuration parser.

p_error(p) None
p_merge_config(p) None

merge_config : KEYWORD ‘:’ ‘:’ spec_list

p_primitive_list_element(p) None
primitive_list_elementt_int
t_float
p_primitive_list_elements(p) None
primitive_list_elementsprimitive_list_element
primitive_list_element ‘,’ primitive_list_elements
‘,’ primitive_list_elements
p_spec(p) None
specKEYWORD
KEYWORD ‘(’ val_list ‘)’
t_match
p_spec_list(p) None
spec_listspec
spec ‘:’ spec_list
p_t_bool(p) None
t_boolKW_TRUE
KW_FALSE
p_t_float(p) None
t_floatT_FLOAT
T_FLOAT_EXP
p_t_int(p) None
t_intT_INT
T_INT_MULT
p_t_match(p) None
t_matchKW_MATCH ‘(’ val_list ‘)’
KW_MATCH
p_t_primitive_list(p) None

t_primitive_list : ‘[’ primitive_list_elements ‘]’

p_t_unlimited(p) None

t_unlimited : T_UNLIMITED

p_val(p) None
valval_primitive
KEYWORD ‘=’ val_primitive
KW_MATCH ‘=’ val_primitive
p_val_list(p) None
val_listval
val ‘,’ val_list
‘,’ val_list
p_val_primitive(p) None
val_primitivet_int
t_float
t_bool
t_unlimited
t_match
t_primitive_list
parse(*args, **kwdargs) dict

Parse a configuration string.

Arguments are passed to the parser.

Returns:

AST as a dictionary.

Raises:

Exception – If the ply parser or lexer throws an exception. Multiple exception types may be thrown.

lexer: ply.lex.Lexer
parser: ply.yacc.LRParser
tokens: tuple[str]