To those who have had some comments on embedded macros of the Dick persuasion, I 
should elaborate what I am really tyring to do with them, so that our internal latent 
structures are hallucinating in the same universe.

I implemented these embedded macros in C   and found the task rather straight forward 
(chuckle). So I thought it would be a good test to see the robustness of Rebol and to 
have this capability. So here is a little more information about what I am really 
trying to do with the embedded macros. Would be great to see a good solution.

*(EvaluateExpression)
$(NamespaceLookup)
%(EnvironmentVariable)
@(DatabaseReference)
!(CommandLine)

=   *(EvaluateExpression) ===================
Interior content is to be executed in program space (Rebol) 
EXAMPLE:
aa: "1" 
ab: "0" 
a: "*(aa)*(ab)" 
b: "*(aa)*(ab)" 
op: "*" 
print "The answer is: *(*(a)*(op)*(b)) I think" 
The answer is: 100 I think 
EXAMPLE: 
print "The answer is: *(a)*(op)*(b) I think" 
The answer is: 10*10 I think 

=   $(NamespaceLookup) ===================
Interior content is found via a namespace lookup function with interiorcontent as its 
argument 
EXAMPLE:
print "The application is: $(APNAME)" 
The application is: MEI 

=   %(EnvironmentVariable)   =================== 
Interior content is environment variable looked up by function with interiorcontent as 
its argument
EXAMPLE:  
print "Rebol's home directory is: %(REBOL_HOMEDIR)" 
Rebol's home directory is: c:\Rebol 

=   @(DatabaseReference)   ===================
Interior content is database reference retrieved by function with interiorcontent as 
its argument split on colon delimeter.
EXAMPLE:  
i.e. results in a query being executed -> select VV from db.tn where LN = 'ln' and VN 
= 'vn' 
print "The application home dir is: @(ncd:cfg_rtx:$(APNAME):homedir)" 
The application home dir is: MEI/applications 

=   !(CommandLine)   ===================
Interior content is a command line to be executed and piped result replaces macro 
EXAMPLE:
bindir: "somepath" 
print "myprog says: !(myprog @(ncd:cfg_rtx:$(APNAME):homedir)/*(bindir))" 
KESS - Keep et semple stewpid! 

So, you can see, I was trying to understand how to do the nested macro parsing so that 
I could implement these 5 types of macros. 

Dick
 


Download NeoPlanet at http://www.neoplanet.com 

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to