Some people suggested trying moose for analysis of SAS programs, and I'm trying to figure out where to start with the meta-modeling.
SAS is not object oriented, though parts of it could be imagined to be. The main SAS code contains blocks of statements that begin with DATA or PROC; each block could probably be thought of as a function--to be precise, the application of a function.
If I want to make some new models, where do I start? FM3? FAMIX? elsewhere? The 4.0 release announcement says FM3 and FAMIX3 are both implemented in Fame, so maybe start with Fame? I've read some documentation, but I can't tell.
My inspiration for the project is understanding how some SAS datasets were produced. I have a system that creates numerous datasets, which feed into later datasets, etc. This is split at least across a couple of program files and it's really too complicated to keep in the brain.
If I get ambitious it would also be useful to trace where particular variables came from, in the sense of both datasets and individual expressions.
The only thing resembling a SAS parser I've run into (except for SAS, which is closed source) is a Perl module, and it looked relatively primitive. I've been using PetitParser, and at the point I started thinking about what it would parse results into.
Thanks for any pointers. Ross Boylan