Neutrinos Peludos Magnéticos

    algo-lang

    1.2.2 • Public • Published

    Algorithmic natural language interpreter (language using french keywords)

    Usage

    Installation

    npm install -g algo-lang

    Command line

    Basic usage:

    algo-lang path/to/file.algo

    Pretty print your file in console:

    algo-lang --pretty-print path/to/file.algo

    Language

    Quick example

    algorithme test
      variables
        entier i, j
     
      algorithme procedure swap
        parametres globaux
          entier i, j
     
        variables
          entier tmp
     
      debut
        tmp ← i
        i ← j
        j ← tmp
      fin algorithme procedure swap
     
    debut
      i ← 2
      j ← 4
      swap(i, j)
      afficher(chaine(i) + chaine(j)) /* prints 42 */
    fin algorithme test

    Language documentation

    Documentation in french

    Note

    selon expressions differ slightly from the previous documentation. There is a cas keyword added in the mix to allow LALR parsing :

    selon expression faire
      cas val1, val2: expr1
                      expr2
            autrement expr3
                      expr4
    fin selon

    Good to know

    Operator aliases

    Some operators have aliases to ease development:

    • <- is equivalent to
    • ^ is equivalent to

    nul

    There is a special nul keyword to assign the null pointer to any pointer variable and check if a pointer is null.

    Available types

    Only those base types are available:

    • booleen (defined just like booleen = (faux, vrai))
    • caractere (can be cast with system routines to: chaine, entier)
    • chaine (can be cast with system routines to: entier, reel)
    • entier (can be cast with system routines to: caractere, chaine, reel)
    • reel (can be cast with system routines to: chaine, entier)

    System routines

    There are some system routines you can use:

    • afficher(chaine): prints the string on stdout (no endline is added automatically)
    • allouer(pointer): allocate memory for the pointed value
    • caractere(value): try to cast value in caractere
    • chaine(value): try to cast value in chaine
    • entier(value): try to cast entier in chaine
    • liberer(pointer): free memory pointed by the provided pointer, do nothing if pointer is nul, resets pointer to nul
    • longueur(chaine): returns the length of the string

    Operator []

    The operator also allows you to access characters (caractere) in a string (chaine) like in:

    afficher("toto"[1])
    

    Important note: In this language, index are from 1 to n and not from 0 to n − 1!

    Keywords

    Install

    npm i algo-lang

    DownloadsWeekly Downloads

    0

    Version

    1.2.2

    License

    MIT

    Unpacked Size

    825 kB

    Total Files

    61

    Last publish

    Collaborators

    • even