An ITEMIZE equ file wont compile as an INCLUDE

Tags: #<Tag:0x00007f688658b2e0>

Hi everyone,

I’ve encountered a strange error this morning regarding an INLCUDE file that will post the following error
The include file is inserted within the Global Embed “Before File Declaration”
like so

On compilation I’m having the following error


When I insert the entire file at the embed point “Before File Declaration”, the compilation went on without
any error.

What I found even more strange I do use a lot equ file with ITEMIZE structure within my classes. Even more so they are used within the same app. I was wondering what am I’m doing wrong.

Here’s the content of the file named AppDMLWhenTask.equ that was inserted totally within the embed point compile successuflly but as an INCLUDE file it wont compile.
!AppDML WhenTask procedures equates list identifiers
!The WhenTask concept processed through WhosCalling, HasToDo and HasDone

!jcDict class
WhenTask                                ITEMIZE,PRE(WTjcDict)
FMPrimeFields                             EQUATE(401) !PROCEDURE 
FMInit                                            EQUATE !PROCEDURE(File File,ErrorClass EC) 
InitDebug                                      EQUATE !PROCEDURE(BYTE pAppDebugState)

!jcDictA class
WhenTask                                ITEMIZE,PRE(WTjcDictA)
FMPrimeRecord                             EQUATE(451) !PROCEDURE(BYTE SuppressClear = 0),BYTE 
InitDebug                                        EQUATE !PROCEDURE(BYTE pAppDebugState)

!jcRéf class
WhenTask                                ITEMIZE,PRE(WTjcRef)
FMPrimeFields                             EQUATE(501) !PROCEDURE
InitDebug                                      EQUATE !PROCEDURE(BYTE pAppDebugState)

!jcRéfA class
WhenTask                                ITEMIZE,PRE(WTjcRefA) 
InitDebug                                     EQUATE(551) !PROCEDURE(BYTE pAppDebugState)

!jcTable class
WhenTask                                ITEMIZE,PRE(WTjcTable)
InitDebug                                    EQUATE(401) !PROCEDURE(BYTE pAppDebugState)

!jcTableA class
WhenTask                                ITEMIZE,PRE(WTjcTableA)
InitDebug                                    EQUATE(451) !PROCEDURE(BYTE pAppDebugState)


Make sure you have indented the include itself

Also FWIW, I would normally just INCLUDE(‘AppDMLWhenTask.EQU’),ONCE
IOW no path, let the .RED find the file.


Thank you Mark,

This is exactly what I did first INCLUDE(’AppDMLWhenTask.equ),ONCE and making sure the INCLUDE statement is indented not in the first column. For some reason the above error is still there. I’ve just tried again, the error still on. I thought maybe there’s some illegal hidden character. If it is the case, this happens rarely. I have rebuilt the file line by line; insert the statement INCLUDE(‘AppDMLWhenTask.equ’),ONCE within the Global Embeds Houra! It works. The moral of the story some hidden character in the file was preventing me from compiling the EQU file.

Thanks again Mark, you make me reflect little more.

1 Like

I accidentally discovered that, in some situations, if you paste code from a web browser (such as copying source code from github in your browser to a source module opened in the Clarion IDE), it can cause the IDE to set the BOM of the module to unicode.

The editor halfway wants to go unicode, but the compiler says no thank you.

In my case, I used UltraEdit to re-save the file as ANSI, but your solution works too.

1 Like