Discussions related to Visual Prolog
Peter Muraya
VIP Member
Posts: 147
Joined: 5 Dec 2012 7:29

Linker error, undefined name

Unread post by Peter Muraya »

Hi,
I get the following linker error that I don't quite understand. Do you?

Error 2525: 'Obj\main.A22FE9BF.obj' - undefined name '$function$function_{@Argument}_interface$0$domain$'


The commented part of the following source code compiled without a hitch. I decided to simplify it by introducing the function domain and then used it to replace the term expression_{function_{@Argument} with simply expression_{function}. Is this not a legal thing to do?

Code: Select all

interface expression_{@Type}     properties           type:@Type. end interface   class expression_{@Type}:expression_{@Type}      constructors           new:(@Type). end class   implement expression_{@Type}       facts            type:@Type:=erroneous.       clauses            new(Type):-                type:=Type. end implement   /* interface function_{@Argument} supports expression_{function_{@Argument}} end interface   class function_{@Argument}:function_{@Argument} end class   implement function_{@Argument} inherits expression_{function_{@Argument}}      clauses           new():-               expression_::new(This). end implement */     interface function_{@Argument} supports expression_{function}      domains           function = function_{@Argument}. end interface   class function_{@Argument}:function_{@Argument} end class   implement function_{@Argument} inherits expression_{function}      clauses           new():-               expression_::new(This). end implement     implement main   clauses     run().   end implement main   goal     console::runUtf8(main::run).
Mutall Data Management Technical Support
User avatar
Thomas Linder Puls
VIP Member
Posts: 1399
Joined: 28 Feb 2000 0:01

Unread post by Thomas Linder Puls »

This is caused by a bug in the compiler. Please write like this instead:

Code: Select all

interface function_{@Argument} supports expression_{function_{@Argument}} end interface   class function_{@Argument} : function_{@Argument} end class   implement function_{@Argument} inherits expression_{function_{@Argument}}   clauses     new() :-         expression_::new(This).   end implement
Regards Thomas Linder Puls
PDC
Peter Muraya
VIP Member
Posts: 147
Joined: 5 Dec 2012 7:29

Unread post by Peter Muraya »

Ok. Thanks.
Mutall Data Management Technical Support
Post Reply