static void orphan_else()
Diagnose an input orphan #else on cerr
We have an else after a true state.
static void Fdrop()
State transition.
Maintains state with respect to #if logic.
static transition_t *const transition_table[IF_STATE_COUNT][LT_SENTINEL]
The #if-state transition table.
static void Pendif()
State transition.
static void Selse()
State transition.
We have a false elif after a pass state.
static void Melse()
State transition.
static bool was_unconditional_line()
Is the current line outside any #if scope?
static void early_eof()
Diagnose unexpected end of input on cerr
static bool is_unconditional_line()
Is the current line outside any #if scope or in the scope of a satisfied #if?
static void Dfalse()
State transition.
static bool dead_line()
Is the current line rejected?
static void Delse()
State transition.
static void set_state(if_state is)
Set the #if-state at the current nesting depth.
static size_t if_start_lines[MAXDEPTH]
Array of start lines of nested #if-directives.
static size_t if_depth()
Get the current depth of #if-nesting.
All elifs after a true are false.
static void Melif()
State transition.
static void Fpass()
State transition.
The first non-false (el)if is true.
Count of if-control states.
static if_state state()
Get the current #if-state.
We have a true elif after a pass state.
We have an else after only false states.
static size_t if_start_line()
Get the starting line number of the current #if sequence.
static void Delif()
State transition.
static void Pelif()
State transition.
void( transition_t)
Type of #if-state transition functions.
static void orphan_endif()
Diagnose an input orphan #endif on cerr
static void Strue()
State transition.
static void Ffalse()
State transition.
static void top()
Reset the depth of #if-nesting to 0.
static void Mtrue()
State transition.
The first non-false (el)if is insoluble.
if_state
symbolic constants denoting the if-control states.
static void Ftrue()
State transition.
static if_state ifstate[MAXDEPTH]
Array of states of nested #if-directives.
static void Mpass()
State transition.
static void Dendif()
State transition.
static size_t depth
Current depth of #if-nesting.
static void Sfalse()
State transition.
line_type
Enumeration of types of input lines.
static void Pelse()
State transition.
static void orphan_elif()
Diagnose an input orphan #elif on cerr
We have a false if followed by false elif
static const unsigned MAXDEPTH
Maximum depth of hash-if nesting.
We have an else after a pass state.
static void transition(line_type linetype)
Transition the if-control state given an evaluated line type.
static void nest()
Increment the #if-nesting depth.