Mkd (Extracteur de documents)/Exercices/Autres formats de fichiers
Les styles de commentaires en informatique sont souvent semblables. Pour s'en convaincre on lira avec intérêt les Commentaires informatiques sur wikipedia.

Les fichiers ci-dessous, sont à votre disposition pour effectuer des essais. Vous pouvez les remplacer et/ou ajouter de nouveaux fichiers du même style, par exemple le php est du même style que le c++.
- Copiez le contenu des cadres ci-dessous dans votre éditeur de texte et faites une sauvegarde dans un fichier correspondant à la source:
- Surlignez le contenu du cadre ci-dessous.
- Appuyez simultanément sur les touches CTRL et C,
- Ensuite faites la même chose avec CTRL et V dans votre éditeur afin d'y coller ce texte.
- Enfin sauvegardez votre fichier avec le nom correspondant
- Remarques:
- Dans certains fichier les tabulations habituelles peuvent avoir été remplacées par 3 espaces pour faciliter la lecture.
- Les tabulations peuvent jouer de mauvais tours à l'édition.
- Prendre connaissance des bugs.
Style Assembler modifier
HGRAPHIC.ASM (MS-DOS) pour exercices. Encodage ASCII.
HGRAPHIC.ASM
PAGE 65,132
;----------------------------------
NAME HGRAPHIC ; DATE: 10/03/88
;----------------------------------
CGROUP GROUP CODE
DGROUP GROUP CONST,DATA
SGROUP GROUP STACK
;----------------------------------
ASSUME CS:CGROUP,DS:DGROUP,SS:SGROUP
; Programme RESIDENT QUI IMPRIME L'ECRAN GRAPHIQUE HERCULE.....
;----------------------------------
DATA SEGMENT PUBLIC 'DATA'
;----------------------------------
BUFFER DB 8 DUP (?) ; BUFFER DE 8 OCTETS POUR RÉORDONNER
ADR_PAGE DW ? ; ADRESSE ORIGINE DU BUFFER ÉCRAN
FLAG_ERR DB 0
;----------------------------------
;----------------------------------
DATA ENDS
;----------------------------------
CONST SEGMENT PUBLIC 'CONST'
;----------------------------------
; INTERRUPT CONST
XXDATA EQU 050H ; 50H ADR BIOS PRINT SCREEN STATUS FLAG voir 2-8
STATUS_BYTE EQU DS:BYTE PTR 0 ; DU BIOS
NB_PARAGR EQU 020H ; PLACE POUR RÉSIDENT À DÉTERMINER 32=0512 OCTETS
;----------------------------------
; DISPLAY BUFFER CONST
PAGE_0 EQU 0B000H ; 32KB B000:0000
PAGE_1 EQU 0B800H ; 32KB B800:0000
;----------------------------------
; INPUT OUTPUT PORTS CONST
MODE_CONT EQU 03B8H ; DISPLAY CONTROLE MODE ;BIT7=1 PAGE1 ;=0 PAGE0
PRNT_STAT EQU 03BDH ; PRINTER STATUS
CONFIG EQU 03BFH ; BIT 0 =TEXT MODE; =1 GRAPHICS MODE
;----------------------------------
; FORMAT D'ECRAN CONST
X_DOT EQU 0720 ; WWW a redefinir NB PIX/LINE
X_BYTE EQU 0720/8 ; X_DOT/8 HERCULE
Y_DOT EQU 0348 ; WWW NB PIX/COL
Y_BYTE EQU 0344/8 ; 43,5 * 8 = 348 lignes d’écran
;----------------------------------
; MODE D'IMPRESSION LPT CONST
PRT_MODE EQU 059H ; QUADRULE DENSITE=5AH
; DOUBLE=4CH &DOUBLE SPEED=59H
; SIMPLE=4BH
; CRT= PLOT=
LINE_SPA EQU 031H ; 7/72 line spacing
;----------------------------------
;---------------------------------
CONST ENDS
;----------------------------------
CODE SEGMENT PUBLIC 'CODE'
;----------------------------------
ADR_PS_BIOS DD HERC_PS_GRA
;----------------------------------
INI EQU $
;O INITIALISER LE DEROUTEMENT INT 5
XOR SI,SI
MOV ES,SI
MOV AX,CS: WORD PTR ADR_PS_BIOS ;IP ECHANGE DES ADRESSES
XCHG AX,ES:[SI]+5*4
MOV CS: WORD PTR ADR_PS_BIOS,AX
MOV AX,CS: WORD PTR ADR_PS_BIOS +2 ;CS ECHANGE DES ADRESSES
XCHG AX,ES:[SI]+5*4+2
MOV CS: WORD PTR ADR_PS_BIOS +2,AX
;----------------------------------
;O RETOUR AU DOS
MOV AX,3100H ; FONCTION 31 ERR=0 DE INT 21H
MOV DX,16+NB_PARAGR ; 16*16=256+ESPACE POUR CODES
INT 21H
;----------------------------------
;O*********************************
HERC_PS_GRA EQU $
;O SI L'ECRAN EST EN CONFIGURATION TEXTE
MOV DX,CONFIG ; DE LA CARTE HERCULE
IN AL,DX
TEST AL,01H ; TESTE LE BITS 0 = 1 SI GRAPHIQUE
JNZ SINON
;O ALORS ALLER A INT 5 DU BIOS
JMP ADR_PS_BIOS ; ON QUITTE DEFINITIVEMENT....
;----------------------------------
;O SINON (EXECUTER PRT SCR GRAPHIQUE POUR CARTE HERCULE (INT 5))
SINON EQU $
;O SI PRINT SCREEN EST EN COURS D'EXECUTION
MOV AX,XXDATA ; PRINT SCREEN STATUS FLAG
MOV DS,AX
CMP STATUS_BYTE,0 ; VOIR SI P_S PAS EN EXECUTION
JZ S
;O ALORS NE RIEN FAIRE
JMP FS ; FIN DU SI
;O SINON IMPRIMER L'ECRAN GRAPHIQUE
S EQU $
;**********************************
;O DEBUT_GR POSITIONNER FLAG STATUS BYTE Prn Scr
1
MOV STATUS_BYTE,1 ; POSITIONNER LE FLAG
;O AUTORISER LES INTERRUPTIONS
STI ; INTRERRUPTS ENABLED
;----------------------------------
;O INITIALISER DATA SEGMENT
MOV AX,DGROUP
MOV DS,AX ; INI DS
;O INI FLAG ERREUR
MOV FLAG_ERR,0
;O INI ADR PAGE GRAPHIQUE
MOV DX,MODE_CONT
IN AL,DX
;O * SI BIT 7 = 0 DE MODE CONT
AND AL,80H ; TEST BIT 7 DISP MOD CONT PORT
JZ PAGE1 ; WWW JNZ ici JZ pour essais
;O * ALORS INI ADR PAGE AVEC PAGE 0
MOV AX,PAGE_0
MOV ADR_PAGE,AX
JMP SHORT F_INI_PAG
;O * SINON INI AVEC PAGE 1
PAGE1 EQU $
MOV AX,PAGE_1
MOV ADR_PAGE,AX
F_INI_PAG EQU $
;O RESET IMPRIMANTE
XOR DX,DX ; LPT1
MOV AH,01H ; RESET LPT
INT 17H
;O SI ERREUR DE L'IMPRIMANTE AU RETOUR
TEST AH,25H ; =0 si tout OK
JZ S_S
;O ALORS 255 DANS FLAG ERREUR (ET FIN DU SI)
MOV FLAG_ERR,255 ; =ERREUR IMPRIMANTE
JMP FS_S ; SORTIR (SANS MODIF ECRAN)
S_S EQU $
;O SINON
;----------------------------------
;O ENVOYER LINE SPACING A L'IMPRIMANTE (ESC L_S)
;O * ENVOYER ESC
MOV AL,1BH ; ESC
XOR AH,AH ; CHAR DANS AL
XOR DX,DX ; LPT1
INT 17H
;O * SI ERREUR A L'IMPRIMANTE
TEST AH,25H
JZ S_S_S
;O * ALORS 255 DANS FLAG ERREUR
MOV FLAG_ERR,255
S_S_S EQU $
;O * SI FLAG ERR NZ
CMP FLAG_ERR,0
JZ S_S_S2
* ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP SHORT FS_S_S2
* SINON ENVOYER LINE SPAC
S_S_S2 EQU $
MOV AL,LINE_SPA
XOR AH,AH
XOR DX,DX
INT 17H
* SI ERR AU RETOUR
TEST AH,25H
JZ S_S_S2_S
* ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
S_S_S2_S EQU $
FS_S_S2
;----------------------------------
;O INI COMPTEUR DE LIGNE A Y_BYTE
MOV CL,Y_BYTE ; INI DL POUR 344/8 OCTETS
XOR SI,SI ; INI VECTEUR ORIGINE A 0
;O TANT QUE Nb lignes > 0 ET PAS FLAG ERREUR
T_S LABEL NEAR
DEC CL
JNZ $+5
JMP FT_S
CMP FLAG_ERR,0
JZ $+5
JMP FT_S
;O REPETER L'IMPRESSION D'UNE LIGNE DE 8 PIXTELS VERT / ECRAN
PUSH CX ;1 ; SAUVER COMPTEUR Y
PUSH SI ;2 ; SAUVER INDEX ORIGINE LIGNE
;----------------------------------
;O INITIALISER L'IMPRIMANTE POUR X_DOT / LIGNE
;O * ENVOYER ESC
MOV AL,1BH ; ESC
XOR AH,AH ; INDIQUE CHAR DANS AL
XOR DX,DX
INT 17H ; ENVOI A L'IMPRIMANTE
; * SI ERR AU RETOUR
TEST AH,25H ; STATUS RETOUR D'IMPRIMANTE
JZ S_T ; SANS MODIF ECRAN
* ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP FS_T
; * SINON ENVOI MODE IMPRESSION
S_T EQU $
MOV AL,PRT_MODE ; SIMP DOUB QUAD DENSITE...
XOR AH,AH
XOR DX,DX
INT 17H
;O * SI ERR AU RETOUR
TEST AH,25H
JZ S_S_T
;O * ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP SHORT FS_S_T
;O * SINON ENVOYER n1
S_S_T EQU $
MOV AL,X_DOT -512 ; www SI NB PIX < 768=256*3
XOR AH,AH
XOR DX,DX
INT 17H
;O * SI ERR AU RETOUR
TEST AH,25H
JZ S_S_S_T
ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
JMP SHORT FS_S_S_T
;O * SINON ENVOYER n2
S_S_S_T EQU $
MOV AL,2 ; www 512 DOTS = 256*2
XOR AH,AH
XOR DX,DX
INT 17H
;O * SI ERR AU RETOUR
TEST AH,25H
JZ FS_S_S_S_T
;O * ALORS 255 DANS FLAG ERR
MOV FLAG_ERR,255
FS_S_S_S_T EQU $
FS_S_S_T EQU $
FS_S_T EQU $
FS_T EQU $
;----------------------------------
;O INI LE NB DE FOIS QU'IL FAUT ENVOYER 8 OCTETS/LIGNE
MOV CL,BYTE PTR X_BYTE +1 ; POUR X_BYTE*8 OCTETS=720
XOR SI,SI ; ORIGINE=0
;----------------------------------
;O TANT QUE NbCol > 0 ET PAS FLAG ERREUR
T_T EQU $
DEC CL
JZ FT_T
CMP FLAG_ERR,0
JZ $+5
JMP FT_T_S
;O REPETER L'IMPRESSION DE 8x8 PIXTELS D'ECRAN
;----------------------------------
PUSH CX ;3 ; COMPTEUR X
PUSH SI ;4 ; INDEX COLONNE MODULO 8
; **FORMER 8 OCTETS DANS BUFFER**
; INITIALISER LES SEGMENTS SOURCE
MOV AX,ADR_PAGE ; ORG PAGE
MOV ES,AX
;O SHIFTER LES BITS DANS BUFFER
MOV CX,2
SHIFT EQU $
PUSH CX ; 5
PUSH SI ; 6
MOV CX,4 ; 4 BITS ROTATIONS
SHIFT1 EQU $
MOV AL,ES:[SI]
RCL AL,1 ; BIT DANS CARRY
RCL BUFFER,1 ; CARRY DANS BUFFER
RCL AL,1
RCL BUFFER +1,1
RCL AL,1
RCL BUFFER +2,1
RCL AL,1
RCL BUFFER +3,1
RCL AL,1
RCL BUFFER +4,1
RCL AL,1
RCL BUFFER +5,1
RCL AL,1
RCL BUFFER +6,1
RCL AL,1
RCL BUFFER +7,1
ADD SI,2000H
LOOP SHIFT1
POP SI ; 6
ADD SI,X_BYTE ; +90 OCTETS POUR HERCULE
POP CX ; 5
LOOP SHIFT ; CX-1
;O JUSQU'A 8 OCTETS
MOV CX,8 ; COMPTEUR = 8
XOR SI,SI ; INDEX = 0
;O ET TANT QUE PAS FLAG ERREUR
T_T_T_S EQU $
CMP FLAG_ERR,0
JNZ FT_T_T_S
;O REPETER L'ENVOI D'UN OCTET A L'IMPRIMANTE
MOV AL,BUFFER[SI]
XOR AH,AH
XOR DX,DX
INT 17H
;O SI ERREUR
TEST AH,25H ; DIRECT AU RETOUR
JZ CONTINUER
;O ALORS 255 DANS FLAG ERREUR
MOV FLAG_ERR,255
CONTINUER EQU $
LOOP T_T_T_S
FT_T_T_S EQU $
; FIN DE L'IMPRESSION DE 8x8 PIXTELS D'ECRAN
;----------------------------------
POP SI ;-4 ; INDEX COLONNE MODULO 8
INC SI ; 8*8 PIXTELS SUIVANTS / LIGNE
POP CX ;-3 ; DU T Q PAS FIN 720/8 COLONNES
JMP T_T_S
FT_T_S EQU $
;----------------------------------
;O ENVOYER LINE FEED
MOV AL,0DH
XOR AH,AH
XOR DX,DX
INT 17H
;O SI ERR AU RETOUR
TEST AH,25H
JZ NLINE
; ALORS ERR=255
MOV FLAG_ERR,255
NLINE EQU $
POP SI ;-2 ; RECUPERE INDEX DE 1ere COLONNE
ADD SI,90*8 ; 8 'TRAMES' SUIVANTES
POP CX ;-1 ; DU T Q PAS FIN 344/8 LIGNES
JMP T_S
FT_S LABEL NEAR
;----------------------------------
;O SI PAS D'ERREUR:
CMP FLAG_ERR,0
JNZ FS_S
;O IMPRIMER LA DEMI LIGNE DU BAS WWW A FAIRE
;
;WWWFS_S LABEL NEAR
;----------------------------------
;O FS_S TRANSFERER FLAG ERREUR DANS STATUS_BYTE (VOIR BIOS)
FS_S LABEL NEAR
MOV AL,FLAG_ERR ; 0=OK FINI PS 255=ERREUR
MOV BX,XXDATA ; S'IL N'Y A PAS EU D'ERREUR = 0
MOV DS,BX ; S'IL Y A EU ERREUR = 255
MOV STATUS_BYTE,AL
;**********************************
;O EXIT (FIN DE L'INTERRUPTION)
FS LABEL NEAR
IRET ; FIN
;----------------------------------
CODE ENDS
;----------------------------------
STACK SEGMENT STACK 'STACK'
DW 64 DUP(?)
STACK_BASE LABEL WORD
STACK ENDS
;----------------------------------
END INI
Style Basic modifier
Styles C modifier
- /* , C, C++, C#, PHP, Java, Javascript, CSS */
- // C++, C#, PHP, Java, Javascript
Fichiers de tests unitaires de la fonction cpp_() dans mkd
Style Fortran modifier
Fichier STATS.FOR Encodage ASCII, Fortran 77, pour mkd 2013 avec Code de sélection en 3ème colonne.
Voir aussi fichiers pour Fortran 90 et ultérieurs avec option -l
STATS.FOR
C O********************************************************************
C
C O STATS.FOR
C
C O Calculates simple statistics (minimum, maximum, mean, median,
C O variance, and standard deviation) of up to 50 values.
C
C O Reads one value at a time from unit 5. Echoes values and
C O writes results to unit 6.
C
C O All calculations are done in single precision.
C
C
C O*********************************************************************
DIMENSION DAT(50)
OPEN(5,FILE=' ')
N=0
DO 10 I=1,50
READ(5,99999,END=20) DAT(I)
N=I
10 CONTINUE
C O Too many values. Write error message and die.
WRITE(6,99998) N
STOP
C O Test to see if there's more than one value. We don't want to divide
C O by zero.
20 IF(N.LE.1) THEN
C O Too few values. Print message and die.
WRITE(6,99997)
ELSE
C O Echo input values to output.
WRITE(6,99996)
WRITE(6,99995) (DAT(I),I=1,N)
C O Calculate mean, standard deviation, and median.
CALL MEAN (DAT,N,DMEAN)
CALL STDEV (DAT,N,DMEAN,DSTDEV,DSTVAR)
CALL MEDIAN (DAT,N,DMEDN,DMIN,DMAX)
WRITE(6,99994) N,DMEAN,DMIN,DMAX,DMEDN,DSTVAR,DSTDEV
ENDIF
STOP
99999 FORMAT(E14.6)
99998 FORMAT('0 ********STAT: TOO MANY VALUES-- ',I5)
99997 FORMAT('0 ********STAT: TOO FEW VALUES (1 OR LESS) ')
99996 FORMAT(//,10X,
+' ******************SAMPLE DATA VALUES*****************'//)
99995 FORMAT(5(1X,1PE14.6))
99994 FORMAT(///,10X,
+' ******************SAMPLE STATISTICS******************',//,
+15X,' Sample size = ',I5,/,
+15X,' Mean = ',1PE14.6,/,
+15X,' Minimum = ',E14.6,/,
+15X,' Maximum = ',E14.6,/
+15X,' Median = ',E14.6,/
+15X,' Variance = ',E14.6,/
+15X,' St deviation= ',E14.6////)
END
C O Calculate the mean (XMEAN) of the N values in array X.
SUBROUTINE MEAN (X,N,XMEAN)
DIMENSION X(N)
SUM=0.0
DO 10 I=1,N
SUM=SUM+X(I)
10 CONTINUE
XMEAN=SUM/FLOAT(N)
RETURN
END
C O Calculate the standard deviation (XSTDEV) and variance (XVAR)
C O of the N values in X using the mean (XMEAN).
C O This divides by zero when N = 1.
SUBROUTINE STDEV (X,N,XMEAN,XSTDEV,XVAR)
DIMENSION X(N)
SUMSQ=0.0
DO 10 I=1,N
XDIFF=X(I)-XMEAN
SUMSQ=SUMSQ+XDIFF*XDIFF
10 CONTINUE
XVAR=SUMSQ/FLOAT(N-1)
XSTDEV=SQRT(XVAR)
RETURN
END
C O Calculate the median (XMEDN), minimum (XMIN), and maximum (XMAX) of
C O the N values in X.
C O MEDIAN sorts the array and then calculates the median value.
SUBROUTINE MEDIAN (X,N,XMEDN,XMIN,XMAX)
DIMENSION X(N)
CALL SORT (X,N)
IF(MOD(N,2).EQ.0) THEN
K=N/2
XMEDN=(X(K)+X(K+1))/2.0
ELSE
K=(N+1)/2
XMEDN=X(K)
ENDIF
XMIN=X(1)
XMAX=X(N)
END
C O Sort the N values in array X. SORT uses a bubble sort
C O that quits when no values were exchanged on the last pass.
C O Each pass goes from the first element to where the last
C O exchange occurred on the previous pass.
SUBROUTINE SORT (X,N)
DIMENSION X(N)
IBND=N
20 IXCH=0
DO 100 J=1,IBND-1
IF(X(J).GT.X(J+1))THEN
TEMP=X(J)
X(J)=X(J+1)
X(J+1)=TEMP
IXCH=J
ENDIF
100 CONTINUE
IF (IXCH.EQ.0) RETURN
IBND=IXCH
GO TO 20
END
Style Pascal modifier
Fichier TRINOMS.PAS Encodage
TRINOMS.PAS
.
(*D
**************************************************************************
* *
* PROJET: Tri de noms *
* *
* Titre : Trinoms Prefixe global: .... *
* *
* Programme de tri de trois noms par ordre alphabetique. *
* Mises a
Jour du Module: *
* 26/11/90 par JPL *
* *
**************************************************************************
* PROGRAMMATION : *
* *
* Dossier de conception : cours de Monsieur Jean BARRIER *
* Environnement : DOS 3.3, Turbo Pascal 5 *
* Sauvegarde : B:\PF\TRINOMS.PAS *
* *
**************************************************************************
* *
* VERSION : Date Auteur Commentaire *
* ---------------------------------------------------------------------- *
* 1.0 26/11/90 JPL Version d'essai et d'evaluation de turbo 5 *
**************************************************************************
* STRUCTURE DU MODULE : *
* *
* 1: Environnement : *
* 1.1 : Variables Publiques. *
* 1.2 : Variables Globales Privees. *
* *
* 2: Programme principal: test du module *
* *
**************************************************************************
*)
{D
**************************************************************************
* *
* 1.1 : Variables Publiques. *
* *
**************************************************************************
}
USES Crt; {D}
{H
**************************************************************************
* *
* 1.2 : Variables Globales Privees. *
* *
**************************************************************************
}
VAR {H}
Nom1 : STRING; {H}
Nom2 : STRING; {H}
Nom3 : STRING; {H}
(*O
**************************************************************************
* * 2: Programme principal: test du module *
* * Fonction : *
* * Lire 3 noms commencant par des lettres differentes frappees *
* * au clavier, puis les afficher
l'ecran, dans l'ordre *
* * alphabetique *
* * Entrez : 3 noms au clavier. *
* * Sortie : affichage
l'ecran, dans l'ordre alphabetique *
**************************************************************************
}
(*O Trinoms *)
BEGIN {S Trinoms }
(*O afficher "entrer un nom : " *)
Write( 'entrer un nom : ' );
(*O lire Nom1 *)
ReadLn( Nom1 );
(*O afficher "encore un : " *)
Write( 'encore un : ' );
(*O lire Nom2 *)
ReadLn( Nom2 );
(*O afficher "un dernier : " *)
Write( 'un dernier : ' );
(*O lire Nom3 *)
ReadLn( Nom3 );
(*O SI Nom1 < Nom2 et Nom1 < Nom3 *)
IF ( Nom1 < Nom2 ) AND ( Nom1 < Nom3 )
(*O ALORS : (Nom1 est le premier) *)
THEN
BEGIN {S}
(*O afficher Nom1 *)
Write( Nom1, ' ' );
(*P * * Variante 1 du SI ALORS SINON
utiliser avec moderation : *)
(*O SI Nom2 < Nom3 ALORS afficher Nom2 puis Nom3 SINON afficher Nom3 puis Nom2 *)
IF ( Nom2 < Nom3 ) THEN Writeln( Nom2, ' ', Nom3 ) ELSE Writeln( Nom3, ' ', Nom2 );
END {S}
(*O SINON : (Nom1 n'est pas le premier....) *)
ELSE
BEGIN {S}
(*O SI Nom2 < Nom3 *)
IF ( Nom2 < Nom3 )
(*O ALORS : *)
THEN
BEGIN {S then Nom2 < Nom3 }
(*O afficher Nom2 *)
Write( Nom2, ' ' );
(*P * * Variante 2 du SI ALORS SINON
a eviter : *)
(*O SI Nom1 < Nom3 *)
IF ( Nom1 < Nom3 )
(*O ALORS afficher Nom1 puis Nom3 *)
THEN Writeln( Nom1 , ' ', Nom3)
(*O SINON afficher Nom3 puis Nom1 *)
ELSE Writeln( Nom3, ' ', Nom1 )
(*O FinSI *)
; {www Notez la position du ; }
END {S then Nom2 < Nom3 }
(*O SINON : *)
ELSE
BEGIN {S else Nom2 < Nom3 }
(*O afficher Nom3 *)
Write( Nom3, ' ' );
(*P * * Variante 3 du SI ALORS SINON
utiliser de preference : *)
(*O SI Nom1 < Nom2 *)
IF ( Nom1 < Nom2 )
(*O ALORS afficher Nom1 puis Nom2 *)
THEN
BEGIN {S}
writeln( Nom1, ' ', Nom2 );
END {S}
(*O SINON afficher Nom2 puis Nom1 *)
ELSE
BEGIN {S}
Writeln( Nom2, ' ', Nom1 );
(*O FinSI *)
END; {S}
(*O FinSI Nom2 < Nom3 *)
END; {S else Nom2 < Nom3 }
(*O FinSI (Nom1 est le premier) *)
END; {S}
(*O Fin Trinoms *)
END. {S Trinoms }
Style Shell modifier
Fichier de test shell ESSAI.SH
ESSAI.SH
#T ceci est un essai pour visualiser l'utilisation de mkdoc avec option S \
echo le doublet 'antislatch NL' ne prolonge pas le commentaire #
# ceci est un commentaire
\# ceci n'est pas un commentaire. #
EN VOICI LA PREUVE: par 'mkd -sta ** essais.sh' #