| 348 | | atom_chars(ObjArity, ObjArityChars), |
| 349 | | '$lgt_append'(FunctorChars, ['_', ArityChar| ArityChars], ObjArityChars), |
| 350 | | catch(number_chars(Arity, [ArityChar| ArityChars]), _, fail), |
| 351 | | atom_chars(Functor, FunctorChars), |
| 352 | | functor(Obj, Functor, Arity), |
| | 348 | '$lgt_reverse_entity_prefix'(Prefix, Obj), |
| | 11201 | % '$lgt_reverse_entity_prefix'(+atom, -entity_identifier) |
| | 11202 | % |
| | 11203 | % reverses the entity prefix used in the compiled code |
| | 11204 | |
| | 11205 | '$lgt_reverse_entity_prefix'(Prefix, Entity) :- |
| | 11206 | '$lgt_compiler_flag'(code_prefix, CodePrefix), |
| | 11207 | atom_concat(CodePrefix, NameUnderscoreArityUnderscore, Prefix), |
| | 11208 | atom_concat(NameUnderscoreArity, '_', NameUnderscoreArityUnderscore), |
| | 11209 | '$lgt_split_name_arity'(NameUnderscoreArity, Name, Arity), |
| | 11210 | functor(Entity, Name, Arity), |
| | 11211 | !. |
| | 11212 | |
| | 11213 | |
| | 11214 | '$lgt_split_name_arity'(NameUnderscoreArity, Name, Arity) :- |
| | 11215 | atom_codes(NameUnderscoreArity, Codes), |
| | 11216 | '$lgt_reverse'(Codes, [], RCodes), |
| | 11217 | '$lgt_find_arity_codes'(RCodes, [], ArityCodes), |
| | 11218 | number_codes(Arity, ArityCodes), |
| | 11219 | atom_codes(ArityAtom, ArityCodes), |
| | 11220 | atom_concat(NameUnderscore, ArityAtom, NameUnderscoreArity), |
| | 11221 | atom_concat(Name, '_', NameUnderscore). |
| | 11222 | |
| | 11223 | |
| | 11224 | '$lgt_find_arity_codes'([Code| Codes], Acc, ArityCodes) :- |
| | 11225 | ( char_code('_', Code) -> |
| | 11226 | ArityCodes = Acc |
| | 11227 | ; '$lgt_find_arity_codes'(Codes, [Code| Acc], ArityCodes) |
| | 11228 | ). |
| | 11229 | |
| | 11230 | |
| | 11231 | '$lgt_reverse'([], Reversed, Reversed). |
| | 11232 | '$lgt_reverse'([Head| Tail], List, Reversed) :- |
| | 11233 | '$lgt_reverse'(Tail, [Head| List], Reversed). |
| | 11234 | |
| | 11235 | |
| | 11236 | |