-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathDEPRECOMPILE
85 lines (85 loc) · 1.58 KB
/
DEPRECOMPILE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
*
GIT.FILENAME = 'DEPRECOMPILE'
GIT.REPO = 'https://github.com/krowemoh/TCL-Utilities.git'
*
EQU TRUE TO 1
EQU FALSE TO 0
*
* COMPILER DIRECTIVES
*
$DEFINE DATABASE.QM
$DEFINE PLATFORM.LINUX
*
$IFDEF DATABASE.QM
$CATALOGUE LOCAL
$ENDIF
*
@USER1 = 'DEPRECOMPILE'
@USER2 = 'DEPRECOMPILE'
*
CALL GET.ARGUMENTS(ARGUMENTS)
*
ARGS.LEN = DCOUNT(ARGUMENTS,@AM)
*
IF ARGS.LEN = 1 THEN
PRINT 'DEPRECOMPILE - Preprocess a BASIC program'
PRINT
PRINT ' DEPRECOMPILE BP TEST.PREC'
PRINT
STOP
END
*
IF ARGS.LEN > 3 THEN
PRINT 'Invalid number of arguments.'
STOP
END
*
FILENAME = ARGUMENTS<2>
ITEM.ID = ARGUMENTS<3>
*
OPEN '',FILENAME TO FILE ELSE
PRINT 'Unable to open file: ' : FILENAME
STOP
END
*
READ ORIGINAL.RECORD FROM FILE,ITEM.ID ELSE
PRINT 'Failed to read: ' : FILENAME : ' ' : ITEM.ID
STOP
END
*
NEW.RECORD = ''
*
NUMBER.OF.LINES = DCOUNT(ORIGINAL.RECORD,@AM)
END.FOUND = FALSE
*
FOR I = 1 TO NUMBER.OF.LINES
RAW.LINE = ORIGINAL.RECORD<I>
LINE = TRIM(RAW.LINE)
*
BEGIN CASE
CASE LINE = '* $END' AND NOT(END.FOUND)
END.FOUND = TRUE
NEW.RECORD<-1> = ' $END'
*
CASE LINE[1,3] = '* $' AND NOT(END.FOUND)
NEW.RECORD<-1> = SPACE(3) : LINE[3,LEN(LINE)]
*
CASE TRUE
IF END.FOUND THEN
NEW.RECORD<-1> = RAW.LINE
END
END CASE
NEXT I
*
IF END.FOUND THEN
WRITE NEW.RECORD ON FILE,ITEM.ID
END
*
STOP
*
RETURN
*
* END OF PROGRAM
*
END
*