Quando i files mnu vengono compilati per generare il file arm eseguibile viene anche generato un file di documentazione darm. Questo file viene poi scandito dal sistema di documentazione per generare i documenti voce di menu.
Il compilatore del menu --- programma armoc.exe --- riconosce nei sorgenti diversi elementi che utilizza per compilare il file darm. Questi elementi sono illustrati nel codice che segue:
%%Dar: Documentation Defaults
Default
!EntryAuth JPA
!EntrySys aro32bc
!EntryDtIni 02-03-2000
!EntryDtMod 02-03-2000
....
%log, Test Logging Functions
A "C" Abort
!EntryRef LOG_01
!EntryAppType IDangServRequestAppType
!EntryAuth jpa
!EntrySys aro32bc
!EntryDtIni 02-03-2000
!EntryDtMod 02-04-2000
!EntryDescr
<P>Questa voce di menu esegue il test del programma abrt.c e ne mostra
gli effetti sul file di Log.</P>
!Do32
@echo off
n:\arlib32\test\a12_obc\exe\w32\abrt 2>c:\tmp\ab.txt
type %_AR_LogFile%.LOG
A 'C' Assert
!EntryRef LOG_02
!EntryAppType IDangServRequestAppType
!EntryDtMod 02-05-2000
!EntryDescr
<P>Questa voce di menu esegue il test del programma assert.c e ne mostra
gli effetti sul file di Log.</P>
!Do32
@echo off
n:\arlib32\test\a12_obc\exe\w32\assert 2>c:\tmp\ab.txt
type %_AR_LogFile%.LOG
...
|
Ipotizzando che il codice di cui sopra sia contenuto nel file abc.mnu il comando per compilare "armoc abc" porterà a creare due files: abc.arm e abc.darm. Il contenuto di quest'ultimo sarà come segue:
/**
************************************************
@Arm aro32bc :: arm.svim.log_01 : A "C" Abort
@Auth jpa
@DtIni 02-03-2000
@DtMod 02-04-2000
@AppType IDangServRequestAppType
@Source n:\ar\dvlc\bin\w32\svim.mnu
@Path ar : AR Test Menu
@Path log : Test Logging Functions
@Descr
<P>Questa voce di menu esegue il test del programma abrt.c e ne mostra
gli effetti sul file di Log.</P>
@/Descr
************************************************
**/
!Do32
@echo off
n:\arlib32\test\a12_obc\exe\w32\abrt 2>c:\tmp\ab.txt
type %_AR_LogFile%.LOG
/** @/Arm **/
/**
************************************************
@Arm aoro32bc :: arm.svim.log_02 : A "C" Assert
@Auth jpa
@DtIni 02-03-2000
@DtMod 02-05-2000
@AppType IDangServRequestAppType
@Path ar : AR Test Menu
@Path log : Test Logging Functions
@Descr
<P>Questa voce di menu esegue il test del programma assert.c e ne mostra
gli effetti sul file di Log.</P>
@/Descr
************************************************
**/
!Do32
@echo off
n:\arlib32\test\a12_obc\exe\w32\assert 2>c:\tmp\ab.txt
type %_AR_LogFile%.LOG
/** @/Arm **/
/**
************************************************
log_01 A "C" Abort
log_02 A "C" Assert
************************************************
**/
|
Il file abc.darm viene scandito e da questo vengono generati i documenti sgml. Si osservi che la direttiva !EntryDarSkip fa in modo che la voce non venga considerata nel file abc.darm. La scansione del sorgente si limita, in questo caso al tratamento dei tag Arm.
In realtà per quanto riguarda lo scansore il file DARM viene trattato esattamente come un sortgente 'C' e tutti i tags gestiti da Riepilogo dei Tag, sono gesti. In pratica questo fatto è irrilevante in quanto i files Darm sono generati dal compilatore del menu e crea solo i tag Arm.