Loading...
Searching...
No Matches
macro.f90

Go to the source code of this file.

Data Types

interface  macro
 Derived type representing a single preprocessor macro Extends string with macro-specific fields: replacement value, parameters, variadic flag, and cyclic self-reference detection. More...
interface  add
 Add one or more macros to a dynamic table. More...
interface  clear
 Remove all macros from a table. More...
interface  get
 Retrieve a macro by index. More...
interface  insert
 Insert more macro to a dynamic table. More...
interface  remove
 Remove a macro at given index. More...
interface  size_of
 Return current number of stored macros. More...
interface  read_unit
 Abstract interface for the main preprocessing routine (used for recursion) Allows handle_include to recursively call the top-level preprocess_unit routine without creating circular module dependencies. More...
interface  preprocess_line

Functions/Subroutines

character(:) function, allocatable, public expand_all (ctx, macros, stitch, has_extra, implicit_conti, dollar_insert)
 Fully expand a line including predefined macros (FILE, LINE, etc.) First performs normal macro expansion via expand_macros(), then substitutes standard predefined tokens with current file/line/date information.
character(:) function, allocatable, public expand_macros (line, macros, stitch, implicit_conti, dollar_insert, ctx)
 Core recursive macro expander (handles function-like, variadic, #, ##).
logical function, public is_defined (name, macros, idx)
 Check if a macro with given name exists in table.