EngineHub / CommandHelper

Rapid scripting and command aliases for Minecraft owners
https://methodscript.com
Other
119 stars 71 forks source link

Add framework for late binding keywords. #1316

Closed LadyCailin closed 2 years ago

LadyCailin commented 2 years ago

There is also a start for early binding ones as well, but that is unused for now. A LateBindingKeyword is one that is either left, right, or both associative, but works at a very high level, where it expects one or two parse tree nodes to surround it, and it take the whole node, whatever that is, which may be made up of other complex items. These binding works more or less the same as other keywords, but it runs after autoconcats are resolved, meaning that normal binding keywords will all have already run.

EarlyBindingKeywords are meant to operate at an extremely early stage, operating instead of on nodes, directly on the TokenStream, so that syntax such as commas and other extremly low level components can be subsumed into the keyword. This is intended to be used with class definitions and perhaps others, down the road.

The first keyword to use this framework is the return framework, working as one would expect so that return statement; works now.