lib/template/parser/template.rb in template-ruby-0.4.0 vs lib/template/parser/template.rb in template-ruby-0.5.0

- old
+ new

@@ -1,30 +1,39 @@ class Template class Parser - class Template < Parslet::Parser - rule(:code) { ::Code::Parser::Code.new } + class Template < Language + def code + ::Code::Parser::Code + end - rule(:left_curly_bracket) { str("{") } - rule(:right_curly_bracket) { str("}") } - rule(:escape) { str("\\") } + def opening_curly_bracket + str("{") + end - rule(:text_part) do - ( - (escape.ignore >> left_curly_bracket) | - (left_curly_bracket.absent? >> any) - ).repeat(1) + def closing_curly_bracket + str("}") end - rule(:code_part) do - left_curly_bracket.ignore >> code >> - (right_curly_bracket.ignore | any.absent?) + def backslash + str("\\") end - rule(:template) do - (text_part.as(:text) | code_part.as(:code)).repeat(1) | - str("").as(:text).repeat(1, 1) + def code_part + opening_curly_bracket << code << (closing_curly_bracket | any.absent) end - root(:template) + def text_character + (backslash.ignore << opening_curly_bracket) | + (opening_curly_bracket.absent << any) + end + + def text_part + text_character.repeat(1) + end + + def root + (code_part.aka(:code) | text_part.aka(:text)).repeat | + str("").aka(:text).repeat(1, 1) + end end end end