update lexer
update parser(support more that one properties)
rule can have empty lines between properties
rule can not be empty