Library
Module
Module type
Parameter
Class
Class type
The allowed indentations: Helper module for indentation sensitive parsing.
val initial : t
Initially all indentations 0,1,... are allowed and no alignment is required.
check_position col ind
Return a violation, if pos
is not an allowed indentation position. Otherwise return None
.
token pos ind
Accept a token at column pos
.
Preconditions: is_position_allowed pos ind
.
align ind
Set the alignment flag.
The next token sets the indentation set to {pos}
where pos
is the column of the token and clears the aligment flag.
left_align ind
Set the alignment flag and the indentation set to {pos}
where pos
is the lower bound of the current set of indentation positions.
start_indent i ind
Start an indented grammar construct indented by at least i
relative to its parent.
If the aligmnent flag is set, indentation is ignored.
Precondition: 0 <= incr