This is not yet complete, since it fails to capture the newline, line comments, and variable references in expressions. However, it does capture the broad structure of an attribute, along with gathering up all of its _interior_ tokens.
This is not yet complete, since it fails to capture the newline, line comments, and variable references in expressions. However, it does capture the broad structure of an attribute, along with gathering up all of its _interior_ tokens.