Visualizzazione post con etichetta yarpp.preprocessor.command. Mostra tutti i post
Visualizzazione post con etichetta yarpp.preprocessor.command. Mostra tutti i post

#error

#error TextMessage

Imposta il codice di ritorno della fase BuildCmd ad 8, mostra il testo del messaggio TextMessage a video e termina l'esecuzione. TextMessage inizia dal primo blank dopo la keyword #error e termina a fine riga.

Nota: sono mostrati a video solo i primi 69 caratteri di TextMessage.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#warning

#warning TextMessage

Imposta il codice di ritorno della fase BuildCmd a 4, mostra il testo del messaggio TextMessage a video e continua l'esecuzione. TextMessage inizia dal primo blank dopo la keyword #warning e termina a fine riga.

Nota: sono mostrati a video solo i primi 69 caratteri di TextMessage.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#info

#info TextMessage

Il testo del messaggio TextMessage e' mostrato a video nella fase BuildCmd.
TextMessage inizia dal primo blank dopo la keyword #info e termina a fine riga.

Nota: sono mostrati a video solo i primi 69 caratteri di TextMessage.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#message

#message TextMessage

Il testo del messaggio TextMessage e' mostrato a video nella fase BuildCmd.
TextMessage inizia dal primo blank dopo la keyword #message e termina a fine riga.

Nota: sono mostrati a video solo i primi 69 caratteri di TextMessage.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#include

Sintassi:

#include FileNameSpecification

Ci sono diverse modalità di inclusione del file a seconda di come è codificato FileNameSpecification:


#include "filename"

  • Il file, filename, è ricercato nella directory di lavoro cosi' come fornita dal sistema operativo.

#include <filename>

Il file, filename, è ricercato secondo il seguente ordine:

  • nella directory DirName, se è stata fornita tramite il parametro --include=DirName;
  • nella directory DirName, se è stata fornita tramite la variabile di ambiente RX_INCLUDE=DirName;
  • nella directory di lavoro cosi' come fornita dal sistema operativo.

#include filename

Il file, filename.cmh, è ricercato secondo le modalità viste al punto precedente

Nota: Questa modalità è deprecata, ma è mantenuta per motivi di compatibilita' con le versioni precedenti.

ToDo:

Un possibile miglioramento è quello di prevedere la possibilità indicare piu' directory da usare per la ricerca dei file. Tali directory potrebbero essere separate dal carattere ";".

La suddetta modalità dovrà essere prevista sia per la variabile di ambiente RX_INCLUDE= che per l' opzione --include=.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#ifndef/else/endif

Sintassi:

#ifndef VariableName
...
... Codice da includere se VariableName NON è definita
...
#else
...
... Codice da includere se VariableName è definita
...
#endif

Viene verificata l'esistenza della variabile VariableName; se la variabile NON è definita il codice compreso tra #ifdef e #else viene incluso e quello tra #else ed #endif e' ignorato.

ToDo:

Dopo l'implementazione della
#define VariableName=VariableValue,
sarà possibile implementare delle condizioni sul valore della variabile VariableName.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#ifdef/else/endif

Sintassi:

#ifdef VariableName
...
... Codice da includere se VariableName è definita
...
#else
...
... Codice da includere se VariableName NON è definita
...
#endif

Viene verificata l'esistenza della variabile VariableName; se la variabile esiste il codice compreso tra #ifdef e #else viene incluso e quello tra #else ed #endif e' ignorato.

ToDo:

Dopo l'implementazione della
#define
VariableName=VariableValue,
sarà possibile implementare delle condizioni sul valore della variabile VariableName.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#undef variablename

Sintassi:

#undef VariableName

La variabile VariableName se e' gia definita sara' eliminata. Se la variabile non era gia' definita il tentativo di eliminazione produrra un messaggio di warning, ma la fase di costruzione continua.

ToDo:

Al momento non e' previsto nessuna implementezione di nuove funzionalita'.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

#define VariableName

Sintassi:

#define VariableName

La variabile VariableName e' definita ed inizializzata al valore 1. Sara' possibile utilizzare questa variabile all'interno di altri comandi del preprocssore (p.es #ifdef, #ifndef etc.)

ToDo:

Un possibile miglioramento e' quello di prevedere oltre la possibilita' di definire la variabile anche quella di assegnargli un valore per es.:

#define VariableName=VariableValue

In questo caso la variabile VariableName sarebbe definita e gli verrebbe assegnato un valore pari a VariableValue. Questa nuova feature permetterebbe inoltre di sostituire nel codice le occorrenze di VariableName con il valore VariableValue.

Per ora e' solo un'idea che sara' sviluppata a partire dalla versione 4.1.9.

Altri comandi di pre processore.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

Comandi di pre-processore

Comandi

I comandi implementati seguono la sintassi simile a quella di un comune pre-processore-C.
Un comando inizia con il carattere #, e' seguito da una lista di parametri e da eventuali commenti cioe' e' del tipo:

#comando {parametro} {commento}

I comandi implementati, ad oggi, in YARPP sono di seguito elencati:
A questo punto andiamo a vedere quali sono i mattoncini definiti per "costruire" YARPP.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]