Instructions to the Parser/Compiler¶
#breakpoint¶
Syntax:
#breakpoint
{#breakpoint} is a debugging tool that tells the parser to stop parsing at a specific point. All source code from that point on will be ignored.
The difference between {#breakpoint} and {#stop} is that {#stop} occurs in normal templates (e.g., inside an {#if}) but {#breakpoint} is used only when debugging Cheetah. Another difference is that {#breakpoint} operates at compile time, while {#stop} is executed at run time while filling the template.
#compiler-settings¶
Syntax:
#compiler-settings
key = value    (no quotes)
#end compiler-settings
#compiler-settings reset
The {#compiler-settings} directive overrides Cheetah’s standard settings, changing how it parses source code and generates Python code. This makes it possible to change the behaviour of Cheetah’s parser/compiler for a certain template, or within a portion of the template.
The {reset} argument reverts to the default settings. With {reset}, there’s no end tag.
Here are some examples of what you can do:
$myVar
#compiler-settings
cheetahVarStartToken = @
#end compiler-settings
@myVar
#compiler-settings reset
$myVar
## normal comment
#compiler-settings
commentStartToken = //
#end compiler-settings
// new style of comment
#compiler-settings reset
## back to normal comments
#slurp
#compiler-settings
directiveStartToken = %
#end compiler-settings
%slurp
%compiler-settings reset
#slurp
Here’s a partial list of the settings you can change:
- syntax settings - cheetahVarStartToken 
- commentStartToken 
- multilineCommentStartToken 
- multilineCommentEndToken 
- directiveStartToken 
- directiveEndToken 
 
- code generation settings - commentOffset 
- outputRowColComments 
- defDocStrMsg 
- useNameMapper 
- useAutocalling 
- reprShortStrConstants 
- reprNewlineThreshold 
 
The meaning of these settings and their default values will be documented in the future.