! (c) Joe Groff, see license for details USING: accessors combinators continuations fry kernel lexer math parser quotations sequences vectors words words.alias ; IN: literals > call so that CONSTANT:s defined in the same file can ! be called : expand-alias ( obj -- obj' ) dup alias? [ def>> first expand-alias ] when ; : expand-literal ( seq obj -- seq' ) '[ _ expand-alias dup word? [ def>> call ] when ] with-datastack ; : expand-literals ( seq -- seq' ) [ [ { } ] dip expand-literal ] map concat ; PRIVATE> SYNTAX: $ scan-word expand-literal >vector ; SYNTAX: $[ parse-quotation with-datastack >vector ; SYNTAX: ${ \ } [ expand-literals ] parse-literal ; SYNTAX: flags{ "}" [ parse-word ] map-tokens expand-literals 0 [ bitor ] reduce suffix! ;