I was looking at the doc of the proparse and to the JPNode.
But i don't find any thing who can told me if a table is a temp-table or not.
How can we be sure with the proparse that the table used is a temp-table or not without looking all the code ?
This parses OK using OpenEdge 11.5 but seems to hang ProParse, likely due to the missing '.' in the else?:
------- begin --------
/* an if statement with a missing end of statement marker in the else */
if vSharedVariable = “Some value” then
run program1.p.
else
run program2.p
------- end --------
Regards,
-djm
Ho do we create a rule which will identify whether the program is using a DB table or not ?
I'm not quite certain why this particular variation of CAN-FIND doesn't parse, but I get:
org.prorefactor.refactor.RefactorException: can-find.
p:7:8: unexpected token: CAN-FIND
However a lot of other instances of can-find do seem to parse just fine.
Corresponding sample below & as an attachment.
================ can-find.p ================
/*------------------------------------------------------------------------
File : can-find.p
Purpose : demonstrate a parsing error using CAN-FIND
This one is a little esoteric but impacts a large number of programs here.
An include file has itself an include that looks like this:
{{&programname}{&*}}
to optionally include another file at this point in the include (I.e. as a kind of primitive template method).
This appears to work fine, but programname is optionally included, and in a case where programname is undefined AND one of the cascading arguments is a multi-line argument, the value of the multiline argument does not have its newlines escaped in the program listing file causing a parse error.
I'm using ProParse to parse a large number of OpenEdge programs, a number of which use 'down 1 stream' when generating reports. ProParse doesn't seem to care for this, I'm getting a org.prorefactor.refactor.RefactorException: down-one-stream.p:39:17: unexpected token: stream
Here's a sample .p created to demonstrate this using the sports2k database (also attached):
===================== snip ============================
/*------------------------------------------------------------------------
File : down-one-stream.p
I understand that Indirect Define Nodes can be parameter definitions, but what else might they be?
Hi,
I try to use the newest version of Prolint which uses ActiveX. And cannot get it working with MSCOMCTL.OCX.
I need to know if anybody got it working on OpenEdgee is in 11.5.
Hanna
Given the code:
mobBlockNode = cast( ipobNode, BlockNode ).
mobBlock = mobBlockNode:getBlock().
mlgIsMethod = mobBlock:isMethodBlock().
mlgIsProgram = mobBlock:isProgramBlock().
for a node which is a block node, I would expect the Program_root node to give IsProgramBlock, but instead it gives IsMethodBlock. Why?
Curious too why the CLASS node is not considered a BLOCK.
Given a call to a remote method call:
obNominal = new Nominal().
chTest = obNominal:SayHi( chTest ).
which tokenizes as:
ASSIGN 0:0 EQUAL = 66:66 Field_ref 0:0 ID chTest 66:66 Widget_ref 0:0 Field_ref 0:0 ID obNominal 66:66 OBJCOLON : 66:66 ID SayHi 66:66 Method_param_list 0:0 LEFTPAREN ( 66:66 INPUT 0:0
OK, trying another path, if I do, on nodes of type BlockNode:
define variable mobBlock as class Block no-undo.
define variable mobBlockNode as class BlockNode no-undo.
define variable mobTableBuffer as class TableBuffer extent 20 no-undo.
mobBlockNode = cast( ipobNode, BlockNode ).
mobBlock = mobBlockNode:getBlock().
mobTableBuffer = mobBlock:getBlockBuffers().
It compiles, but I get a run time error
Error: Uninitialized array used as source of assignment. (14906)
on the last line, whether I provide an number for extent or not.
PareseUnit:getMarcroGraph returns an object of type IncludeRef which seems like it would be a link to an Include file ... but shouldn't it them be an array?
I am trying to use this to get from a statement to the block for the statement. The doc says:
java.lang.Object getLink(java.lang.Integer key)
in the code I see things like
public Call getCall() { return (Call) getLink(CALL); }
but, if I try in ABL to say
mobBlockNode = cast(ipobNode:getLink(JPNode:BLOCK), BlockNode).
it tells me
Parameter 1 for METHOD getLink is not type compatible with its definition. (12905)
I have tried a bunch of things for JPNode:BLOCK including -214
So, what does it want?
If one attempts to use Organize Using in PDSOE 11.5, all of the existing Proparse using statements simply disappear from the top of the file. This is now recognized by PSC as bug PSC00335347.
I wonder if this has to do with some known issue with IKVM and reflection since the Proparse DLL shows no internals in the PDSOE Class Browser.