lib/faml/parser.rb in faml-0.2.5 vs lib/faml/parser.rb in faml-0.2.6

- old
+ new

@@ -1,7 +1,8 @@ require 'faml/ast' require 'faml/element_parser' +require 'faml/error' require 'faml/filter_parser' require 'faml/indent_tracker' require 'faml/line_parser' require 'faml/parser_utils' require 'faml/ruby_multiline' @@ -9,10 +10,11 @@ require 'faml/syntax_error' module Faml class Parser def initialize(options = {}) + @filename = options[:filename] end def call(template_str) @ast = Ast::Root.new @stack = [] @@ -37,9 +39,14 @@ if ast @ast << ast end @indent_tracker.finish @ast + rescue Error => e + if @filename && e.lineno + e.backtrace.unshift "#{@filename}:#{e.lineno}" + end + raise e end private DOCTYPE_PREFIX = '!'