In earlier topics we discussed the potential for a Preprocessor which could extend the syntax on PowerBasic and other Basics in a very flexible way, enabling for instance, programs containing Global variables to be combined without doing extensive name changes.
Many enhancements can be made merely by managing names. Many older programs are left stranded because it is too time consuming to refactor them manually, or they may be deployed in one project, and you want to use them in another, without altering the original source code.
You may want to do things which are unsupported by the present PB syntax or which are awkward to express. Macros can help but are limited to very simple situations, and will be idiosyncratic to your particular project.
The main disadvantage of sitting a MetaLanguage on top of a language, as Theo points out, is the problem of debugging. The source code to be debugged, is not the code that you wrote yourself. Different debugging methods in the metalanguage are required to be able to trace through a program efficiently.
So with all this in mind, and a trail of old code languishing in the archives, I thought this would be well worth trying. This is something that can be developed progressively, with very simple beginings and plenty of materials to test with.