Skip to content
This repository has been archived by the owner on Aug 31, 2021. It is now read-only.

[[ Bug 23149 ]] Replace mode syntax factory functions #7544

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

runrevmark
Copy link
Contributor

@runrevmark runrevmark commented Apr 4, 2021

This patch replaces the current mode syntax factory functions:
MCModeNewCommand and MCModeNewFunction with a more general mechanism based
around 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 and MCNewOperatorFactory -
corresponding to the top-level factory functions MCN_new_statement,
MCN_new_function and MCN_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

This patch replaces the current mode syntax factory functions:
`MCModeNewCommand` and `MCModeNewFunction` with a more general mechanism based
around 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` and `MCNewOperatorFactory` -
corresponding to the top-level factory functions `MCN_new_statement`,
`MCN_new_function` and `MCN_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.
@runrevmark runrevmark added this to the 9.7.0-dp-1 milestone Apr 4, 2021
@runrevmark runrevmark self-assigned this Apr 4, 2021
@runrevmark runrevmark force-pushed the bugfix-23149 branch 2 times, most recently from 67a9f89 to 4e8ac6a Compare April 4, 2021 09:57
@livecodeian
Copy link
Contributor

@livecode-vulcan review ok 4e8ac6a

@livecode-vulcan
Copy link
Contributor

💙 review by @livecodeian ok 4e8ac6a

livecode-vulcan added a commit that referenced this pull request Apr 5, 2021
[[ Bug 23149 ]] Replace mode syntax factory functions

This patch replaces the current mode syntax factory functions:
`MCModeNewCommand` and `MCModeNewFunction` with a more general mechanism based
around 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` and `MCNewOperatorFactory` -
corresponding to the top-level factory functions `MCN_new_statement`,
`MCN_new_function` and `MCN_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
@livecode-vulcan
Copy link
Contributor

😎 test success 4e8ac6a

  • try-community-armv6-android-sdk26_ndk16r15: success
  • try-community-armv7-android-ndk16r15: success
  • try-community-arm64-android-ndk16r15: success
  • try-community-x86-android-ndk16r15: success
  • try-community-x86_64-android-ndk16r15: success
  • try-community-js-emscripten-sdk1.35: success
  • try-community-universal-ios-iphoneos14.4: success
  • try-community-universal-ios-iphoneos14.1: success
  • try-community-universal-ios-iphonesimulator14.4: success
  • try-community-universal-ios-iphonesimulator14.1: success
  • try-community-universal-mac-macosx10.9: success
  • try-community-x86-linux-debian8: success
  • try-community-x86_64-linux-debian8: success
  • try-community-x86-win32: success
  • try-community-x86_64-win32: success

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
3 participants