I have converted a language definition used by another tool to the format used by Syntax Editor and everything works except for one case.
In the other language I was able to define 'scopes' defined by start/end token pairs that could be referenced by other token sets (Pattern groups in SyntaxEditor)
When defining a Pattern Group I would specify which 'scopes' that group was valid within.
(Kind of the reverse of your States/ChildStates)
In most cases all patern groups are valid within any scope, however the statement terminator (";") is not to be treated as a statement terminator if it occurs anywhere within a pair of parens, or anywhere between the words 'Begin' and 'End'.
I handled the additional cases of 'within comments' and 'within string delimiters' by defining those as child states.
I can't really define parens and Begin/End as child states however because every other pattern group would also be valid within those child states. (SQL allows vitrually anything to be nested within anything else)
Is there any way to recognise this situation such that the ";" is not treated as a statement terminator in these 2 situations.
(Note that this is a Dynamic language. I do have code behind it to handle outlining if that helps - but I think it has already classified the token by the time that code fires.)