Knowledge Representation with Attribute Grammars