+def _parenthesized_expression_parser(index, tokens):
+ failure = (False, index, None)
+
+ if tokens[index].type == 'open_parenthese':
+ index += 1
+ else:
+ return failure
+
+ success, index, internal = _expression_parser(index, tokens)
+ if not success:
+ return failure
+
+ if tokens[index].type == 'close_parenthese':
+ index += 1
+ else:
+ raise Exception('Expected ")" on line {}, found "{}"'.format(
+ tokens[index].line,
+ tokens[index].match,
+ ))
+
+ return True, index, FurParenthesizedExpression(internal=internal)
+