def _mult_expand(start, end, context): start.connect(fork( tn(MULT_ZERO_TO_ONE, 'mult-1'), tn(MULT_ZERO_TO_MANY, 'mult-2'), tn(MULT_ONE_TO_MANY, 'mult-3'), )).connect(end)
def _branch_elem_expand(start, end, context): token = sequence(zeroToOne(sequence(tn(ID, 'id'), tn(ASSIGN))), tn(TOKEN_ID, 'token'), zeroToOne(_MultRule('mult')) ) keyword = sequence(zeroToOne(sequence(tn(ID, 'id'), tn(ASSIGN))), tn(KEYWORD_NAME, 'keyword'), zeroToOne(_MultRule('mult')) ) rule = sequence(zeroToOne(sequence(tn(ID, 'id'), tn(ASSIGN))), tn(RULE_ID, 'rule'), zeroToOne(_MultRule('mult')) ) group = sequence(zeroToOne(sequence(tn(ID, 'id'), tn(ASSIGN))), _GroupRule('group'), zeroToOne(_MultRule('mult')) ) start.connect(fork( token, keyword, rule, group )).connect(end)
def expand(self, start, end, context): start\ .connect(zeroToMany(fork( _CommentRule('comment-style'), _EnableRule('enable'), _TokensRule('tokens'), _RuleRule('rule') )))\ .connect(end)
def _tokens_expand(start, end, context): start.connect(fork( _TokenRule(KEYWORD), _TokenRule(WORD), _TokenRule(PREFIX), _TokenRule(POSTFIX), _TokenRule(SEPARATOR), _TokenRule(LITERAL), _TokenRule(TEXT_BLOCK) )).connect(end)