algo-lang
v1.2.2
Published
Algorithmic language interpreter (in French only for now)
Readme
Algorithmic natural language interpreter (language using french keywords)
Usage
Installation
npm install -g algo-langCommand line
Basic usage:
algo-lang path/to/file.algoPretty print your file in console:
algo-lang --pretty-print path/to/file.algoLanguage
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 testLanguage documentation
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 selonGood 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 likebooleen = (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 valuecaractere(value): try to castvalueincaracterechaine(value): try to castvalueinchaineentier(value): try to castentierinchaineliberer(pointer): free memory pointed by the provided pointer, do nothing if pointer isnul, resetspointertonullongueur(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!
