Leonardus
VOCABULARY

Definition

  • A vocabulary is defined as a directory containing files
    with the extension *.leo.
  • These *.leo files are LeoScripts that, when "sourced in"
    (loaded and executed), create nothing but dictionaries.
  • The dictionaries created from *.leo files are pushed onto the
    dictionary stack.
  • Each dictionary gets an entry in the Leonardus dictionary.
  • Following subdirectories are used to store vocabularies:
    • vocabularies/
    • ../lib/leonardus/vocabularies/

Command Line Supprt

  • The lb and lc scripts provide a command line option -V to source the
    specified vocabulary.
  • This option can be repeated, allowing multiple vocabularies to be sourced in.
  • lb provides a lbcommand lsvoc to list all available vocabularies

Test Suites

  • Test suites can source vocabularies using the variable SUITE_VOCABULARY.
  • This variable is a comma-separated list of vocabulary names, allowing
    multiple vocabularies to be specified for testing purposes.

Initial Phase

  • In the initial phase, only one *.leo file per vocabulary is used, and
    this file is named after the vocabulary.
  • The system does not enforce these actions or properties.

Syntax for Documentation within Vocabularies

The vocabularies should contain a standardized documentation for each operator.

man pages are extracted from these text blocks by the command:

‍lb -C manpage

This documentation example enables man nip after the extraction:

%%!doc nip
%%!st X_1 X_2 -- X_2
%%!de Drop the first item below the top of stack.
%%!or Procedure from vocabulary Forth.

Supported sections are:

  • doc .. the operator name
  • st ... STACK
  • de ... DESCRIPTION
  • or ... ORIGIN
  • co ... CONVERSION
  • se ... SEE ALSO

Multiple %%!de lines are allowed. They will be concatenated.