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 = '!'