Added upstream from http://ftp.icm.edu.pl/pub/loglan/
[loglan.git] / sources / pass1 / statist.f
1       SUBROUTINE  MSTAT
2 C----------------DRUKOWANIE STATYSTYK KOMPILATORA
3 C
4 C             BEZ OPISU W DOKUMENTACJI (CZESC ML2)
5 C             WERSJA Z DNIA:            19.01.82
6 C             DLUGOSC KODU:      751
7 C...........................................................................
8 C
9       IMPLICIT INTEGER (A-Z)
10       REAL USED, TOTAL
11 C
12       COMMON /BLANK/ IOP(4), ERRLINE, ERRCNT,
13      X          COM(272),
14      X        LMEM  , LPMEM , IRECN , ISFIN , LPMSYS, LPML  , LPMF  ,
15      X        XFIL(17),
16      X        IPMEM(5000)
17       COMMON /LYST/ PAGESZ, PAGENR, LINPG,
18      X              LN1, LGTH1, BUFLN1(30),
19      X              LN2, LGTH2, BUFLN2(30),
20      X              LUN
21        integer*4 bufln1, bufln2
22 C
23       COMMON /MSTA/ MLFREE, WNFREE, WNSTK, AL1BLK, AL1STK,
24      X                 AL2BLK, AL2SYM, AL2OTH, WNBLK, TLP, TLM,
25      X                 WNSUS, TOTMEM
26 C
27       IF (IOP(1) .EQ. 9)    RETURN
28 C     --POWROT GDYZ WYABORTOWANY ZOSTAL PARSER
29       CALL  PGINIT
30
31       call ffputspaces(lun,22)
32       call ffputcs(lun,'- STATISTICS')
33       call ffputnl(lun)
34       call ffputspaces(lun,24)
35       call ffputcs(lun,'STORAGE')
36       call ffputi (lun,TOTMEM,6)
37       call ffputcs(lun,'K WORDS')
38       call ffputnl(lun)
39       call ffputcs(lun,'PARSER')
40       call ffputnl(lun)
41
42       IUS = TLM-TLP
43       TOTAL = IUS
44       IUS = IUS-WNFREE
45       USED = IUS
46       TOTAL = USED/TOTAL
47       TOTAL = TOTAL*100.0
48       IUS = TOTAL
49
50       call ffputspaces(lun,30)
51       call ffputcs(lun,'DECL. PART')
52       call ffputi (lun,WNFREE,6)
53       call ffputcs(lun,'WORDS LEFT')
54       call ffputi (lun,IUS,6)
55       call ffputcs(lun,'% USED')
56       call ffputnl(lun)
57
58       USED = WNSUS
59       IUS = TLP-3738
60       TOTAL = IUS
61       TOTAL = USED/TOTAL
62       TOTAL = TOTAL*100.0
63       IUS = TOTAL
64
65       call ffputspaces(lun,30)
66       call ffputcs(lun,'STACK')
67       call ffputspaces(lun,5)
68       call ffputi (lun,WNSTK,6)
69       call ffputcs(lun,' WORDS USED')
70       call ffputi (lun,IUS,6)
71       call ffputcs(lun,'% USED')
72       call ffputnl(lun)
73
74       WNBLK=WNBLK-12
75
76       call ffputspaces(lun,37)
77       call ffputi (lun,WNBLK,6)
78       call ffputcs(lun,'+12 BLOCK(S) WRITTEN')
79       call ffputnl(lun)
80
81       call ffputspaces(lun,24)
82       call ffputcs(lun,'SEMANTIC ANALISIS')
83       call ffputnl(lun)
84
85       TOTAL = TLP
86       IUS = TLP-MLFREE
87       USED = IUS
88       TOTAL = USED/TOTAL
89       TOTAL = TOTAL*100.0
90       IUS = TOTAL
91
92       call ffputspaces(lun,30)
93       call ffputcs(lun,'DECL. PART')
94       call ffputi (lun,MLFREE,6)
95       call ffputcs(lun,' WORDS LEFT')
96       call ffputi (lun,IUS,6)
97       call ffputcs(lun,'% USED')
98       call ffputnl(lun)
99
100       IF ((IOP(1) .GE. 10) .AND. (IOP(1) .LE. 12))    RETURN
101
102       call ffputspaces(lun,30)
103       call ffputcs(lun,'STACK')
104       call ffputspaces(lun,22)
105       call ffputi (lun,AL1STK,6)
106       call ffputcs(lun,'% USED')
107       call ffputnl(lun)
108
109       AL1BLK = AL1BLK+1
110
111       call ffputspaces(lun,40)
112       call ffputi (lun,AL1BLK,6)
113       call ffputcs(lun,' BLOCK(S) WRITTEN')
114       call ffputnl(lun)
115
116       RETURN
117       END