%PARSER (analizador {: options})
%PARSER se utiliza como tercer operando del código de operación DATA-INTO para especificar el programa o procedimiento para realizar el análisis y las opciones soportadas por el analizador. %PARSER no devuelve un valor y no se puede especificar en ningún lugar que no sea para el código de operación DATA-INTO.
- Una expresión de puntero de procedimiento
- La función incorporada %PADDR
- Expresión de caracteres que identifica un programa. Debe estar en uno de los siguientes formatos
- MIPGM
- MYLIB/MYPGM
- *LIBL/MYPGM
- Expresión de caracteres que identifica un procedimiento en un programa de servicio. Debe estar en uno de los siguientes formatos
- MYSRVPGM (myProcedure)
- MYLIB/MYSRVPGM (myProcedure)
- *LIBL/MYSRVPGM (myProcedure)
El segundo operando especifica las opciones que se pasan directamente al analizador. El analizador determina la naturaleza de las opciones a las que da soporte.
Si el segundo operando es el nombre de una variable que se puede modificar, la dirección de la variable se pasa directamente al analizador.
Si el segundo operando es una expresión de tipo carácter, incluido el nombre de una variable de tipo carácter que no se puede modificar, se pasa al analizador un puntero a una serie terminada en nulo que contiene el contenido de la expresión.
El analizador recibe información que indica si el puntero del puntero es una serie terminada en nulo.
Ejemplos de %PARSER
DATA-INTO myfld %DATA(document) %PARSER('MYPARSER');
DCL-DS parserOptions LIKEDS(myParserOpts_T);
DATA-INTO myDs %DATA('myData.txt' : 'doc=file')
%PARSER('MYPARSERS(myProcedure)' : parserOptions);
DCL-S p POINTER(*PROC);
DCL-S sep CHAR(1) INZ(',');
DATA-INTO myds %DATA('myData.txt' : 'doc=file')
%PARSER(p : 'sep=' + sep);
DCL-PI *N;
constParm VARCHAR(20) CONST;
END-PI;
DATA-INTO myds %DATA('myData.txt' : 'doc=file')
%PARSER(%PADDR(myProc) : constParm);
Para obtener más ejemplos de %PARSER y más información sobre la operación DATA-INTO, consulte DATA-INTO (Analizar un documento en una variable).
Consulte el tema Rational® Open Access: RPG Edition para obtener información sobre cómo escribir un analizador.