Contents | < Browse | Browse >

>> Go Back to GccGuide. <<

   This file documents GNU `m4', which is a simple macroprocessor.  It
has been originally written by Rene' Seindal, from Denmark.

* Menu:

* Intro                        Introduction to m4
* Manual                       How to use this manual
* Bugs                         Reporting bugs in m4

* Invoking m4                  How to run the program
* Syntax                       Lexical and syntactic conventions

* Macros                       How to invoke macros
* Definitions                  How to define new macros
* Conditionals                 Conditionals and loops

* Debugging                    How to debug macros and input
* Input Control                Input control

* File Inclusion               File inclusion
* Diversions                   Diverting and undiverting output

* Text handling                Macros for text handling
* Arithmetic                   Macros for doing arithmetic
* Unix commands                Macros for running Unix commands
* Miscellaneous                Miscellaneous built-in macros

* Compatibility                Compatibility with other versions of m4

* Concept Index 		Index for many concepts
* Macro Index 			Index for all m4 macros

 -- The Detailed Node Listing --

Lexical and syntactic conventions

* Names                        Macro names.
* Quoted strings               Quoting input to m4.
* Other tokens                 Other kinds of input tokens.
* Comments                     Comments in m4 input.

How to invoke macros

* Invocation                   Macro invocation
* Macro Arguments              Macro arguments.
* Quoting Arguments            On Quoting Arguments to macros.
* Macro expansion              Expanding macros.

How to define new macros

* Define                       Defining a new macro
* Arguments                    Arguments to macros
* Pseudo Arguments             Pseudo arguments to macros
* Undefine                     Deleting a macro
* Defn                         Renaming macros
* Pushdef                      Temporarily redefining macros

* Indir                        Indirect call of macros
* Builtin                      Indirect call of built-ins

Conditionals, loops and recursion

* Ifdef                        Testing if a macro is defined
* Ifelse                       If-else construct, or multibranch
* Loops                        Loops and recursion in m4

How to debug macros and input

* Dumpdef                      Displaying macro definitions
* Trace                        Tracing macro calls
* Debug Levels                 Controlling debugging output
* Debug Output                 Saving debugging output

Input control

* Dnl                          Deleting whitespace in input
* Changequote                  Changing the quote characters
* Changecom                    Changing the comment delimiters
* M4wrap                       Saving input until end of input

File inclusion

* Include                      Including named files
* Search Path                  Searching for include files

Diverting and undiverting output

* Divert                       Diverting output
* Undivert                     Undiverting output
* Divnum                       Diversion numbers
* Cleardiv                     Discarding diverted text

Macros for text handling

* Len                          Calculating length of strings
* Index                        Searching for substrings
* Regexp                       Searching for regular expressions
* Substr                       Extracting substrings
* Translit                     Translating characters
* Patsubst                     Substituting text by regular expression
* Format                       Formatting strings (printf-like)

Macros for doing arithmetic

* Incr                         Decrement and increment operators
* Eval                         Evaluating integer expressions

Running Unix commands

* Syscmd                       Executing simple commands
* Esyscmd                      Reading the output of commands
* Sysval                       Exit codes
* Maketemp                     Making names for temporary files

Miscellaneous built-in macros

* Errprint                     Printing error messages
* M4exit                       Exiting from m4

Compatibility with other versions of `m4'

* Extensions                   Extensions in GNU m4
* Incompatibilities            Facilities in System V m4 not in GNU m4
* Other Incompat               Other incompatibilities