f8d26061d2
FossilOrigin-Name: 0b3b09b4d7947b20dab7cf7b7ffb92f22ea0f2ddb26e2143773696eb475a585c
49 lines
1.1 KiB
Markdown
49 lines
1.1 KiB
Markdown
# Syntax
|
|
|
|
RETRO code consists of a series of whitespace delimited tokens. Each of these can have an optional prefix telling RETRO how to treat the token. If the token lacks a valid prefix, it will be treated as a word name.
|
|
|
|
So:
|
|
|
|
[prefix][token]
|
|
|
|
Prefixes are single character modifiers. They are similar to colors in ColorForth, but are handled via words in the `prefix:` namespace.
|
|
|
|
The major prefixes are:
|
|
|
|
| Prefix | Used For |
|
|
| ------ | ----------------------------- |
|
|
| @ | Fetch from variable |
|
|
| ! | Store into variable |
|
|
| & | Pointer to named item |
|
|
| # | Numbers |
|
|
| $ | ASCII characters |
|
|
| ' | Strings |
|
|
| ( | Comments |
|
|
| : | Define a word |
|
|
|
|
Example:
|
|
|
|
````
|
|
(This_is_a_comment)
|
|
|
|
(Define_some_words)
|
|
:hello (-)
|
|
'Hello_World! puts nl ;
|
|
|
|
:n:square (n-m)
|
|
dup * ;
|
|
|
|
(Use_them)
|
|
hello
|
|
#33 n:square
|
|
|
|
(More_Things)
|
|
$a (this_is_the_ASCII_'a')
|
|
|
|
'Use_underscores_in_place_of_spaces_in_strings
|
|
&puts call
|
|
|
|
'Foo var
|
|
#100 !Foo
|
|
@Foo putn
|
|
````
|