Basically, all the tokens between 'asm' and 'end' get sent off to the
assembler.

> Where can I found a "working" grammar?

I can't help you with that, sorry. To get a quality parse for Delphi,
I expect you'll either need a relatively powerful parser generator or
a fair amount of ad-hockery and symbol table info in a manually
written parser.