The syntax for Sizer expressions and macros is shown below in as railroad diagrams. Macros follow the macro diagram; and expressions follow the expression diagram.
Used to to set options during the execution of a macro. Supported options are:
| compensate_frame_effects | Controls whether to adjust sizes to account for frame effects. See Compensate for Frame Effects for more information | 
| ignore_runtime_errors | When set to on runtime errors (i.e. index out of range in a window-qualifier) are silently ignored and the macro continues running. The default value is off, which means the macro stops execution when it encounters an error and reports it to the user. | 
Variable names always starts with $. Variables can be defined anywhere in the macro. Variables must be assigned a value before being used. Variables beginning with an unscore are reserved for use by Sizer and the behaviour is undefined if the user uses a variable that begins with an underscore.
The resize-block applies the resize actions to one or more windows that match the window-qualifier. If a * is specified after the window-qualifier then all windows that match will be resized, otherwise only the first window that matches is resized. Sizer will set the variable $_index to the 1 based index for the window being processed. This allows each window to be positioned differently. For example the follow macro places all instances of notepad in a grid pattern with 4 columns:
resize : proc[notepad]*
    t = 300 * (($_index - 1) \ 4)
    l = 400 * (($_index - 1) % 4)
    w = 400
    h = 300
          A window-qualifier is used to specify which window should be resized.
| active | The main window of the application that is currently active. Also referred to as the foreground window. | 
| last | The window used by the previous resize action. If last is used in the first resize macro then the active window is used. | 
| proc | Finds one or more windows whose process is owned by an executable with a name that contains text. e.g. to find windows owned by notepad.exe use proc["notepad.exe"] | 
| cap | Finds one or more windows whose title (or caption) contains text. e.g. to find windows with readme.txt in the title use cap["readme.txt"] | 
| desktop | Restrict windows to the current desktop if running with multiple desktops. | 
| number | Select which window to use (when multiple windows match the process or caption) using a 1-based index. | 
Adjusts a dimension of the window being resized (as per the window-qualifier in the resize-block).
| t | Top coordinate of the window in pixels. | 
| l | Left coordinate of the window in pixels. | 
| w | Width of the window in pixels. | 
| h | Height of the window in pixels. | 
| * | Multiplication. | 
| / | Floating point division. | 
| \ | Integer division - returns floor(a/b). | 
| % | Remainder of a / b. | 
Obtain a dimension of an existing window or monitor. The first character describes which dimension to take.
| t | Top of the window or monitor. | 
| l | Left the window or monitor. | 
| r | Right of the window or monitor. | 
| b | Bottom of the window or monitor. | 
| w | Width of the window or monitor. | 
| h | Height of the window or monitor. | 
Following this character is a description of the window or monitor to use. By default the active monitor is used.
| client | The client area (usually the part of the application inside the window frame and menu). | 
| win | The entire window frame including the border and title bar. | 
| mon | A monitor attached to the system. | 
| workarea | The work area is the area on a monitor not including the taskbar. | 
A monitor-qualifier is used to specify which monitor to extract dimensions from.
| active | The monitor on which the active window resides. | 
| primary | The monitor set to be the primary monitor. | 
| number | A one based index of the monitor to use. |