retroforth/doc/Syntax.md
crc 01c40d9d3d shorter lines in docs
FossilOrigin-Name: a3102b7f4f5bd64f79d0ead274320061feb044e888718ffe45464a52ee4cf612
2017-10-22 18:39:45 +00:00

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