refactor: use Pratt's parser for expressions in attributes

Closes #288