module RsyncConfig
grammar RsyncSecretsFile rule start lines { def to_hash users = {} crawl users users end } end rule lines line? (EOL+ lines)? end rule line comment / user_record / whitespace+ end rule comment '#' [^\n]* end rule user_record user:([^:]+) ':' password:([^\t\r\n\ ]+) { def action users users[user_value] = password_value end def user_value user.text_value end def password_value password.text_value end } end rule whitespace [ \t\r\n] end rule EOL "\r\n" / "\n" end end
end