diff --git a/basis/html/templates/chloe/components/components.factor b/basis/html/templates/chloe/components/components.factor index 19f2019266..d69dc08537 100644 --- a/basis/html/templates/chloe/components/components.factor +++ b/basis/html/templates/chloe/components/components.factor @@ -25,8 +25,7 @@ M: tuple-class component-tag ( tag class -- ) [ compile-component-attrs ] 2bi [ render ] [code] ; -: COMPONENT: +SYNTAX: COMPONENT: scan-word [ name>> ] [ '[ _ component-tag ] ] bi define-chloe-tag ; - parsing diff --git a/extra/multi-methods/multi-methods.factor b/extra/multi-methods/multi-methods.factor index 7c5d5fb431..ec069a4894 100755 --- a/extra/multi-methods/multi-methods.factor +++ b/extra/multi-methods/multi-methods.factor @@ -224,8 +224,7 @@ M: no-method error. ] if ; ! Syntax -: GENERIC: - CREATE define-generic ; parsing +SYNTAX: GENERIC: CREATE define-generic ; : parse-method ( -- quot classes generic ) parse-definition [ 2 tail ] [ second ] [ first ] tri ; @@ -238,13 +237,13 @@ M: no-method error. : (METHOD:) ( -- method def ) CREATE-METHOD parse-definition ; -: METHOD: (METHOD:) define ; parsing +SYNTAX: METHOD: (METHOD:) define ; ! For compatibility -: M: +SYNTAX: M: scan-word 1array scan-word create-method-in parse-definition - define ; parsing + define ; ! Definition protocol. We qualify core generics here QUALIFIED: syntax diff --git a/extra/peg-lexer/peg-lexer.factor b/extra/peg-lexer/peg-lexer.factor index 1b5f17df4c..90d2e0e34c 100644 --- a/extra/peg-lexer/peg-lexer.factor +++ b/extra/peg-lexer/peg-lexer.factor @@ -9,36 +9,46 @@ CONSULT: assoc-protocol lex-hash hash>> ; : pos-or-0 ( neg? -- pos/0 ) dup 0 < [ drop 0 ] when ; :: prepare-pos ( v i -- c l ) - [let | n [ i v head-slice ] | - v CHAR: \n n last-index -1 or 1+ - - n [ CHAR: \n = ] count 1+ ] ; + [let | n [ i v head-slice ] | + v CHAR: \n n last-index -1 or 1+ - + n [ CHAR: \n = ] count 1+ + ] ; -: store-pos ( v a -- ) input swap at prepare-pos - lexer get [ (>>line) ] keep (>>column) ; +: store-pos ( v a -- ) + input swap at prepare-pos + lexer get [ (>>line) ] keep (>>column) ; -M: lex-hash set-at swap { - { pos [ store-pos ] } - [ swap hash>> set-at ] } case ; +M: lex-hash set-at + swap { + { pos [ store-pos ] } + [ swap hash>> set-at ] + } case ; :: at-pos ( t l c -- p ) t l head-slice [ length ] map sum l 1- + c + ; -M: lex-hash at* swap { +M: lex-hash at* + swap { { input [ drop lexer get text>> "\n" join t ] } { pos [ drop lexer get [ text>> ] [ line>> 1- ] [ column>> 1+ ] tri at-pos t ] } - [ swap hash>> at* ] } case ; + [ swap hash>> at* ] + } case ; : with-global-lexer ( quot -- result ) - [ f lrstack set - V{ } clone error-stack set H{ } clone \ heads set - H{ } clone \ packrat set ] f make-assoc + [ + f lrstack set + V{ } clone error-stack set H{ } clone \ heads set + H{ } clone \ packrat set + ] f make-assoc swap bind ; inline -: parse* ( parser -- ast ) compile - [ execute [ error-stack get first throw ] unless* ] with-global-lexer - ast>> ; +: parse* ( parser -- ast ) + compile + [ execute [ error-stack get first throw ] unless* ] with-global-lexer + ast>> ; -: create-bnf ( name parser -- ) reset-tokenizer [ lexer get skip-blank parse* parsed ] curry - define word make-parsing ; +: create-bnf ( name parser -- ) + reset-tokenizer [ lexer get skip-blank parse* parsed ] curry + define-syntax ; SYNTAX: ON-BNF: CREATE-WORD reset-tokenizer ";ON-BNF" parse-multiline-string parse-ebnf