view docs/lexer-frpseudocode.rst @ 258:e03e8cfdcece

Make the TokenReplaceFilter more flexible by allowing a replacement map
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 17 May 2026 16:08:34 +0200
parents 8705fd60feea
children 2e78e255b54e
line wrap: on
line source

.. -*- coding: utf-8; indent-tabs-mode: nil; -*-

**************
 FrPseudocode
**************

This is the pseudocode lexer from the original `pygments-lexer-pseudocode`
package.

It has been changed somewhat:

- renamed from ``Pseudocode`` to ``FrPseudocode``
- changed aliases to ``fr-pseudocode``, ``fr-pseudo``, ``fr-algorithm``
  and ``fr-algo``
- changed file extension to ``.fr-algo`` and ``.fr-pseudocode``
- changed some exististing arrows and added some more
- numbers parsing is more flexible by following the rules of the `Pygments`_
  lexer for `Python`_
- also allow ``!=`` as inequality operator (in addition to ``<>``)

It mostly just recognizes some (french) keywords and highlights them.

Comments are supported (``//`` and ``/* ... */`` (single-line only)).
"Directives" in "special" comments are to be enclosed in curly braces
``{ ... }``.

It also implements some symbol replacements/conversions like
``<=`` to ``≤``, ``>=`` to ``≥`` or ``<>`` to ``≠``.


.. rubric:: Example:

The following example

.. code-block:: none

   /* foo bar */

   fonction fonc-1({passage par valeur}param1)
   début
     si param1 <= 0 alors
       b = 0
     sinon
       b = 1
       a = param1
       répéter
         a = a - 1
         b = b * 2
       tantque a <> 0
     fin si
     retourner b
   fin fonction

will be highlighted as

.. code-block:: fr-algorithm

   /* foo bar */

   fonction fonc-1({passage par valeur}param1)
   début
     si param1 <= 0 alors
       b = 0
     sinon
       b = 1
       a = param1
       répéter
         a = a - 1
         b = b * 2
       tantque a <> 0
     fin si
     retourner b
   fin fonction


Lexer Options
=============

There are no lexer options besides the `Pygments`_ standard lexer options.