Skip to content

Bad DEFINED function in &IF preprocessor condition #55

@DanielBaciu

Description

@DanielBaciu

Hi,

We have the following structure in many include files, to make sure that definition of temp-table is included only once.

&if defined(i_tt{&prefix}companydata{&suffix}) = 0 &then
&global-define i_tt{&prefix}companydata{&suffix} yes
define temp-table tt{&prefix}CompanyData{&suffix} ...
&endif

When parsing the .p file we get this error:

Bad DEFINED function in &IF preprocessor condition

I'm using proparse.dll version 4.1.0.1219.
Please fix it if possible.

The complete error stack is:

    java.lang.RuntimeException: java.lang.IllegalArgumentException: C:\Projects\reverse-engineering-oe\src\ttCompanyData.i:14 Bad DEFINED function in &IF preprocessor condition
    	at com.joanju.proparse.Postlexer.nextToken(Postlexer.java:81)
    	at com.joanju.proparse.Postlexer.<bridge>nextToken(Postlexer.java:1)
    	at com.joanju.proparse.TokenList.build(TokenList.java:37)
    	at com.joanju.proparse.DoParse.doParse(DoParse.java:146)
    	at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:270)
    	at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:226)
    	at org.prorefactor.treeparser.ParseUnit.treeParser01(ParseUnit.java:348)
    	at cli.Progress.ClrBridge.ClrApi.InvokeMethod(Unknown Source)
    Caused by: java.lang.IllegalArgumentException: C:\Projects\reverse-engineering-oe\src\ttCompanyData.i:14 Bad DEFINED function in &IF preprocessor condition
    	at com.joanju.proparse.Postlexer.throwMessage(Postlexer.java:322)
    	at com.joanju.proparse.Postlexer.defined(Postlexer.java:98)
    	at com.joanju.proparse.Postlexer.preproIfCond(Postlexer.java:278)
    	at com.joanju.proparse.Postlexer.preproIf(Postlexer.java:172)
    	at com.joanju.proparse.Postlexer.nextToken(Postlexer.java:53)
    	at com.joanju.proparse.Postlexer.<bridge>nextToken(Postlexer.java:1)
    	at com.joanju.proparse.TokenList.build(TokenList.java:37)
    	at com.joanju.proparse.DoParse.doParse(DoParse.java:147)
    	at org.prorefactor.treeparser.ParseUnit.parse(ParseUnit.java:271)
    	... 3 more

An example can be found in attachment below.
Bad_DEFINED_function.zip

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions