### I.2 Parser

The parser has a number of variables that affect its internal operation. These variables are generally documented in the manual alongside the code that they affect. For example, `allow_noninteger_range_as_index` is discussed in the section on index expressions.

In addition, there are three non-specific parser customization functions. `add_input_event_hook` can be used to schedule a user function for periodic evaluation. `remove_input_event_hook` will stop a user function from being evaluated periodically.

— Built-in Function: add_input_event_hook (fcn)
— Built-in Function: add_input_event_hook (fcn, data)

> Add the named function fcn to the list of functions to call periodically when Octave is waiting for input. The function should have the form

>               fcn (data)

> If data is omitted, Octave calls the function without any arguments.

> See also: remove_input_event_hook.

— Built-in Function: remove_input_event_hook (fcn)

> Remove the named function fcn from the list of functions to call periodically when Octave is waiting for input.

> See also: add_input_event_hook.

Finally, when the parser cannot identify an input token it calls a particular function to handle this. By default, this is the function "unimplemented" which makes suggestions about possible Octave substitutes for matlab functions.

— Built-in Function: val = missing_function_hook ()
— Built-in Function: old_val = missing_function_hook (new_val)
— Built-in Function: missing_function_hook (new_val, "local")

> Query or set the internal variable that specifies the function to call when an unknown identifier is requested.

> When called from inside a function with the "local" option, the variable is changed locally for the function and any subroutines it calls. The original variable value is restored when exiting the function.