retroforth/doc/Syntax.md
crc ed89e0bde8 rename references to old names in doc
FossilOrigin-Name: 0b0cd20ed69027a7d9b5f2d905d7b9e033e2976208385652d888da35432a4482
2018-05-07 16:39:49 +00:00

1.1 KiB

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! s:put 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
&s:put call

'Foo var
#100 !Foo
@Foo n:put