From: William Graves on
If I make a library and include this code, it works and puts a string
on the stack from a library.

EXTERNAL xStr
xNAME Str
::
"This is a string"
;

If I do the following, I do not even get the name Str showing on the
library's menu.

EXTERNAL xStr
xNAME Str
"This is a string"

I must have a very flawed understanding of xName. Why can't I have a
stand alone string?
-- - - - - - - - - - - - - -
Bill Graves RKBA!
bgraves(a)ix.netcom.com
From: Han on
On Aug 1, 6:46 pm, William Graves <bgra...(a)ix.netcom.com> wrote:
> If I make a library and include this code, it works and puts a string
> on the stack from a library.
>
> EXTERNAL xStr
> xNAME Str
> ::
> "This is a string"
> ;
>
> If I do the following, I do not even get the name Str showing on the
> library's menu.
>
> EXTERNAL xStr
> xNAME Str
> "This is a string"
>
> I must have a very flawed understanding of xName. Why can't I have a
> stand alone string?
> -- - - - - - - - - - - - - -
> Bill Graves   RKBA!
> bgra...(a)ix.netcom.com

What are you using to compile the library? Is this being done on the
calculator or Debug4x? Are you using RPLCOMP? What about trying:

EXTERNAL xStr
xNAME Str
$ "This is a string"

or

EXTERNAL xSTR
xNAME Str
ASSEMBLE
CON(5) =DOCSTR
REL(5) ->endstr
NIBASC 'This is a string'
->endstr
RPL

It is possible to have an xNAME be simply defined as a string (Jazz,
for example, can compile such a ROMPTR). The problem may simply be
that the compiler you are using only accepts certain forms of objects
following the xNAME.

Lastly, I think most xNAME statements are supposed to be preceded by:

ASSEMBLE
CON(1) 8
RPL

(or similar delcaration) and it could be that the compiler adds this
in automatically for forms it recognizes. That is, when you do

EXTERNAL xStr
xNAME Str
::
"This is a string"
;

it may actually get interpreted as

EXTERNAL xStr
ASSEMBLE
CON(1) 8
RPL
xNAME Str
::
"This is a string"
;

whereas the second case may not be recognized. The last thing you
might want to check is the listing (*.l) file.