AltME: Red Docs

Messages

Andreas
> What has been the best resources out there for REBOL in terms of education?
The old mailing list ...
Gregg
Andreas +1. On docs, Carl said he didn't want the REBOL user guide copied. Nick's work, and some others', are also great resources. I hope we can leverage those in the future. The main thing there will be differences in Red that have to be accounted for. A LOT of REBOL docs will apply to Red directly as well, which is great.
And, yes, if you're thinking it would be good to document the differences as well as compatibilities between REBOL-like languages, I started some things on that a long time ago. A lot of our work now can be looking in dark corners and dusting things off. Bulk prose (the content) is the big stuff now.
Reichart
Well, "copied" is a strong word :)
I have always like the word "Homage"
Gregg
:-) I'm all for attribution on anything we can pay homage to.
Geomol
I find myself using these docs mostly:
REBOL/Core Users Guide
http://www.rebol.com/docs/core23/rebolcore.html
REBOL Function Dictionary
http://www.rebol.com/docs/dictionary.html
REBOL/View VID Developer's Guide
http://www.rebol.com/docs/view-guide.html
DRAW Dialect Reference
The old version of draw-ref.html , which I can't find online, but I have it locally.
But all these are mostly docs or references, maybe not educational for beginners to the language. I can't think of a good beginner guide for these kinds of languages, but I haven't read all, so maybe it exists.

Reichart
I'm a fan of putting a crap load of stuff on a single page, esp. "Most common used words" with lots of examples.
In general though, I go to Google, type things like "rebol parse example" and get good enough.

Arnold
I want to make a Red/System doc for assisting programming Red. The idea is to quickly look up the definitions of all the used types. Such a document will be useful for Red/System 1.0 but will be easily extended for Red/System 2.0 later.
Gregg
Not sure what you mean by "used types", but any docs are helpful.

Arnold
cell!, red-value!, red-block! red-string! etc. On the one side I would like a paper version, so an index and all. On the other side a little referential program to help you look up items fast and not searching through the sources yourself, but maybe it should use the sources.
Gregg
Ah, Red/System datatypes, got it. Using the source is often a lot of work. All clues help people contribute.

Endo
That would be helpful Arnold.
Arnold
Looking for the right datastructure to get the information in, get it presented and perhaps also have it autofilled from the sources?
Arnold
[
;name       declaration-type        source-location             [definition]
series!     #define             runtime/allocator.reds      [series-buffer!]
int-array!  alias               runtime/allocator.reds      [struct! [ptr [int-ptr!]]]
cell!       alias               runtime/allocator.reds      [...]
]
Gregg
Can't help you there Arnold. Maybe if I can get some other things cleared from my list.

Arnold
No problem I code something to get a start.
Arnold
I have a quicky start but ..
whitespace: charset reduce [space tab]
empty-line: ["^/" any whitespace "^/"]
end-alias: "^/]^/"
_allocator: read %../red-master/runtime/allocator.reds
; Now can select the definition of a type declaration
parse _allocator [to "int-array!" copy desc thru [end-alias | empty-line] to end]
; And keep some string for all aliases in the source
type-list: parse _allocator [collect any [to "alias" keep to "^/"]]
; But I want
type-list: parse _allocator [collect any [to "alias" keep backto "^/"]]
As with a list if the strings before the alias I can do something more useful than the end of the strings after 'alias'.
Gregg
You'll have to collect the comments first. You could set markers, but collecting them first is probably eaiser. e.g.:
_allocator: read %...
ws=: charset " ^-"
ws+=: [some ws=]
ws*=: [any ws=]
empty-line=: ["^/" ws*= "^/"]
=comment:  none
=comments: copy []
comment=: [ws*= ";" copy =comment to newline skip]
comments=: [copy =comments [some [comment= | empty-line=]]]
digit=: charset "0123456789"
word-first-char=: complement charset {/\^^,[](){}"#%$@:;}   ; "
word-inner-char=: union word-first-char= digit=
word=: [copy =word [word-first-char= any word-inner-char=]]
set-word=: [copy =set-word [word= #":"]]
end-alias=: ["^/]^/" | "]]"]
alias=: [
    set-word= ws+= "alias struct!"
    copy =desc thru [end-alias= | empty-line=]
    (
        print =set-word
        print mold =desc
        print mold =comments
        =comments: none
    )
]
parse _allocator [
    some [
        comments=
        | alias=
        | skip
    ]
]
The "=" prefix/suffix convention is one I use to mark parse rules and vars.

Last message posted 404 weeks ago.