You are here:
DBG/400
>
DBG400 Web
>
SourceCodeList
>
ClSource
>
ClSRCPARSER
(24 Jun 2005,
MartinRowe
)
(raw view)
E
dit
A
ttach
<verbatim> /* ************************************************************************** */ /* SRCPARSER: Parse source members from single member */ /* Copyright (C) 2000 Martin Rowe <martin@dbg400.net> */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* ************************************************************************** */ PGM DCL VAR(&LINECOUNT) TYPE(*DEC) LEN(6 0) DCL VAR(&FROMRCD) TYPE(*DEC) LEN(6 0) VALUE(1) DCL VAR(&TORCD) TYPE(*DEC) LEN(6 0) DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10) DCL VAR(&TYPE) TYPE(*CHAR) LEN(10) DCL VAR(&TEXT) TYPE(*CHAR) LEN(50) DCL VAR(&SRCLIB) TYPE(*CHAR) LEN(10) VALUE('DBG400') DCL VAR(&SRCFILE) TYPE(*CHAR) LEN(10) DCLF FILE(DBGSRCFILE) RCDFMT(DBGSRCFILE) /* ************************************************************************** */ /* MAINLINE: */ /* ************************************************************************** */ CHKOBJ OBJ(&SRCLIB/QCLSRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QCLSRC)) CHKOBJ OBJ(&SRCLIB/QCMDSRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QCMDSRC)) CHKOBJ OBJ(&SRCLIB/QDDSSRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QDDSSRC)) CHKOBJ OBJ(&SRCLIB/QRPGSRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QRPGSRC)) CHKOBJ OBJ(&SRCLIB/QTXTSRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QTXTSRC)) CHKOBJ OBJ(&SRCLIB/QPNLSRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QPNLSRC)) CHKOBJ OBJ(&SRCLIB/QQMQRYSRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QQMQRYSRC)) CHKOBJ OBJ(&SRCLIB/QRPGLESRC) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(CRTSRCPF + FILE(&SRCLIB/QRPGLESRC) RCDLEN(112)) OVRDBF FILE(DBGSRCFILE) TOFILE(&SRCLIB/DBGSRCFILE) + MBR(ALLSRCMBRS) /* Process all the records in the ALLDBGMBRS member */ TOPOFLOOP: RCVF RCDFMT(DBGSRCFILE) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDPGM)) CHGVAR VAR(&LINECOUNT) VALUE(&LINECOUNT + 1) /* Check if we've reached the end of the member yet */ IF COND(%SST(&SRCDTA 1 10) = '::PARSER::') + THEN(DO) /* Set the end of the previous member */ CHGVAR VAR(&TORCD) VALUE(&LINECOUNT - 1) /* Extract the member details */ CHGVAR VAR(&MEMBER) VALUE(%SST(&SRCDTA 11 10)) CHGVAR VAR(&TYPE) VALUE(%SST(&SRCDTA 21 10)) CHGVAR VAR(&SRCFILE) VALUE(%SST(&SRCDTA 31 10)) CHGVAR VAR(&TEXT) VALUE(%SST(&SRCDTA 41 50)) /* Create a matching member in the appropriate source file */ CHKOBJ OBJ(&SRCLIB/&SRCFILE) OBJTYPE(*FILE) + MBR(&MEMBER) MONMSG MSGID(CPF9815) EXEC(ADDPFM + FILE(&SRCLIB/&SRCFILE) MBR(&MEMBER) + TEXT(&TEXT)) CHGPFM FILE(&SRCLIB/&SRCFILE) MBR(&MEMBER) + SRCTYPE(&TYPE) TEXT(&TEXT) /* Add in the records from the subsection just processed */ CPYF FROMFILE(&SRCLIB/DBGSRCFILE) + TOFILE(&SRCLIB/&SRCFILE) + FROMMBR(ALLSRCMBRS) TOMBR(&MEMBER) + MBROPT(*REPLACE) FROMRCD(&FROMRCD) + TORCD(&TORCD) FMTOPT(*MAP) SRCOPT(*SEQNBR + *DATE) /* Set the start point for the next section */ CHGVAR VAR(&FROMRCD) VALUE(&LINECOUNT + 1) ENDDO GOTO CMDLBL(TOPOFLOOP) ENDPGM: RETURN ENDPGM </verbatim> -- Main.MartinRowe - 24 Jun 2005
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r1
|
B
acklinks
|
V
iew topic
|
Edit
w
iki text
|
M
ore topic actions
Topic revision: r1 - 24 Jun 2005 - 05:34:58 -
MartinRowe
DBG400
Log In
DBG400 Web
Index
Search
Changes
Notifications
Statistics
Site Map
Downloads
Webs
DBG400
Jamaro
Main
Sandbox
Sandtub
System
Send a link to this page
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding DBG/400?
Send feedback