skript-parser icon indicating copy to clipboard operation
skript-parser copied to clipboard

Modularizing skript-parser

Open Mwexim opened this issue 4 years ago • 0 comments

Roadmap to modularize skript-parser

1. Lexical modules

  • [ ] Lexical structure manipulation
    • [ ] Allow addons to hook into this process and change it
    • [ ] Possible rework of FileElement and FileSection
    • [ ] Rework comment parsing
    • [ ] Refactor/restructure this process to be more optimized and user-friendly (StructureParser?)

2. Registration modules

  • [ ] Annotation registrations?
    • [ ] Remove/rework SkriptRegistration class completely (as it is pure convenience either way)
  • [ ] Enum registrations
  • [ ] Overriding elements easily

3. Parsing and SyntaxElement modules

  • [ ] Control flow improvements
    • [ ] Rework of Finishing, SelfRegistrable and Continuable
    • [ ] Rework of ArgumentSections and iterative sections
    • [ ] Exiting function (perhaps instead of SelfRegistrable?)
  • [ ] Native Async support
    • [ ] AsyncEffect and AsyncSection, perhaps AsyncExpression
    • [ ] Rework all async events and effects to be safe, reliable and optimizable
  • [ ] Operators
    • Defined by context and type parameters (nothing else)
    • [ ] Overriding system to override certain contexts with other type parameters
    • [ ] Somehow link ContextValue and Operator functionality (although this is probably not necessary)
  • [ ] Pre- and post-parsing triggers (although this might take it too far)
    • [ ] Make a new parsing chain with priority queue (for example, when parsing an expression, first parse as a list, then as a variable, then as registered expression, then as context value)
    • [ ] Allow addons to hook into this system
  • [ ] Rework tags
    • [ ] Rework tag registration, parsing and matching/initialization completely
    • [ ] More customizability, while adding some sort of pattern to it.
    • [ ] Make them completely independent of VariableString and require a specific call to apply them.

Mwexim avatar Jun 03 '21 20:06 Mwexim