Lisaac/Main

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche

Question : Bon tout ça c'est bien joli, mais je veux du concret. Où est mon hello world ?[modifier | modifier le wikicode]

Section Header
  + name        := HELLO_WORLD;
  - category    := APPLICATION;
Section Inherit
  - parent_object:OBJECT := OBJECT;
Section Public
  - start :=
  (
    "Hello World\n".print;
  );

Question : Donc si j'ai bien compris pour avoir une fonction principale il suffit que je l'appelle start ?[modifier | modifier le wikicode]

Non pas du tout. Vous pouvez nommer votre slot principal comme bon vous semble. Pour qu'il soit reconnu comme slot principal il suffit qu'il soit le seul slot de la Section Public. Il faut aussi qu'il n'ait pas d'argument.

Essayez de compiler le code la commande est "lisaac hello_world.li" ou plus simplement "lisaac hello_world". L'exécutable sera "hello_world".

Question : J'ai un message d'erreur du compilateur : "Incorrect symbol...Section Header ". Y a une erreur dans ton code ?[modifier | modifier le wikicode]

C'est parce que vous utilisez une version du compilateur antérieure à la 0.2. Vous devez remplacer "Section" par "section" en minuscule et le nom des sections (Header, Inherit et Public) par "HEADER", "INHERIT" et "PUBLIC" en majuscule. Essayez de compiler plutôt le code suivant :

section HEADER
  + name        := HELLO_WORLD;
  - category    := APPLICATION;
section INHERIT
  - parent_object:OBJECT := OBJECT;
section PUBLIC
  - start :=
  (
    "Hello World\n".print;
  );

N'oubliez pas d'utiliser dans tous les exemples de ce document la casse correspondant aux versions actuelles.

Question : Si le slot main ne peut pas avoir d'argument, comment je retrouve les paramètres du programme ?[modifier | modifier le wikicode]

L'objet COMMAND_LINE de la bibliothèque standard permet d'y accéder. L'équivalent du argv[n] du C est COMMAND_LINE.item n

Question : Pourquoi ne pas utiliser l'opérateur <- à la place de := qui permet l'exécution automatique ?[modifier | modifier le wikicode]

TODO