Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The issue this PR fixes is #330
Background: How a macro is currently executed ?
Since, macro definitions are looked up from the execution context,
only those macros that are available there can be successfully lookedup when a variable evaluates.
The variable should also be able to look into the lexical context (i.e. the containing document)
and find macroNodes there as well.
Maintain lexicalCtx as well; and it should be attached to the file.
Variable resolution should lookup there as well.
Whenever a macro definition or import is executed, it should place the definitions in the lexical scope instead.
This solution at a glance
Following TypeScript code snippet shows the proposed mechanism for dealing with macros that can solves the issue mentioned above.