Most of my work on this is on paper, and some code sketeches. There quite a few non-trivial issues, and hard decisions to be made. Since I have the knack of loosing or recycling the various paper bits lying around, I decided to keep at least some of them in my diary, aka this blog.
initial requirements
- convenient syntax and semantics
- convenience matters. The syntax should be obvious. The meaning of the syntax should be easy to grasp.
- minimal core
- the core of the macro processor should be minimal. This will help managing the code quality. The minimal core should be enriched using macros.
- retargetable/multi-targets
- using one and the same 'surface syntax' to produce different target code. It should be possible to have a one to many code generation. Example application - one definition producing javascript, php and sql code. Alternative example: one definition - three code targets - debug, deployment + a set of autogenerated tests
- target and syntax agnostic
- no assumptions should be made (at least at top level) about the target or syntax. We should be able to accomodate any theoretically parsable syntax, within reason, of course. Subject to parsing strategy selection, etc...