Si tiene que parsear codigo .pas, tengo uno hecho que podria ayudarte. Aunque lo correcto es darte la url,
http://www.goldparser.com, es un excelente parser de gramaticas BNF, y tienen ya gramaticas de pascal previamente hechas.
Yo hice mi practica de compiladores usando goldparser, un assembly para .net que implementa el parser, c# para hacer el editor, y las gramaticas (modificadas en mi caso, un mix de c y pascal) para parsear.
Al principio todos los terminos como que confunden, pero con el tiempo te acostumbras a diferenciar cada cosa de la otra.