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