view docs/details-frpseudocode.rst @ 160:b4028838e0c8

Implement lexer option "prohibit_raiseonerror_filter". Sphinx raises by default when an Error token is seen (by means of the "raiseonerror" filter that is applied by default to lexers in Sphinx). This option skips this and allows error locations to be seen and highlighted properly. While there convert most Generic.Error tokens to Error tokens because now they can be handled by a lexer with "prohibit_raiseonerror_filter=True".
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 08 May 2026 17:46:28 +0200
parents 4acf578ae93f
children
line wrap: on
line source

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

.. _fr-pseudocode:   

**************
 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 follwing 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