PPC: Preprocessore C versione 1.0 gamma
Indice del manuale
-
Condizioni d'uso
-
Direttive supportate
-
Aggiornamento alla versione 0.9 beta
-
Aggiornamento alla versione 1.0 Gamma
-
Sorgenti
-
Autore
Condizioni d'uso
La versione di PPC che avete fra le mani è una versione beta, quindi
non ancora correttamente testata.
L'autore non si assume alcuna responsabilità per gli effetti
indesidrati che questo software può causare.
Non viene garantito neanche che tale software possa essere eseguito
su tutte le macchine, ma potrebbero esserci problemi di compatibilità
nascosti.
Riassunto: state usando questo programma a vostro rischio e pericolo,
io non ne sono responsabile!
Direttive supportate
Le direttive attualmente supportate sono:
#define
Sintassi: #define nome-macro valore-macro
Se valore-macro non è espresso, verrà untilizzato
il valore "1". [nome-macro] può avere una lunghezza massima di 20
caratteri, mentre [valore-macro] può arrivere ad 80.
ATTENZIONE: non viene effettuato nessun controllo sulla lunghezza
dei comandi inseriti. Se questi sorpassano il limite prefissato il programma
potrebbe non funzionare.
Per richiamare il valore di una macro all'interno del codice è
sufficiente scriverne il nome identificativo preceduto dal carattere $.
Per esempio:
#define SCAN rng = scan(alfa, 10)
if ($SCAN) cannon(alfa, rng);
Avrà come risultato:
if (rng = scan(alfa, 10)) cannon(alfa, rng);
ATTENZIONE: non viene effettuato alcun calcolo su eventuali espressioni
costanti che dopo la sostituzione della macro si possono venire a creare,
quindi:
#define LEFT 100
while (loc_x() > LEFT+50) go();
Avrà come risultato:
while (loc_x() > 100+50) go();
e non:
while (loc_x() > 150) go();
#undef
Sintassi: #undef nome-macro
Dove [nome-macro] come al solito ha una lunghezza massima di 20 caratteri
ed identifica una macro precedentemente definita con #define.
#ifdef/#ifndef
Sintassi: #ifdef/#ifndef nome-macro
Queste direttive non effettuano calcoli per verificare che il valore della
macro sia vero o falso. Semplicemente verificano se esiste una macro che
ha tale nome identificativo.
#else/#endif
Su queste non c'è nulla da dire.
#include
Sintassi: #include "nome-file"
oppure: #include <nome-file>
Le due sintassi sono esattamente equivalenti in quanto non esiste alcuna
path particolare in cui il programma andrà inizialmente a cercare
i file da includere.
[nome-file] può avere una dimensione massima di 80 caratteri
e verrà, ovviamente, anch'esso processato dal compilatore.
Aggiornamento alla versione 0.9 beta
Le novità principali sono:
#define da linea di comando
Sintassi: ppc nome-robot.pr -v=varname:varvalue
Corrisponde a #define varname varvalue all' interno del sorgente
Lancio automatico di crobots in caso di 2 o più robot
Sintassi: ppc nome-robot1.pr nome-robot2.r nome-robot3.r nome-robot4.pr
Il numero dei *.pr può variare da 1 a 4
Supporto per tutti i parametri di crobots
Sintassi: questo si spiega da solo
Compatibilità con E.C.A.T.
Versione MS-DOS
Modificato da Simone Ascheri Giugno 2000
Aggiornamento alla versione 1.0 Gamma
Definizioni
-
In teoria, non ci dovrebbe essere più limite per la lunghezza di
definizioni e loro valori. In teoria, perchè comunque il buffer
per le letture da file non è infinito, al momento è di 2kb.
-
È possibile specificare parametri per le macro, ma questi non vengono
ancora riconosciuti: in pratica quindi è impossibile usarli.
-
È ora possibile usare la \ per continuare il valore di una define
nella linea sotto, così:
#define FOO ( \
if (drive(270,100)) \
cannon(90,500); \
)
Commenti
-
È possibile usare i commenti in linea in stile C++: verranno automaticamente
convertiti in commenti C.
-
Ora la direttive commentate, non vengono più eseguite...
© Marco Giovannini Giugno 2000
Sorgenti
Direi che a questo punto i sorgenti sono liberi: potete cioè modificarli
a piacimento.
Due avvertimenti, comunque:
-
Il codice non è commentato, mi spiace ma nella foga non ne ho avuto
il tempo (lo so che è una pessima cosa, se lo vengono a sapere i
miei professori mi spennano vivo!). Se ne avete bisogno (o comunque vi
interessa sapere meglio come funziona), me lo dite e io mi metto a farlo.
-
Il programma non è finito. Non escludo che (se proprio non ho niente
altro da fare) non lo riprenda in mano in futuro. Quindi se fate modifiche
importanti (o che comunque vorreste in una nuova versione), fatelo sapere
in giro così al massimo mi metto a lavorare anche io sulla vostra
versione.
Autore
Copyright© Marco Giovannini, 1999
Per suggerimenti, notificazione bug ed altro scrivete a marco_giovannini@hotmail.com
oppure a mgiova@libero.it
Non scandalizzatevi per la bruttezza di questa pagina: è la mia
prima prova di HTML e direi che fa quello che deve fare!
5 dicembre 1999