'===========================================================================
' Subject: .BI FILE GENERATOR                 Date: 04-10-00 (11:22)       
'  Author: Andreas van Cranenburgh            Code: QB, QBasic, PDS        
'  Origin: andreaswolf@mail.com             Packet: MISC.ABC
'===========================================================================
' Make .BI (Basic Include files)          By Andreas van Cranenburgh (C) 2000
'    Mail any suggestions and bug reports to andreaswolf@mail.com
FILES
PRINT " --       Make .BI by Andreas van Cranenburgh       --"
PRINT " --    E-Mail comments to andreaswolf@quios.com     --"
INPUT "Input file: ", infile$
INPUT "Output file: ", outfile$
OPEN infile$ FOR INPUT AS #1
OPEN outfile$ FOR OUTPUT AS #2
PRINT #2, "' -- Created with Andreas van Cranenburgh's Make .BI --"
PRINT #2, "' --    E-Mail comments to andreaswolf@quios.com     --"
PRINT "Adding SUBs...       ";
DO                              'Phase: SUBs
  LINE INPUT #1, line$
  IF LEFT$(LTRIM$(UCASE$(line$)), 3) = "SUB" THEN
    IF INSTR(UCASE$(line$), "STATIC") > 0 THEN
      line$ = LEFT$(line$, INSTR(UCASE$(line$), "STATIC") - 1)
    END IF
    IF INSTR(UCASE$(line$), "'") > 0 THEN
      line$ = LEFT$(line$, INSTR(UCASE$(line$), "'") - 1)
    END IF
    IF INSTR(line$, "(") = 0 THEN line$ = line$ + " ()"
  PRINT #2, "DECLARE " + RTRIM$(LTRIM$(line$))
  END IF
LOOP UNTIL EOF(1)
COLOR 2, 0: PRINT "Finished": COLOR 7, 0
PRINT "Adding FUNCTIONs...  ";
SEEK #1, 1
DO                              'Phase: FUNCTIONs
  LINE INPUT #1, line$
  IF LEFT$(LTRIM$(UCASE$(line$)), 8) = "FUNCTION" THEN
    IF INSTR(UCASE$(line$), "STATIC") > 0 THEN
      line$ = LEFT$(line$, INSTR(UCASE$(line$), "STATIC") - 1)
    END IF
    IF INSTR(UCASE$(line$), "'") > 0 THEN
      line$ = LEFT$(line$, INSTR(UCASE$(line$), "'") - 1)
    END IF
    IF INSTR(line$, "(") = 0 THEN line$ = line$ + " ()"
    PRINT #2, "DECLARE " + LTRIM$(RTRIM$(line$))
  END IF
LOOP UNTIL EOF(1)
COLOR 2, 0: PRINT "Finished": COLOR 7, 0
PRINT "Adding TYPEs...      ";
SEEK #1, 1
DO                              'Phase: TYPEs
  LINE INPUT #1, line$
  IF LEFT$(LTRIM$(UCASE$(line$)), 4) = "TYPE" THEN
    PRINT #2, line$
    DO
      LINE INPUT #1, line$
      PRINT #2, line$
    LOOP UNTIL LEFT$(LTRIM$(UCASE$(line$)), 8) = "END TYPE"
  END IF
LOOP UNTIL EOF(1)
COLOR 2, 0: PRINT "Finished": COLOR 7, 0
PRINT infile$ + " is ready"
CLOSE #2
CLOSE #1
