block troubles
[1/7] from: maarten::koopmans::surfnet::nl at: 9-Mar-2003 22:30
Hi,
Say I have a string data: {foreach a b [}
Now I want to append this as a block to an empty block:
code: copy []
append to-block data
error! missing [ at end of script
(of course, tehe actual "]" will be appended later)
AFAIK this is impossible to do, right?
--Maarteb
[2/7] from: sunandadh:aol at: 9-Mar-2003 17:18
Maarten:
> AFAIK this is impossible to do, right?
I'd never say "impossible" with the number of clever people who contribute
here. But it does look rather problematical.
to-block requires valid REBOL syntax, so all these will fail too:
to-block "6a" ;; invalid integer
to-block "7+4" ;; ditto
to-block "(" ;; Missing ) at end-of-script
to-block "%" ;; Invalid file -- %
to-block ":" ;; Invalid word-get --
to-block "[" ;; your case -- Missing ] at end-of-script
Sunanda.
[3/7] from: rgombert:essentiel at: 9-Mar-2003 23:43
ooops, i meant :
data: {foreach a b [}
code: copy ""
append code data
append code "this code"
append code "]"
code
to-block code
Renaud GOMBERT
--------------------------------
www.essentiel.net
N° SIRET : 418 620 159
N° MdA : G316527
NAF/APE : 923A
[4/7] from: rgombert:essentiel at: 9-Mar-2003 23:41
i suggest you try a different aproach, working on strings and converting to
block only once, at the end :
>> data: {foreach a b [}
>> code: copy "["
>> append code data
>> append code "this code"
>> append code "]]"
>> code
== "[foreach a b [this code]]"
>> to-block code
== [[foreach a b [this code]]]
Renaud GOMBERT
--------------------------------
www.essentiel.net
N° SIRET : 418 620 159
N° MdA : G316527
NAF/APE : 923A
[5/7] from: antonr:iinet:au at: 10-Mar-2003 9:26
Yes, I guess you can't create an improperly
matched block to start with. Good, in my
opinion.
You must finish your block in the string
before converting to a block.
But why did you need to do this, I wonder?
Anton.
[6/7] from: gscottjones:mchsi at: 9-Mar-2003 16:56
From: "Maarten Koopmans"
...
> Say I have a string data: {foreach a b [}
> Now I want to append this as a block to an empty block:
<<quoted lines omitted: 3>>
> (of course, tehe actual "]" will be appended later)
> AFAIK this is impossible to do, right?
Hi, Maarten,
If you have your heart set on adding these code fragments into a block, one
way to do it is:
b: [1 2]
data1: {foreach a b [}
data2: {print a}
data3: {]}
code: copy []
foreach datum parse data1 none [append code to-word datum]
foreach datum parse data2 none [append code to-word datum]
foreach datum parse data3 none [append code to-word datum]
do load mold code
If a string is satisfactory, then:
b: [1 2]
data1: {foreach a b [}
data2: {print a}
data3: {]}
code: copy ""
append code data1
append code data2
append code data3
do code
Hope that helps.
--Scott Jones
[7/7] from: maarten:koopmans:surfnet:nl at: 10-Mar-2003 12:21
I am in the process of patching rsp.r and improving the binding (that
doesn't work on string!).
One way is directly adding to a block!, but converting the compiled page
to a block using load/all does the trick as well.
--Maarten
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted