Squirrel uses a bidirectional chart parser and together with an attribute value grammar and lexicon to produce a property-theoretic representation of a sentence.
Both the grammar and lexicon are written in forms that are familiar in formal syntax. They are based on Generalised Phrase Structure grammars.
The representations used in the grammar and lexicon are not used directly by the parser. This would require the use of (inefficient) graph unification. Instead, both grammar and lexicon are compiled into forms that allow the parser to use simpler term unification. This translation process requires the use of a grammar definition. This contains information about the values that an attribute can have.