Use metaprogramming to access attributes rather than method definitions

In order to future-proof against a living spec, allow arbitrary access to attributes within the parsed body.