Dashrep Snippets
Code you can copy and paste to more quickly create new Dashrep code
Simple start
Here's a simple Dashrep program you can use as a starting point. This program expands a template, each time inserting the specified information.
dashrep-language-yes:
[optional phrase, puts the word "dashrep" into the first 7 characters of this file]
----
documentation-or-comments-in-any-unused-phrase:
[the compiler ignores text in phrases that are never used]
----
start-here:
combee Execution always starts at this special phrase name, regardless of location within code comenn
ambee use-handler-with-each-word-in-phrase handle-one-item list-of-item-ids amenn
----
handle-one-item:
ambee copy-text word-to-use-in-handler item-id amenn
ambee expand-text template-to-expand expanded-text amenn
ambee append-new-line expanded-text amenn
ambee append-text-no-space expanded-text standard-output amenn
----
template-to-expand:
<any_text_including_tags> ... item-id ... info-associated-with-item fenambee item-id amenn ... </end_sample_tag><new_line>
----
list-of-item-ids:
alpha beta gamma delta
----
info-associated-with-item-alpha:
alpha info
----
info-associated-with-item-beta:
beta info
----
info-associated-with-item-gamma:
gamma info
----
info-associated-with-item-delta:
delta info
----
Expand template
ambee
expand-text
template-containing-dashrep-phrase-names
expanded-text
amenn
Useful predefined phrases within a template:
hyphen-here character-hyphen four-hyphens
no-space one-space character-space non-breaking-space
new-line empty-line line-break character-newline
character-tab character-underscore
Sample user-defined phrases within a template:
italics-begin italics-end bold-begin bold-end
heading-level-1-begin heading-level-1-end
paragraph-begin paragraph-end list-item-begin list-item-end
delayed-nospace delayed-newline
Looping
ambee use-handler-with-each-word-in-phrase name-of-handler space-delimited-words-usually-item-ids amenn
ambee copy-text word-to-use-in-handler item-id amenn
This Dashrep action creates a loop that reads each line of an input text file:
linewise-read-from-file-and-use-handler
These Dashrep actions can create or modify a list of words that can specify a looping sequence:
generate-counts-from-integer-to-integer
copy-words-order-reversed
copy-words-rearrange-using-order-sort-numeric
copy-words-rearrange-using-order-sort-alphabetic
copy-words-sort-alphabetic
generate-positions-of-listed-words
generate-positions-of-delimiter
generate-positions-of-first-matching-delimiter-after-listed-positions
copy-words-unique-only
copy-words-found-in-both-lists
copy-words-found-only-in-first-list
copy-words-found-in-either-list
These actions can determine the second position number for the action generate-counts-from-integer-to-integer (where 1 is the the starting number):
get-count-of-words
get-count-of-characters
These actions can be useful for looping purposes:
copy-word-at-position
copy-characters-from-position-to-position (where both numbers specify the same character position)
generate-every-pairwise-combination-of-words
generate-every-ordered-pairwise-combination-of-words
Branching
ambee expand-text template-for-participants-when-count-is fenambee ambee zero-one-multiple ambee count-of-items amenn amenn amenn expanded-text amenn
template-for-participants-when-count-is-zero
template-for-participants-when-count-is-one
template-for-participants-when-count-is-multiple
template-when-count-is fenambee ambee zero-or-nonzero ambee count-of-items amenn amenn amenn
template-when-count-is-zero
template-when-count-is-nonzero
ambee if-yes-begin ambee yes-or-no-empty-phrase phrase-that-might-be-empty amenn amenn
ambee if-end amenn
ambee if-yes-begin ambee yes-or-no-same-two-phrase-definitions item-first item-second amenn amenn
ambee if-yes-begin ambee yes-or-no-same-two-words zero ambee zero-or-nonzero ambee count-of-items amenn amenn amenn amenn
ambee if-yes-begin ambee yes-or-no-same-two-words greater ambee numeric-equal-greater-less-compare ambee first-number-to-compare amenn ambee second-number-to-compare amenn amenn amenn
ambee yes-or-no-opposite ambee yes-or-no-for-specific-condition amenn amenn
ambee if-no-begin text possibly containing word no amenn
ambee no-if-any-no text possibly containing words yes and no amenn
ambee no-if-not-yes text possibly containing words yes and no amenn
ambee yes-if-all-yes text possibly containing words yes and no amenn
ambee yes-if-any-yes text possibly containing words yes and no amenn
ambee yes-if-not-no text possibly containing words yes and no amenn
Copy
ambee copy-text text-to-copy target-phrase-destination amenn
ambee put-into-phrase phrase-receiving-following-text one or more words to insert into phrase amenn
ambee append-text source-text destination-text amenn
ambee append-text-no-space text-to-write standard-output amenn
ambee append-text-no-space source-text destination-text amenn
ambee append-new-line phrase-getting-newline-appended amenn
ambee append-repeatedly-using-count text-to-append growing-text ambee repeat-count amenn amenn
ambee append-multiple-from-phrases-named-in-pattern phrase-containing-pattern[?] destination-phrase amenn
ambee put-into-phrase destination-phrase ambee get-phrase-name-from-phrase phrase-that-holds-name-of-different-phrase amenn amenn
ambee prepend-text source-text text-growing-at-beginning amenn
ambee prepend-text-no-space source-text text-growing-at-beginning amenn
ambee copy-without-extra-spaces text-with-possible-adjacent-spaces text-with-only-single-spaces amenn
Clear
ambee clear-phrase phrase-name-to-clear-by-deleting-current-phrase-definition amenn
ambee clear-listed-phrases list-of-phrase-names-to-clear amenn
ambee delete-listed-phrases list-of-phrase-names-to-delete amenn
Words (space-delimited)
ambee put-into-phrase word-count ambee get-count-of-words space-delimited-words amenn amenn
ambee copy-word-at-position space-delimited-words copied-word ambee integer-position-of-word-to-copy amenn amenn
ambee put-into-phrase copied-word ambee get-word-at-position space-delimited-words ambee integer-position-of-word-to-get amenn amenn amenn
ambee put-into-phrase word-position-or-zero-if-not-found ambee get-position-of-word space-delimited-words search-word amenn amenn
ambee copy-words-from-position-to-position space-delimited-words copied-words ambee beginning-word-position amenn ambee ending-word-position amenn amenn
ambee copy-words-offset-skip space-delimited-words copied-words ambee offset-integer-number amenn ambee skip-interval amenn amenn
ambee copy-words-found-in-both-lists space-delimited-words-list-one space-delimited-words-list-two words-found-in-both-lists amenn
ambee copy-words-found-only-in-first-list space-delimited-words-list-one space-delimited-words-list-two words-in-list-one-but-not-in-list-two amenn
ambee copy-words-found-in-either-list space-delimited-words-list-one space-delimited-words-list-two words-found-in-either-list-without-repeats amenn
ambee copy-words-order-reversed space-delimited-words same-words-in-reverse-order amenn
ambee copy-words-sort-alphabetic space-delimited-words same-words-in-alphabetical-order amenn
ambee copy-words-that-begin-with-text space-delimited-words copied-words prefix-used-for-selection amenn
ambee copy-words-that-begin-with-listed-words space-delimited-words copied-words space-delimited-prefixes-used-for-selection amenn
ambee copy-words-that-contain-listed-words space-delimited-words matching-words space-delimited-word-segments-to-match amenn
ambee copy-words-unique-only space-delimited-words unique-words-no-repeats amenn
ambee copy-listed-words-to-phrases-named-in-pattern space-delimited-words pattern-specification-see-documentation amenn
Characters
ambee copy-characters-from-position-to-position source-text copied-characters-from-source-text ambee starting-character-position amenn ambee ending-character-position amenn amenn
ambee put-into-phrase word-count ambee get-characters-from-position-to-position source-text ambee starting-character-position amenn ambee ending-character-position amenn amenn
ambee get-count-of-characters text-of-unknown-character-length amenn
ambee copy-lowercase-only source-text copied-text-but-lowercase amenn
ambee copy-uppercase-only source-text copied-text-but-uppercase amenn
ambee copy-initial-caps source-text copied-text-with-first-letter-of-each-word-capitalized amenn
ambee copy-zero-pad-left-to-length text-usually-a-number-to-prefix-with-leading-zeros text-with-leading-zeros-inserted ambee length-after-padding amenn amenn
Search and replace
ambee copy-and-replace source-text modified-text search-text replacement-text amenn
ambee copy-and-replace-using-paired-listed-words source-text revised-text-after-replacements list-of-paired-space-delimited-words amenn
ambee put-into-phrase character-position-or-zero-if-no-match ambee get-position-of-matching-text search-text text-that-may-contain-search-text amenn amenn
ambee generate-positions-of-listed-words space-delimited-search-words source-text-being-searched paired-character-pointers-to-begin-and-end-of-each-match amenn
ambee generate-positions-of-delimiter search-text-which-can-include-spaces source-text-being-searched list-of-starting-character-positions-where-matches-occur amenn
ambee generate-positions-of-first-matching-delimiter-after-listed-positions search-text-which-can-include-spaces source-text-being-searched supplied-list-of-character-starting-positions list-of-character-positions-at-first-match-after-each-starting-position amenn
Conversion
ambee get-cgi-information amenn
ambee get-url-resource internet-url copy-of-text-at-that-url amenn
ambee convert-unicode-to-html-entities text-possibly-containing-unicode-characters equivalent-text-using-html-entities-where-unicode-characters-occur amenn
ambee copy-and-remove-attributes-from-xml-tags normal-xml-code special-xml-code-with-attribute-values-moved-into-special-attribute-tags amenn
ambee copy-and-move-attributes-into-xml-tags special-xml-code-except-with-attribute-values-in-special-attribute-tags normal-xml-code-with-attributes-moved-inside-tags amenn
ambee encode-as-cgi-parameter source-text equivalent-source-text-encoded-as-cgi-parameter amenn
ambee decode-from-cgi-parameter cgi-encoded-parameter decoded-text amenn
ambee get-definitions-from-phrase phrase-names-and-phrase-definitions-with-four-hyphens-starting-each-new-phrase amenn
ambee put-listed-phrase-definitions-into-phrase list-of-phrase-names-to-include phrase-that-later-can-be-imported-using-action-get-definitions-from-phrase amenn
File and folder
Here's a simple Dashrep program that reads a specified file in the local directory, replaces matching “search” text with replacement text, and writes the modified file to the specified output file.
search-text:
the dolphin
----
replacement-text:
Flipper
----
input-file-name:
input_file.txt
----
output-file-name:
output_file.txt
----
start-here:
ambee linewise-read-from-file-and-use-handler ambee input-file-name amenn handle-one-line amenn
----
handle-one-line:
ambee copy-and-replace linewise-input-line-from-file possibly-modified-line search-text replacement-text amenn
ambee append-new-line possibly-modified-line amenn
ambee copy-from-phrase-append-to-file possibly-modified-line ambee output-file-name amenn amenn
----
Full path (without filename) to input or output file. Default is empty, which specifies file in current folder.
dashrep-path-prefix-for-file-reading
dashrep-path-prefix-for-file-writing
Access to input file lines:
linewise-input-line-from-file
linewise-input-line-count
Actions that write simple text to a text file. Overwrite existing file.
ambee copy-from-phrase-append-to-file source-text ambee file-name amenn amenn
ambee copy-append-file-to-file ambee source-file-name amenn ambee target-file-name amenn amenn
Actions that read simple text from a text file.
ambee linewise-read-from-file-and-use-handler ambee file-name amenn handle-one-line amenn
ambee copy-from-file-to-phrase ambee file-name amenn copied-text amenn
ambee linewise-read-from-standard-input text-from-standard-input amenn
Actions that read space-delimited CSV spreadsheet data into multiple phrases.
ambee copy-from-columns-in-file-to-column-lists ambee spreadsheet-csv-file-name amenn name-prefix-for-list-of-values-in-column amenn
ambee copy-from-columns-in-file-to-named-phrases ambee spreadsheet-csv-file-name amenn naming-convention-for-gathered-spreadsheet-data list-of-unique-values-from-first-column amenn
Phrase used by the action copy-from-columns-in-file-to-column-lists.
yes-or-no-use-two-spaces-as-column-delimiter
Actions that read or write database-like info from or to text files.
ambee find-line-in-file-that-begins-with-text ambee input-file-name amenn search-text content-of-first-line-that-matches-at-beginning amenn
ambee find-lines-in-file-that-begin-with-any-listed-word ambee lookup-file-name amenn list-of-beginning-search-words list-of-phrase-names-that-contain-matching-lines amenn
ambee find-lines-in-file-that-begin-with-any-two-words-listed ambee database-file-name amenn list-of-search-words list-of-phrase-names-containing-lines-that-match-two-words amenn
ambee gather-from-tagged-file-one-entry ambee database-file-name amenn tagged-info-for-matching-single-entry amenn
ambee gather-tagged-info-from-file ambee tagged-database-file-name amenn encountered-unique-values amenn
ambee write-gathered-listed-items-to-end-of-file list-of-unique-ids-for-gathered-data-to-be-written ambee database-file-name amenn amenn
Phrases used by the gather actions:
dashrep-gather-tag-begin
dashrep-gather-tag-end
dashrep-gather-tag-unique
dashrep-gather-tag-delete
dashrep-gather-tag-matching-id
Other file and folder actions.
ambee size-of-file ambee file-name amenn amenn
ambee yes-or-no-file-exists ambee file-name amenn amenn
ambee modification-time-of-file ambee file-name amenn amenn
ambee set-file-permission-private ambee file-name amenn amenn
ambee set-file-permission-private-but-executable ambee file-name amenn amenn
ambee set-file-permission-public-read ambee file-name amenn amenn
ambee rename-file ambee old-file-name amenn ambee new-file-name amenn amenn
ambee delete-file ambee file-name amenn amenn
ambee generate-list-of-files-in-current-read-directory list-of-files-found amenn
ambee generate-list-of-folders-in-current-read-directory list-of-folder-names amenn
ambee yes-or-no-folder-exists folder-name amenn
ambee create-empty-sub-folder folder-name amenn
Numeric
Actions in the Words category also can process numbers and lists of numbers. For example, a phrase containing 12 3.4 -0.5 can be used with these numeric actions (which recognize them as numbers) or used with word-oriented actions that treat each number as a space-delimited word.
These numeric actions are useful for branching:
template-for-case fenambee numeric-equal-greater-less-compare ambee first-number-to-compare amenn ambee second-number-to-compare amenn amenn
ambee if-yes-begin ambee yes-or-no-same-two-words greater ambee numeric-equal-greater-less-compare ambee first-number-to-compare amenn ambee second-number-to-compare amenn amenn amenn
template-for-case fenambee zero-or-nonzero ambee number-to-categorize amenn amenn
ambee if-yes-begin ambee yes-or-no-same-two-words nonzero ambee zero-or-nonzero ambee number-to-categorize amenn amenn amenn amenn
Many of the following numeric actions are used with other numeric actions. When used alone, typically these actions are used with the action put-into-phrase, as shown in some of these examples.
Some of these examples show literal numbers as a reminder the action only works with actual numbers. To specify a number (or numbers) stored in a named phrase, nest the phrase name inside the directives ambee and amenn, as shown in some of these examples.
ambee generate-counts-from-integer-to-integer 1 ambee number-of-rows amenn list-of-row-numbers amenn
ambee put-into-phrase calculated-sum ambee numeric-add 123.456 789.123 456.789 amenn amenn
ambee put-into-phrase calculated-sum ambee numeric-add ambee list-of-numbers-to-add amenn amenn amenn
ambee put-into-phrase calculated-numbers-multiplied ambee numeric-multiply 123.456 789.123 456.789 amenn amenn
ambee put-into-phrase calculated-numbers-multiplied ambee numeric-multiply ambee list-of-numbers-to-multiply amenn amenn amenn
ambee put-into-phrase calculated-division-result ambee numeric-divide-by ambee numerator-number amenn ambee denominator-number amenn amenn
ambee put-into-phrase calculated-difference ambee numeric-minus ambee number-from-which-to-subtract amenn ambee number-to-subtract amenn amenn amenn
ambee put-into-phrase maximum-number ambee numeric-maximum ambee list-of-numbers amenn amenn amenn
ambee put-into-phrase minimum-number ambee numeric-minimum ambee list-of-numbers amenn amenn amenn
ambee copy-words-sort-numeric list-of-space-delimited-numbers numbers-from-smallest-to-largest amenn
ambee numeric-integer 1.23 amenn
ambee numeric-absolute -56 amenn
ambee numeric-odd-or-even 3 amenn
ambee numeric-square-root 3.2 amenn
ambee numeric-sine 1.23 amenn
ambee numeric-cosine 1.23 amenn
ambee numeric-logarithm-base-10 1.23 amenn
ambee numeric-logarithm-base-e 1.23 amenn
ambee numeric-y-map-tile-number-based-on-latitude 123.456789 amenn
These numeric actions always require phrase names, not literal numbers.
ambee numeric-increment count-to-increment amenn
ambee numeric-decrement count-to-decrement amenn
ambee copy-words-rearrange-using-order-sort-numeric space-delimited-words-to-rearrange sorted-words space-delimited-numbers-that-determine-numeric-sort-order amenn
ambee copy-words-rearrange-using-order-sort-alphabetic space-delimited-words-to-rearrange sorted-words words-that-determine-alphabetic-sort-order amenn
ambee generate-every-pairwise-combination-of-words space-delimited-words-first-list space-delimited-words-second-list list-of-words-first-in-every-possible-pair list-of-words-second-in-every-possible-pair amenn
ambee generate-every-ordered-pairwise-combination-of-words space-delimited-words list-of-words-first-in-ordered-pair list-of-words-second-in-ordered-pair amenn
These vector actions operate on a list of numbers. The calculated result is another list of numbers of the same length.
ambee numeric-vectors-add first-list-of-numbers second-list-of-numbers list-of-calculated-sums amenn
ambee numeric-vector-add-number list-of-numbers ambee single-number-to-add-to-each-listed-number amenn list-of-calculated-sums amenn
ambee numeric-vector-multiply-by-number list-of-numbers ambee single-number-to-multiply-times-each-listed-number amenn list-of-calculated-numbers amenn
ambee numeric-vectors-multiply first-list-of-numbers-to-multiply second-list-of-numbers-to-multiply list-of-calculated-numbers amenn
ambee numeric-vectors-divide-by first-vector-list-of-numbers second-vector-list-of-numbers vector-list-of-calculated-numbers amenn
ambee numeric-vector-integers list-of-numbers list-of-those-numbers-converted-into-integers amenn
ambee numeric-vector-absolutes list-of-numbers list-of-absolute-values-of-those-numbers amenn
ambee numeric-vectors-from-delta-values-calculate-distances list-of-x-axis-numbers list-of-y-axis-numbers list-of-calculated-distances amenn
Date and time
ambee split-epoch-seconds-into-named-components ambee get-current-time-in-epoch-seconds amenn amenn
ambee split-epoch-seconds-into-named-components-for-zero-meridian epoch-seconds amenn
time-year
time-month-number
time-hour
time-minute
time-second
time-day-of-month
time-day-of-week
time-day-of-year
Diagnostic
ambee trace-show name-of-phrase-to-show-definition amenn
ambee trace-show-where amenn
ambee generate-phrase-usage-counts text-storage-for-usage-count-info amenn
ambee generate-list-of-all-dashrep-phrases list-of-dashrep-phrase-names amenn
output-trace-file-name
dashrep-comments-ignored
Special purpose
ambee exit-from-dashrep amenn
dashrep-language-yes
dashrep-version
delayed-nospace
delayed-newline
yes-or-no-permission-administrator
dashrep-endless-loop-counter-limit
dashrep-time-limit
Sample programs
This Dashrep program searches multiple text files that have the "txt" extension,
replaces the quotation mark (") symbol with "<character_quotation_mark>",
joins together the modified files into a single file using the syntax
that is used by the Linux "tail" command, but omits files that were not changed.
A separate program must split the output file into separate input files,
which then can be copied over the unmodified files.
dashrep-path-prefix-for-file-reading:
/home/path/to/files/
----
output-file-name:
output_modified_by_do_replacements.txt
----
template-indicate-start-of-next-file:
==> input-file-name <==
----
characters-dot-txt:
.txt
----
start-here:
ambee generate-list-of-files-in-current-read-directory list-of-files-found amenn
ambee copy-words-that-contain-listed-words list-of-files-found list-of-txt-files characters-dot-txt amenn
ambee delete-file ambee output-file-name amenn amenn
ambee copy-words-sort-alphabetic list-of-txt-files list-of-txt-files amenn
ambee use-handler-with-each-word-in-phrase handle-one-file list-of-txt-files amenn
----
handle-one-file:
ambee copy-text word-to-use-in-handler input-file-name amenn
ambee copy-text string-no yes-or-no-at-least-one-change amenn
ambee clear-phrase possibly-modified-all-lines amenn
ambee linewise-read-from-file-and-use-handler ambee input-file-name amenn handle-one-line amenn
ambee if-yes-begin ambee yes-or-no-at-least-one-change amenn amenn
ambee expand-text template-indicate-start-of-next-file text-to-indicate-start-next-file amenn
ambee copy-from-phrase-append-to-file text-to-indicate-start-next-file ambee output-file-name amenn amenn
ambee copy-from-phrase-append-to-file possibly-modified-all-lines ambee output-file-name amenn amenn
ambee if-end amenn
----
handle-one-line:
ambee copy-text linewise-input-line-from-file possibly-modified-line amenn
ambee copy-and-replace possibly-modified-line possibly-modified-line character-backslash replacement-for-backslash amenn
ambee copy-and-replace possibly-modified-line possibly-modified-line character-apostrophe replacement-for-apostrophe amenn
ambee copy-and-replace possibly-modified-line possibly-modified-line character-quotation-mark replacement-for-quotation-mark amenn
ambee if-no-begin ambee yes-or-no-same-two-phrase-definitions linewise-input-line-from-file possibly-modified-line amenn amenn
ambee copy-text string-yes yes-or-no-at-least-one-change amenn
ambee if-end amenn
ambee append-new-line possibly-modified-line amenn
ambee append-text-no-space possibly-modified-line possibly-modified-all-lines amenn
----
string-yes:
yes
----
string-no:
no
----
character-quotation-mark:
"
----
replacement-for-quotation-mark:
<character_quotation_mark>
----
This Dashrep program demonstrates actions that find specified delimiters, and demonstrates one of the numeric vector actions. It removes comments that are delimited by the words combee and comenn.
start-here:
ambee copy-from-file-to-phrase joined_cpp_definitions.txt raw-joined-cpp-definitions amenn
ambee copy-without-extra-spaces joined-cpp-definitions-with-comments joined-cpp-definitions-with-comments amenn
ambee remove-combee-comenn-comments amenn
ambee copy-text joined-cpp-definitions-without-comments standard-output amenn
----
remove-combee-comenn-comments:
ambee expand-text template-text-com-bee-space-padded text-com-bee-space-padded amenn
ambee expand-text template-text-com-enn-space-padded text-com-enn-space-padded amenn
ambee generate-positions-of-delimiter text-com-bee-space-padded joined-cpp-definitions list-of-starting-character-positions-where-matches-occur amenn
ambee generate-positions-of-first-matching-delimiter-after-listed-positions text-com-enn-space-padded joined-cpp-definitions list-of-starting-character-positions-where-matches-occur list-of-character-positions-at-first-match-after-each-starting-position amenn
ambee numeric-vector-add-number list-of-character-positions-at-first-match-after-each-starting-position 6 list-of-pointers-to-non-comments-begin amenn
ambee prepend-text number-one list-of-pointers-to-non-comments-begin amenn
ambee append-text number-huge list-of-pointers-to-non-comments-end amenn
ambee generate-counts-from-integer-to-integer 1 ambee get-count-of-words list-of-pointers-to-non-comments-begin amenn list-of-pointers-to-pointer-pairs amenn
ambee use-handler-with-each-word-in-phrase handle-one-comment list-of-pointers-to-pointer-pairs amenn
----
handle-one-comment:
ambee copy-text word-to-use-in-handler pointer-to-pointer-pair amenn
ambee copy-words-from-position-to-position list-of-pointers-to-non-comments-begin pointer-to-non-comment-begin ambee pointer-to-pointer-pair amenn ambee pointer-to-pointer-pair amenn amenn
ambee copy-words-from-position-to-position list-of-pointers-to-non-comments-end pointer-to-non-comment-end ambee pointer-to-pointer-pair amenn ambee pointer-to-pointer-pair amenn amenn
ambee copy-characters-from-position-to-position joined-cpp-definitions text-non-comment ambee pointer-to-non-comment-begin amenn ambee pointer-to-non-comment-end amenn amenn
ambee append-text text-non-comment joined-cpp-definitions-without-comments amenn
----
number-one:
1
----
number-huge:
99999999
----
template-text-com-bee-space-padded:
<character_space>com no-space bee<character_space>
----
template-text-com-enn-space-padded:
<character_space>com no-space enn<character_space>
----