REBOL [
    Title: "Parse REBOL Source"
    Author: "Carl Sassenrath"
    File:  %parse-source.r
    Date:  27-May-2000
    Purpose: {Example parser for REBOL source code.}
    Category: [script util text 2]
]

parse-source: func [
    "Parse REBOL source code."
    text /local str new
][
    parse text blk-rule: [
        some [  ; repeat until done
            str:
            newline |
            #";" thru newline new: (probe copy/part str new) |
            [#"[" | #"("] blk-rule |
            [#"]" | #")"] |
            skip (set [value new] load/next str  probe :value) :new
        ]
    ]
]

parse-source read %parse-source.r


Reply via email to