module Liquid class Document < BlockBody def self.parse(tokens, parse_context) doc = new doc.parse(tokens, parse_context) doc end def parse(tokens, parse_context) super do |end_tag_name, end_tag_params| unknown_tag(end_tag_name, parse_context) if end_tag_name end rescue SyntaxError => e e.line_number ||= parse_context.line_number raise end def unknown_tag(tag, parse_context) case tag when 'else'.freeze, 'end'.freeze raise SyntaxError.new(parse_context.locale.t("errors.syntax.unexpected_outer_tag".freeze, tag: tag)) else raise SyntaxError.new(parse_context.locale.t("errors.syntax.unknown_tag".freeze, tag: tag)) end end end end