This repository was archived by the owner on Aug 31, 2021. It is now read-only.
[[ Bug 23149 ]] Replace mode syntax factory functions #7544
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.
This patch replaces the current mode syntax factory functions:
MCModeNewCommand
andMCModeNewFunction
with a more general mechanism basedaround instantiating a class as a global-variable, constructed using a syntax
factory function pointer.
There are three global classes which can be instantiated in this manner -
MCNewStatementFactory
,MCNewFunctionFactory
andMCNewOperatorFactory
-corresponding to the top-level factory functions
MCN_new_statement
,MCN_new_function
andMCN_new_operator
.The classes 'hide' a linked list of factory functions, which are invoked
in turn if the top-level functions do not recognise an id.
Closes https://quality.livecode.com/show_bug.cgi?id=23149