Index: third_party/handlebar/handlebar.py |
diff --git a/third_party/handlebar/handlebar.py b/third_party/handlebar/handlebar.py |
index 7e06868e19380cfdcc4faa8c49f4620e4c0a5d1d..af561cadca5c60688f23b0c06bfe591e3b1251be 100644 |
--- a/third_party/handlebar/handlebar.py |
+++ b/third_party/handlebar/handlebar.py |
@@ -275,10 +275,11 @@ class _Identifier(object): |
''' |
_VALID_ID_MATCHER = re.compile(r'^[a-zA-Z0-9@_/-]+$') |
- def __init__(self, name, line, column): |
+ def __init__(self, name, line, column, title=None): |
self.name = name |
self.line = line |
self.column = column |
+ self._title = title |
if name == '': |
raise ParseException('Empty identifier %s' % self.GetDescription()) |
for part in name.split('.'): |
@@ -286,7 +287,10 @@ class _Identifier(object): |
raise ParseException('Invalid identifier %s' % self.GetDescription()) |
def GetDescription(self): |
- return '\'%s\' at line %s column %s' % (self.name, self.line, self.column) |
+ desc = '\'%s\' at line %s column %s' % (self.name, self.line, self.column) |
+ if self._title is not None: |
+ desc = '%s: %s' % (self._title, desc) |
+ return desc |
def CreateResolutionErrorMessage(self, name, stack=None): |
message = _StringBuilder() |
@@ -1040,7 +1044,7 @@ class Handlebar(object): |
if clazz is not _UnescapedVariableNode: |
name = name[1:] |
column += 1 |
- inline_node = clazz(_Identifier(name, line, column)) |
+ inline_node = clazz(_Identifier(name, line, column, title=self._name)) |
if isinstance(inline_node, _PartialNode): |
inline_node.SetArguments(self._ParsePartialNodeArgs(tokens)) |
if bind_to is not None: |
@@ -1122,7 +1126,8 @@ class Handlebar(object): |
column_start = tokens.next_column + 1 |
id_ = _Identifier(tokens.AdvanceOverNextString(excluded=' \n\r\t:()'), |
tokens.next_line, |
- column_start) |
+ column_start, |
+ title=self._name) |
tokens.SkipWhitespace() |
return id_ |