public void parseExpression(CharSequence expression, Handler handler) {
        Id leftId = null;
        String relationExpr = null;

        Matcher matcher = EXPR_LEFTSIDE.matcher(expression);
        while(matcher.find()) {
            State state = parseState(matcher.group(1));
            Id rightId = handler.emit(state);

            if(relationExpr!=null) {
                handler.emit(parseTransition(leftId, rightId, relationExpr));
            }
            relationExpr = matcher.group(2);
            leftId = rightId;
        }
    }