From 13a43e44bf757fb550417074d71dfe3fc0080e95 Mon Sep 17 00:00:00 2001 From: Bolun Thompson Date: Sat, 4 Jan 2025 03:55:19 +0900 Subject: [PATCH] Fix subshells nested in var expansion (#7) The pretty printer printed it as $(()), an arithmetic expansion. --- shasta/ast_node.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/shasta/ast_node.py b/shasta/ast_node.py index c55f629..ce0b292 100644 --- a/shasta/ast_node.py +++ b/shasta/ast_node.py @@ -726,7 +726,14 @@ def json(self): def pretty(self, quote_mode=UNQUOTED): param = self.node - return "$(" + param.pretty() + ")" + body = param.pretty() + # to handle $( () ) + try: + if body[0] == "(" and body[-1] == ")": + body = f" {body} " + except IndexError: + pass + return "$(" + body + ")" class AssignNode(AstNode): var: str