class Modula2Lexer(RegexLexer): (source)
For Modula-2 source code. The Modula-2 lexer supports several dialects. By default, it operates in fallback mode, recognising the *combined* literals, punctuation symbols and operators of all supported dialects, and the *combined* reserved words and builtins of PIM Modula-2, ISO Modula-2 and Modula-2 R10, while not differentiating between library defined identifiers. To select a specific dialect, a dialect option may be passed or a dialect tag may be embedded into a source file. Dialect Options: `m2pim` Select PIM Modula-2 dialect. `m2iso` Select ISO Modula-2 dialect. `m2r10` Select Modula-2 R10 dialect. `objm2` Select Objective Modula-2 dialect. The PIM and ISO dialect options may be qualified with a language extension. Language Extensions: `+aglet` Select Aglet Modula-2 extensions, available with m2iso. `+gm2` Select GNU Modula-2 extensions, available with m2pim. `+p1` Select p1 Modula-2 extensions, available with m2iso. `+xds` Select XDS Modula-2 extensions, available with m2iso. Passing a Dialect Option via Unix Commandline Interface Dialect options may be passed to the lexer using the `dialect` key. Only one such option should be passed. If multiple dialect options are passed, the first valid option is used, any subsequent options are ignored. Examples: `$ pygmentize -O full,dialect=m2iso -f html -o /path/to/output /path/to/input` Use ISO dialect to render input to HTML output `$ pygmentize -O full,dialect=m2iso+p1 -f rtf -o /path/to/output /path/to/input` Use ISO dialect with p1 extensions to render input to RTF output Embedding a Dialect Option within a source file A dialect option may be embedded in a source file in form of a dialect tag, a specially formatted comment that specifies a dialect option. Dialect Tag EBNF:: dialectTag : OpeningCommentDelim Prefix dialectOption ClosingCommentDelim ; dialectOption : 'm2pim' | 'm2iso' | 'm2r10' | 'objm2' | 'm2iso+aglet' | 'm2pim+gm2' | 'm2iso+p1' | 'm2iso+xds' ; Prefix : '!' ; OpeningCommentDelim : '(*' ; ClosingCommentDelim : '*)' ; No whitespace is permitted between the tokens of a dialect tag. In the event that a source file contains multiple dialect tags, the first tag that contains a valid dialect option will be used and any subsequent dialect tags will be ignored. Ideally, a dialect tag should be placed at the beginning of a source file. An embedded dialect tag overrides a dialect option set via command line. Examples: ``(*!m2r10*) DEFINITION MODULE Foobar; ...`` Use Modula2 R10 dialect to render this source file. ``(*!m2pim+gm2*) DEFINITION MODULE Bazbam; ...`` Use PIM dialect with GNU extensions to render this source file. Algol Publication Mode: In Algol publication mode, source text is rendered for publication of algorithms in scientific papers and academic texts, following the format of the Revised Algol-60 Language Report. It is activated by passing one of two corresponding styles as an option: `algol` render reserved words lowercase underline boldface and builtins lowercase boldface italic `algol_nu` render reserved words lowercase boldface (no underlining) and builtins lowercase boldface italic The lexer automatically performs the required lowercase conversion when this mode is activated. Example: ``$ pygmentize -O full,style=algol -f latex -o /path/to/output /path/to/input`` Render input file in Algol publication mode to LaTeX output. Rendering Mode of First Class ADT Identifiers: The rendering of standard library first class ADT identifiers is controlled by option flag "treat_stdlib_adts_as_builtins". When this option is turned on, standard library ADT identifiers are rendered as builtins. When it is turned off, they are rendered as ordinary library identifiers. `treat_stdlib_adts_as_builtins` (default: On) The option is useful for dialects that support ADTs as first class objects and provide ADTs in the standard library that would otherwise be built-in. At present, only Modula-2 R10 supports library ADTs as first class objects and therefore, no ADT identifiers are defined for any other dialects. Example: ``$ pygmentize -O full,dialect=m2r10,treat_stdlib_adts_as_builtins=Off ...`` Render standard library ADTs as ordinary library types. .. versionadded:: 1.3 .. versionchanged:: 2.1 Added multi-dialect support.
Method | __init__ |
Undocumented |
Method | analyse |
It's Pascal-like, but does not use FUNCTION -- uses PROCEDURE instead. |
Method | get |
Undocumented |
Method | get |
Split ``text`` into (tokentype, text) pairs. |
Method | set |
Undocumented |
Class Variable | aglet |
Undocumented |
Class Variable | aglet |
Undocumented |
Class Variable | aglet |
Undocumented |
Class Variable | aliases |
Undocumented |
Class Variable | builtins |
Undocumented |
Class Variable | common |
Undocumented |
Class Variable | common |
Undocumented |
Class Variable | common |
Undocumented |
Class Variable | dialects |
Undocumented |
Class Variable | filenames |
Undocumented |
Class Variable | flags |
Undocumented |
Class Variable | gm2 |
Undocumented |
Class Variable | gm2 |
Undocumented |
Class Variable | gm2 |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | iso |
Undocumented |
Class Variable | lexemes |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | m2r10 |
Undocumented |
Class Variable | mimetypes |
Undocumented |
Class Variable | name |
Undocumented |
Class Variable | objm2 |
Undocumented |
Class Variable | objm2 |
Undocumented |
Class Variable | objm2 |
Undocumented |
Class Variable | objm2 |
Undocumented |
Class Variable | p1 |
Undocumented |
Class Variable | p1 |
Undocumented |
Class Variable | p1 |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pim |
Undocumented |
Class Variable | pseudo |
Undocumented |
Class Variable | reserved |
Undocumented |
Class Variable | stdlib |
Undocumented |
Class Variable | stdlib |
Undocumented |
Class Variable | stdlib |
Undocumented |
Class Variable | stdlib |
Undocumented |
Class Variable | stdlib |
Undocumented |
Class Variable | stdlib |
Undocumented |
Class Variable | tokens |
Undocumented |
Class Variable | url |
Undocumented |
Class Variable | xds |
Undocumented |
Class Variable | xds |
Undocumented |
Class Variable | xds |
Undocumented |
Instance Variable | adts |
Undocumented |
Instance Variable | algol |
Undocumented |
Instance Variable | builtins |
Undocumented |
Instance Variable | constants |
Undocumented |
Instance Variable | dialect |
Undocumented |
Instance Variable | dialect |
Undocumented |
Instance Variable | lexemes |
Undocumented |
Instance Variable | modules |
Undocumented |
Instance Variable | procedures |
Undocumented |
Instance Variable | pseudo |
Undocumented |
Instance Variable | reserved |
Undocumented |
Instance Variable | treat |
Undocumented |
Instance Variable | types |
Undocumented |
Instance Variable | variables |
Undocumented |
Inherited from Lexer
(via RegexLexer
):
Method | __repr__ |
Undocumented |
Method | add |
Add a new stream filter to this lexer. |
Method | get |
Return an iterable of (tokentype, value) pairs generated from `text`. If `unfiltered` is set to `True`, the filtering mechanism is bypassed even if filters are defined. |
Class Variable | alias |
Undocumented |
Class Variable | priority |
Undocumented |
Instance Variable | encoding |
Undocumented |
Instance Variable | ensurenl |
Undocumented |
Instance Variable | filters |
Undocumented |
Instance Variable | options |
Undocumented |
Instance Variable | stripall |
Undocumented |
Instance Variable | stripnl |
Undocumented |
Instance Variable | tabsize |
Undocumented |
pygments.lexer.Lexer.analyse_text
It's Pascal-like, but does not use FUNCTION -- uses PROCEDURE instead.