2017-05-24 6 views
0

à 2,3 Lvl vous avez ceci sur le dictstack:PostScript statusdict recherche de nom pour

systemdict | globaldict | userdict 

au lvl 1 vous avez le statusdict avec les opérateurs dépendu produits. D'après ce que je comprends est statusdict un dictionnaire qui peut être accessible via la clé "statusdict" dans "systemdict". (Corrige moi si je me trompe).

Normalement, si vous faites une recherche de nom, il regarde d'abord dans userdict, ensuite dans globaldict et enfin dans systemdict. Disons que je suis au niveau 2 ou 3 de la langue où j'ai systemdict, globaldict et userdict. pour la compatibilité, j'ai aussi statusdict. Quelle est l'ordre de recherche de nom si vous avez un statusdict? L'interprète vérifie-t-il statusdict avant systemdict ou après systemdict? (ou un autre point?)

Répondre

1

Si je me souviens (et il a été longtemps depuis que j'ai regardé le niveau 1) la seule façon d'utiliser les opérateurs de statusdict était d'émettre un 'statusdict begin' spécifique pour pousser le dictionnaire sur le pile dict, ou similaire.

Par exemple, statusdict de Ghostscript implémente l'ancien niveau 1 setPage, si vous essayez:

612 792 0 setpage 

vous obtiendrez une erreur 'non défini'. Cependant ceci:

statusdict begin 612 792 0 setpage end 

fonctionnera. J'ai essayé quelque chose de similaire sur un autre interpréteur de niveau 3 avec le même résultat.

Donc, je dirais que vous n'avez pas besoin de chercher statusdict, tout code qui veut utiliser son contenu doit d'abord le mettre sur la pile du dictionnaire, utilisez get ou similaire pour accéder au dictionnaire.

+0

et pour un interprète de niveau 1. Est-ce que cela signifie que vous devez également utiliser statusdict commencer en premier? – juFo

+0

Si je me souviens bien, oui, mais comme je l'ai dit, ça fait terriblement longtemps que j'ai utilisé un interprète de niveau 1! – KenS

+0

Vous devez utiliser 'begin' pour utiliser la recherche automatique de nom, mais vous pouvez aussi faire' 612 792 statusdict/setpage get exec' ou similaire. Il y a des choses dans statusdict utilisées par des pilotes anciens ou de longue durée comme TeX. J'ai dû ajouter quelques choses pour les faire fonctionner. –