retroforth/doc/Syntax.md

50 lines
1.1 KiB
Markdown
Raw Normal View History

# 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
````