Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: R: Re: List of all rebol words

From: tim-johnsons::web::com at: 8-Dec-2007 8:32

On Friday 07 December 2007, Giuseppe Chillemi wrote:
> > I think this works: > > >> first system/words > > > > == [end! unset! error! datatype! context! native! action! routine! op! > > function! object! struct! library! port! any-type! any-word!... > > > > >> length? first system/words > > > > == 2488 > > We have no description, no category, nothing... I need something more.
Hi Giuseppe: FYI: I transitioned from coding rebol in windows with Boxer, to coding in linux with vim and then a few years ago, I started using emacs and wrote a major emacs editing mode for rebol. I'm speaking for emacs here not to encourage any debate about the best editor but to qualify the approach that I used. Since rebol doesn't distinguish between code and data and control structures are functions with return values one might tailor the approach to their own special needs. In emacs, syntax highlighting groups are data structures which can be exploited for things like cursor movement and selection routines. I iterated thru first system words somewhat like this: foreach word first system/words[ ,,,,,,, ] I started by programmatically capturing all of the type- words, which are identified by #"!" = last to-string word ;; UC = untested code and built a temporary data structure of coerced strings as in integer! => "integer" and so forth. So now I had a collection of type words and a collection of comparison strings. Then I iterated again and pulled out the type predicate words with something like this: ws: to-string word ;; UC all[ #"?" = last ws (find ws coerced-string) = ws] ;; UC comparing "integer" and integer? So now I had a list of types and type predicates Then one can use either function? or any-function? to gather the functions, =46rom that one can gather constants like newline, true, off etc. A certain amount of hand editing was used, because control words, loop words etc can evaluate to functions right? I hope I've given you some ideas. I'm sure you want to tailor your edit to both your needs and the editor's functionality. HTH