skip ( set [ value new ] load/next str emit str new str: new )
                :str
instead of
                skip (set [value new] load/next str  emit str new) :new
works.
it seems there is only one position-variable allowed in /core ?

Volker

> 
> with /core on linux ( REBOL 2.2.0.4.2 )
> this hangs, with view/beta4 it runs. ?!
> 
>         parse script blk-rule: [
> ...
>                 str: (print copy/part str 10)
> prints lots of
> REBOL [
> Ti
> 
> And, my script with rebol[] in it fails, of course.
> will change to  [join "RE" "BOL"] :-)
> 
> i like this script :-)
> 
> Volker
> 
> > Here's a useful little script for those of you who are
> > diligently working on REBOL this Memorial Day weekend.
> > 
> > -Carl
> > 
> > REBOL [
> >     Title: "REBOL Script Cleaner"
> >     Author: "Carl Sassenrath"
> >     File:  %clean-script.r
> >     Date:  27-May-2000
> >     Email: [EMAIL PROTECTED]
> >     Purpose: {
> >         Cleans REBOL scripts by parsing the REBOL code
> >         and supplying standard indentation and spacing.
> >     }
> >     Note: {
> >         This script produces STANDARD script indentation and
> >         spacing.  No doubt you will want to modify it to use
> >         your own rules.  Send your enhancements and I will
> >         consider adding them to the distribution... but keep
> >         this header intact and keep the code clean.  No hacks.
> >     }
> >     Category: [script util text 3]
> >     History: [
> >         "Carl Sassenrath" 1.0.0 27-May-2000 "Original program."
> >     ]
> > ]
> > 
> > script-cleaner: make object! [
> > 
> >     out: none   ; output text
> >     spaced: off ; add extra bracket spacing
> >     indent: ""  ; holds indentation tabs
> > 
> >     emit-line: func [] [append out newline]
> > 
> >     emit-space: func [pos] [
> >         append out either newline = last out [indent][
> >             pick [#" " ""] found? any [
> >                 spaced
> >                 not any [find "[(" last out find ")]" first pos]
> >             ]
> >         ]
> >     ]
> > 
> >     emit: func [p1 p2] [emit-space p1  append out copy/part p1 p2]
> > 
> >     set 'clean-script func [
> >         "Returns new script text with standard spacing."
> >         script "Original Script text"
> >         /spacey "Optional spaces near brackets and parens"
> >         /local str new
> >     ][
> >         spaced: found? spacey
> >         out: append clear copy script newline
> >         parse script blk-rule: [
> >             some [
> >                 str:
> >                 newline (emit-line) |
> >                 #";" thru newline new: (emit str new) |
> >                 [#"[" | #"("] (emit str 1 append indent tab) blk-rule |
> >                 [#"]" | #")"] (remove indent emit str 1) |
> >                 skip (set [value new] load/next str  emit str new) :new
> >             ]
> >         ]
> >         remove out  ; remove first char
> >     ]
> > ]
> > 
> > ;Example:  print clean-script read %clean-script.r
> > 
> > 
> > 
> > 
> 
> 
> 

Reply via email to