Skip to content

Latest commit

 

History

History
29 lines (17 loc) · 1.31 KB

design-considerations.md

File metadata and controls

29 lines (17 loc) · 1.31 KB

Sempare Template Engine

Copyright (c) 2019-2024 Sempare Limited

Design considerations

no repeat/until

  • repeat/until is not included as a 'while' loop can accomplish the same.

no bytecode

The evaluation engine is a very simple. This may be considered in future.

custom statment start/end overrides

No validataion is done currently to ensure that <| and |> matchup. They key is that statement start and end tokens matchup, as the | indicator is used to to toggle the flag allowing for content to be output or not.

Similar to <% and %>, <| and |> can be changed to some other tokens. The lexical analyser is fairly simpilistic regarding the handling of this override scenario, so it is up to you to ensure that overriding does not conflict with any other symbols.

No Delphi (TComponent) Components

Some Delphi TComponent based descendents were catered for, but code is currently disabled. The main reason for this is that we didn't want the template engine to have to be bound to a visual framework like VCL. However, we may review this if requested.

Why is TMap a record

It is a simple wrapper around a TArray. The main motivation is to have a structure that is memory managed by Delphi to simplify the implementation.