projects
/
fur
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add very rudimentary line numbers to exceptions
[fur]
/
parsing.py
diff --git
a/parsing.py
b/parsing.py
index
2076837
..
12b93f5
100644
(file)
--- a/
parsing.py
+++ b/
parsing.py
@@
-36,6
+36,14
@@
def _zero_or_more_parser(formatter, parser):
return result_parser
return result_parser
+NodeMetadata = collections.namedtuple(
+ 'NodeMetadata',
+ [
+ 'index',
+ 'line',
+ ],
+)
+
FurIntegerLiteralExpression = collections.namedtuple(
'FurIntegerLiteralExpression',
[
FurIntegerLiteralExpression = collections.namedtuple(
'FurIntegerLiteralExpression',
[
@@
-67,6
+75,7
@@
FurNegationExpression = collections.namedtuple(
FurInfixExpression = collections.namedtuple(
'FurInfixExpression',
[
FurInfixExpression = collections.namedtuple(
'FurInfixExpression',
[
+ 'metadata',
'order',
'operator',
'left',
'order',
'operator',
'left',
@@
-270,6
+279,10
@@
def _left_recursive_infix_operator_parser(operator_token_matcher, operand_parser
if success:
result = FurInfixExpression(
if success:
result = FurInfixExpression(
+ metadata=NodeMetadata(
+ index=tokens[index].index,
+ line=tokens[index].line,
+ ),
order=order,
operator=tokens[index].match,
left=result,
order=order,
operator=tokens[index].match,
left=result,