Commande sno

Objectif

Fournit un interpréteur SNOBOL.

Syntaxe

sno [Fichier ... ]

Descriptif

La commande sno fournit un compilateur et un interpréteur SNOBOL, avec quelques différences par rapport au SNOBOL standard. Il lit les fichiers nommés et l'entrée standard et compile toutes les entrées via une instruction contenant le libellé end . Le reste est disponible pour la pseudo-variable syspit .

La commande sno diffère de la commande SNOBOL standard des manières suivantes:

  • Il n'y a pas de recherches non ancrées. Pour obtenir le même effet, utilisez des lignes similaires aux suivantes:
    Article Descriptif
    a ** b Génère une recherche non ancrée pour b.
    a *x* b = x c Génère une affectation non ancrée.
  • Il n'y a pas de référence de retour.

    x = "abc"

    Article Descriptif
    a *x* x Génère une recherche non ancrée pour abc.
  • La déclaration de fonction est effectuée lors de la compilation à l'aide du libellé (non unique) define . L'exécution d'un appel de fonction commence à l'instruction qui suit le libellé define . Les fonctions ne peuvent pas être définies lors de l'exécution et l'utilisation du nom define est préemptée. Il n'est pas prévu de variables automatiques autres que des paramètres. Par exemple :
    define f()
    define f(a, b, c)
  • Tous les libellés, à l'exception de define (même end), doivent avoir une instruction non vide.
  • Les libellés, les fonctions et les variables doivent tous avoir des noms distincts. En particulier, l'instruction non vide sur end ne peut pas simplement nommer un libellé.
  • Si start est un libellé dans le programme, l'exécution du programme commence là. Si ce n'est pas le cas, l'exécution commence par la première instruction exécutable. Le libellé define n'est pas une instruction exécutable.
  • Il n'existe aucune fonction intégrée.
  • Les parenthèses pour l'arithmétique ne sont pas nécessaires. La priorité normale s'applique. Pour cette raison, les opérateurs arithmétiques \ (barre oblique inversée) et * (astérisque) doivent être définis par des espaces.
  • Le côté droit des affectations doit être non vide.
  • ' (guillemet simple) ou " (guillemet double) peut être utilisé pour les guillemets littéraux.
  • La pseudo-variable sysppt n'est pas disponible.

Exemples

Pour exécuter le fichiertest.svia la commande sno et dirigez la sortie dans la sortie du fichier, entrez:

sno < test.s > output

Fichiers

Article Descriptif
/usr/bin/sno Contient la commande sno .