@property<EOL><INDENT>def arguments(self) -> List[Argument]:<DEDENT>
shadow = self._shadow<EOL>split_spans = self._args_matcher(shadow).spans('<STR_LIT>')<EOL>if not split_spans:<EOL><INDENT>return []<EOL><DEDENT>arguments = []<EOL>arguments_append = arguments.append<EOL>type_to_spans = self._type_to_spans<EOL>ss, se = span = self._span<EOL>type_ = id(span)<EOL>lststr = self._lststr<EOL>string = lststr[<NUM_LIT:0>]<EOL>arg_spans = type_to_spans.setdefault(type_, [])<EOL>span_tuple_to_span_get = {(s[<NUM_LIT:0>], s[<NUM_LIT:1>]): s for s in arg_spans}.get<EOL>for arg_self_start, arg_self_end in split_spans:<EOL><INDENT>s, e = arg_span = [ss + arg_self_start, ss + arg_self_end]<EOL>old_span = span_tuple_to_span_get((s, e))<EOL>if old_span is None:<EOL><INDENT>insort(arg_spans, arg_span)<EOL><DEDENT>else:<EOL><INDENT>arg_span = old_span<EOL><DEDENT>arg = Argument(lststr, type_to_spans, arg_span, type_)<EOL>arg._shadow_cache = (<EOL>string[s:e], shadow[arg_self_start:arg_self_end])<EOL>arguments_append(arg)<EOL><DEDENT>return arguments<EOL>
Parse template content. Create self.name and self.arguments.