def apply(self, element) -> Element: has_head = Util.has_head_element(element) if has_head: new_form_element = element.parent.wrap(element.prev, element.end, Form) new_form = new_form_element.code new_form.prepend( Identifier("@" + element.text + element.end.text, element.range)) # @[] head BEGIN_MACRO('[') begin ... end END_MACRO(']') else: new_form_element = element.parent.wrap(element, element.end, Form) new_form = new_form_element.code new_form.prepend( Identifier(element.text + element.end.text, element.range)) # @[] BEGIN_MACRO('[') begin head ... end END_MACRO(']') begin_element = element.next last_element = new_form.last new_form.remove(element) # remove BEGIN_MACRO('[') new_form.remove(new_form.last) # remove END_MACRO(']') if begin_element is last_element: # if we have something like a[] or a{} or so... return new_form_element.next else: # return Util.join_all_args(new_form_element, begin_element, "head-prefixed parenthesized form", 2 if has_head else 1) Util.explode_list_of_args(begin_element) return new_form_element.next
def apply(self, element) -> Element: has_head = Util.has_head_element(element) if has_head: new_form_element = element.parent.wrap(element.prev, element.end, Form) new_form = new_form_element.code new_form.prepend(Identifier("@" + element.text + element.end.text, element.range)) # @[] head BEGIN_MACRO('[') begin ... end END_MACRO(']') else: new_form_element = element.parent.wrap(element, element.end, Form) new_form = new_form_element.code new_form.prepend(Identifier(element.text + element.end.text, element.range)) # @[] BEGIN_MACRO('[') begin head ... end END_MACRO(']') begin_element = element.next last_element = new_form.last new_form.remove(element) # remove BEGIN_MACRO('[') new_form.remove(new_form.last) # remove END_MACRO(']') if begin_element is last_element: # if we have something like a[] or a{} or so... return new_form_element.next else: # return Util.join_all_args(new_form_element, begin_element, "head-prefixed parenthesized form", 2 if has_head else 1) Util.explode_list_of_args(begin_element) return new_form_element.next
def applies(self, element): return Util.is_opening_delimiter( element, '(') and not Util.has_head_element(element)
def applies(self, element): return Util.is_opening_delimiter(element, '(') and not Util.has_head_element(element)