| 1 | REM crunched "b.msgaof" |
| 2 | ONERRORERROREXT0,REPORT$+" ["+STR$(ERL)+"]" |
| 3 | DIMq% 256:SYS16TOA_$:IFINSTR(A_$,"-quit")=0THENERROR1,"msgAOF must be started using *Run" |
| 4 | A_$=MID$(A_$,INSTR(A_$,"""")+1):A_$=MID$(A_$,INSTR(A_$," ")+1):A_$=LEFT$(A_$,INSTR(A_$,"""")-1):B_%=FALSE:C_$=FND_(A_$):E_$=FND_(A_$):F_$=FND_(A_$):IFC_$=""ORE_$=""THENERROR0,"Syntax: msgAOF <in> <out> [<header>]" |
| 5 | IFF_$<>""THEN |
| 6 | G_%=OPENOUT(F_$):BPUT#G_%,";":BPUT#G_%,"; Message symbols [generated by msgAOF]":BPUT#G_%,";":BPUT#G_%,"":BPUT#G_%,CHR$(9)+CHR$(9)+"["+CHR$(9)+":LNOT::DEF:msg__dfn":BPUT#G_%,CHR$(9)+CHR$(9)+"GBLL"+CHR$(9)+"msg__dfn":BPUT#G_%,"" |
| 7 | ELSE:G_%=0 |
| 8 | ENDIF:LIBRARY"libs:bas":PROCbas_init:H_%=OPENIN(C_$):ONERRORCLOSE#H_%:IFG_%THENCLOSE#G_%:IF0ELSE:ERROREXT0,REPORT$+" ["+STR$(ERL)+"]" |
| 9 | PROCbas_aofInit(64*1024):FORo=4TO6STEP2:[opt o:FNpass:FNarea("Resources$$Data","CODE,READONLY"):]:PTR#H_%=0:REPEAT:I_$=FNJ_(GET$#H_%):CASELEFT$(I_$,1)OF |
| 10 | WHEN";","#",":","" |
| 11 | OTHERWISE:K_%=INSTR(I_$,":"):IFK_%=0THEN |
| 12 | CLOSE#H_%:IFG_%THENCLOSE#G_%:IF0ELSE:ERROR0,"Bad message line" |
| 13 | ENDIF:L_$=FNJ_(LEFT$(I_$,K_%-1)):M_$=FNJ_(MID$(I_$,K_%+1)):CASELEFT$(M_$,1)OF |
| 14 | WHEN"{":[opt o:.help:.syntax:]:REPEAT:M_$=FNJ_(GET$#H_%):CASEM_$OF |
| 15 | WHEN"|":[opt o:.syntax:] |
| 16 | WHEN"}" |
| 17 | OTHERWISE:IFRIGHT$(M_$,1)="\"THEN |
| 18 | [opt o:dcbFNN_(LEFT$(M_$,LEN(M_$)-1)):] |
| 19 | ELSE:[opt o:dcbFNN_(M_$):dcb 13:] |
| 20 | ENDIF |
| 21 | ENDCASE:UNTILM_$="}":[opt o:dcb 0:FNO_("help","help_"+L_$):FNO_("syntax","synt_"+L_$):] |
| 22 | WHEN"[":M_$=MID$(M_$,2):K_%=INSTR(M_$,"]"):P_%=EVAL(LEFT$(M_$,K_%-1)):M_$=FNJ_(MID$(M_$,K_%+1)):M_$=FNN_(M_$):[opt o:FNalign:.label:dcd P_%:dcb M_$:dcb 0:FNO_("label","msg_"+L_$):] |
| 23 | OTHERWISE:M_$=FNN_(M_$):[opt o:.label:dcb M_$:dcb 0:FNO_("label","msg_"+L_$):] |
| 24 | ENDCASE |
| 25 | ENDCASE:UNTILEOF#H_%:NEXT:CLOSE#H_%:IFG_%THEN |
| 26 | BPUT#G_%,"":BPUT#G_%,CHR$(9)+CHR$(9)+"]":BPUT#G_%,"":BPUT#G_%,CHR$(9)+CHR$(9)+"END":CLOSE#G_%:SYS8,1,F_$,&FFFFFF3A,&BD896000,,3 |
| 27 | ENDIF:ONERRORERROREXT0,REPORT$+" ["+STR$(ERL)+"]" |
| 28 | PROCbas_aofSaveAs(E_$):END |
| 29 | DEFFNO_(Q_$,R_$):IFFNexportAs(Q_$,R_$) |
| 30 | IFG_%<>0ANDo=6THENBPUT#G_%,CHR$(9)+CHR$(9)+"IMPORT"+CHR$(9)+R_$ |
| 31 | =0 |
| 32 | DEFFND_(RETURNI_$):LOCALD_$:IFINSTR(I_$," ")THEN |
| 33 | D_$=LEFT$(I_$,INSTR(I_$," ")-1):I_$=MID$(I_$,INSTR(I_$," ")+1) |
| 34 | ELSE:D_$=I_$:I_$="" |
| 35 | ENDIF:=D_$ |
| 36 | DEFFNJ_(I_$):LOCALx$,f%,s%:WHILEI_$<>"":IFLEFT$(I_$,1)=" "THEN |
| 37 | s%+=1 |
| 38 | ELSE:IF(f%AND1)THEN |
| 39 | x$+=STRING$(s%," ")+LEFT$(I_$,1) |
| 40 | ELSE:x$+=LEFT$(I_$,1) |
| 41 | ENDIF:s%=0:f%=f%OR1 |
| 42 | ENDIF:I_$=MID$(I_$,2):ENDWHILE:=x$ |
| 43 | DEFFNS_(I_$):LOCALi%:$q%=I_$:FORi%=0TOLEN(I_$)-1:IFq%?i%>=97ANDq%?i%<=122THENq%?i%-=32 |
| 44 | NEXT:=$q% |
| 45 | DEFFNN_(s$):LOCALp%,t$:SYS39,s$,q%,256TO,,T_%:p%=q%:WHILEp%<q%+T_%:t$+=CHR$(?p%):p%+=1:ENDWHILE:=t$ |