Files
Questi sorgenti rappresentano un programma "command processor".
I suffissi previsti sono: ".bat", ".cmd", ".job".
Testata
Il codice che segue mostra la testata standard.
goto bm_settings
:BM_JOB
Title = Echo Environment and Files
Name = jenv
Type = BPrint
SystemName = A32_BM
System = Batch Machine Test Runs
Site = ARLIB32
:BM_DOC
**************************************************************
Title: Echo Environment and Files
**************************************************************
Author: JPA, AR Enterprise SpA
Date-Composed: 10/06/1999
Date-Changed: 10/06/1999
System: A32_BM
Keys:
**************************************************************
Description:
@job
<P>Il job esegue una serie di operazioni su files di testo per
provare la batch machine</P>
@/job
<P>Sequenza delle operazioni:</P>
<OL>
<LI>echo in(%_BM_EXC%, %_BM_ARGS%, %_BM_FT%, %_BM_FA%,
%_AR_LogFile%, %_BM_OS%, %BM_32_Ar_LocDir%
%debugf%, %BM_32_debugf%).
</LI>
<LI>#src(merge.c) in(%_FT1%, %_FT2%) out(%_BM_FT%).
</LI>
<LI>type in(%_FT1%).
</LI>
<LI>type in(%_FT2%).
</LI>
<LI>type in(%_BM_FT%).
</LI>
<LI>del in(%_FT1%, %_FT2%, %_BM_FT%).
</LI>
</OL>
**************************************************************
Revisions:
**************************************************************
:BM_SCHEDULE
....
:BM_RUN
|
Le regole di parsing di questa testata sono leggermente diverse da quelle previste per gli altri sorgenti:
- Il sorgente deve iniziare con una label ":BM_JOB" entro 10 righe dall'inizio del file.
- Non vengono gestiti i comandi #include.
- Dalla Label "BM_JOB"
- Vengono estratti i seguenti campi:
- Name, se presente.
- Title
- Type, se presente
- Non vengono estratti:
- SystemName1.
- System.
- Site.
- La testata è il contenuto tra la label ":BM_DOC" e la label sucessiva. Una label sucessiva è riconosciuta da una riga che inizia con ':' in colonna 1.
- Al contenuto della testata viene aggiunta una riga sintetica "Title: xxx" qualora non fosse presente un title nella testata.
- La testata così composta viene gestita nel solito modo.
Dalla testata vengono estratti e gestiti i seguenti campi:
Tag di Testata dei Job
Tag |
Regola |
Title |
Titolo o descrizione breve del programma. Dalla sezione BM_JOB. |
Author: |
Autore del programma. Deve essere un e-mail. Il sistema cerca di ricostruire l'e-mail grazie ai files di supporto. |
Written: |
Qutore del sorgente. |
Date-Composed: |
Data di creazione del sorgente. |
Date-Changed: |
Data di ultima modifica. Se assente il sistema cerca di ricavarla dalle revisioni. |
System: |
Il sistema o sotto-sistema cui appartiene il sorgente. |
Keys: |
Parole chiave relative alle caratteristiche Tecniche del programma. Sono parole separate da virgola. |
Description: |
Un testo in formato %body.full che descrive il contenuto del sorgente. |
Revisions: |
Blocco descrittivo delle modifiche apportate. Il blocco è composto da un insieme di singoli blocchi Revision. Il tutto è chiuso da un "*" in colonna 1. |
Revision |
Inizio singola revisione. La riga ha il seguenti formati: - "Revision nnn.nnn aaaa-mm-gg hh:mm:ss sigla-autore".
- "Revision gg-mm-aaaa sigla-autore"
Il primo formato è compatibile con i programmi automatici di gestione delle revisioni. Il secondo formato può essere utilizzato manualmente. Una o più riche sucessive in formato %body.mini. Quete riche vengono chiuse da: - Una nuova riga di inizio revisione.
- Un '*' in colonna 1.
|
La label @job nella descrizione comporta un trattamento molto particolare. Se presente a fronte del sorgente si crea un documento JOB: Processi Batch. Le informazioni necessarie vengono prelevate interamente dal sorgente, v. JOB -- Lavoro batch. La descrizione di questo documento comprende il testo racchiuso ta il tag @job e il tag @/job. Nel documento sorgente viene invece copiato il testo completo.
1 Si osservi che esistono due sistemi. Il primo --- chiamato SystemName ---nella sezione BM_JOB che viene usato nei file di log. Il secondo nella sezione BM_DOC che viene usato nella documentazione. Vi sono motivi storici per questa scelta. Il primo motivo che SystemName non appare sempre. Può essere in un file di include o può essere dedotto dal log corrente. In questo caso tipicamente è il nome del menu di lancio. Usato in questo modo ha una grana troppo grossa per essere utilizzabile nella documentazione. Resta comunque una incoerenza che può generare confusione.