LinqToNHibernate is written by Steve Strog in IMeta. Steve tries an astounding task by changing the way NHibernate parses HQL from a string system to an abstract syntax tree. To be fair, it has an initial start, as it is done in Hibernate using the ANTLR , which it migrates to .Net. It still impedes my mind what it is doing. I have to say that iMeta did well to give Steve time to work on it.
If you want to see how far it goes, you can check out the uNhAddIns repository .
LinqToNHibernate, NHContrib , , , Linq