REBOL Programming/build-tag
USAGE:
BUILD-TAG values
DESCRIPTION:
Generates a tag from a composed block.
BUILD-TAG is a function value.
ARGUMENTS
- values -- Block of parens to evaluate and other data. (Type: block)
SOURCE CODE
build-tag: func [
"Generates a tag from a composed block."
values [block!] "Block of parens to evaluate and other data."
/local tag value-rule xml? name attribute value
][
tag: make string! 7 * length? values
value-rule: [
set value issue! (value: mold value)
| set value file! (value: replace/all copy value #" " "%20")
| set value any-type!
]
xml?: false
parse compose values [
[
set name ['?xml (xml?: true) | word!] (append tag name)
any [
set attribute [word! | url!] value-rule (
repend tag [#" " attribute {="} value {"}]
)
| value-rule (repend tag [#" " value])
]
end (if xml? [append tag #"?"])
]
|
[set name refinement! to end (tag: mold name)]
]
to tag! tag
]
Last modified on 27 October 2012, at 22:16