ΜΕΤΑΦΡΑΣΗ ΕΝΤΟΛΩΝ (COMMAND INTERPRETATION)

 

Αν μία λέξη πληκτρολογείται σαν διαταγή, ενώ δεν υπάρχει ενσωματωμένη εντολή με αυτό το όνομα, ψάχνονται όλοι οι κατάλογοι στο sourcepath με τη σειρά για αρχείο. Αν αυτό βρεθεί, διαβάζεται σαν ένα αρχείο εντολών (command file), σαν να ήταν sourced. Όμως πριν αυτό διαβαστεί, οι μεταβλητές argc και argv θέτονται στον αριθμό των λέξεων που ακολουθούν το όνομα του αρχείου στην command line και μία λίστα αυτών των λέξεων, αντίστοιχα. Μετά το τέλος του αρχείου, αυτές οι μεταβλητές επανέρχονται στην αρχική τους κατάσταση. Σημειώστε ότι, αν ένα command file καλεί κάποιο άλλο, αυτό πρέπει να σώσει τις argc και argv, αφού αυτές θα αλλαχθούν. Ακόμη, τα command files μπορεί να μην ξαναεισαχθούν από τη στιγμή που δεν υπάρχουν τοπικές μεταβλητές. (Φυσικά οι διαδικασίες (procedures) μπορούν σαφώς να χειρίζονται μία στοίβα (stack) ). Έτσι κάποιος μπορεί να γράφει scripts ανάλογα με τα shell scripts για το nutmeg και το Spice3.

Σημειώστε ότι για να δουλέψει το script με το Spice3, αυτό πρέπει να αρχίζει με μία κενή γραμμή (ή οτιδήποτε άλλο, αφού αυτό θα πεταχθεί) και μετά μία γραμμή με .control σε αυτή. Αυτό είναι ένα άτυχο αποτέλεσμα της εντολής source που χρησιμοποιείται και για την εισαγωγή κυκλώματος (circuit input) και για την εκτέλεση του command file. Σημειώστε επίσης ότι αυτό επιτρέπει στον χρήστη απλώς να πληκτρολογεί το όνομα ενός circuit file σαν μία διαταγή και αυτό να τρέχει αυτόματα. Οι διαταγές εκτελούνται άμεσα, χωρίς να τρέχουν καθόλου αναλύσεις που μπορεί να έχουν ορισθεί μέσα στο κύκλωμα (για να εκτελεσθεί η ανάλυση πριν την εκτέλεση του script, περιλαμβάνουμε μία εντολή "run" μέσα στο script).

Υπάρχουν διάφορα script διαταγών εγκατεστημένα στο /usr/local/lib/spice/scripts (ή οποιοδήποτε είναι το path στον υπολογιστή σας). Και το default sourcepath περιλαμβάνει αυτό το directory, έτσι μπορείτε να χρησιμοποιείται αυτά τα command files (σχεδόν) σαν ενσωματωμένες εντολές.

 

Επιστροφή στο Interactive Interpreter