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).