factor: clean up almost all the rest of the syntax words.
parent
06335ae6e7
commit
f533d04304
|
@ -18,7 +18,7 @@ ERROR: not-in-a-method-error ;
|
|||
[ create-method-in ] dip [ define ] [ drop make-inline ] 2bi ;
|
||||
|
||||
: scan-new-method ( -- method )
|
||||
scan-class bootstrap-word scan-word create-method-in ;
|
||||
scan-class bootstrap-word scan-escaped-word create-method-in ;
|
||||
|
||||
symbol: current-method
|
||||
|
||||
|
|
|
@ -158,14 +158,7 @@ PRIVATE>
|
|||
: d-transform ( triple -- new-triple )
|
||||
{ { -1 -2 -2 } { 2 1 2 } { 2 2 3 } } transform ;
|
||||
|
||||
SYNTAX: SOLUTION:
|
||||
scan-word
|
||||
[ name>> "-main" append create-word-in ] keep
|
||||
[ drop current-vocab main<< ]
|
||||
[ [ . ] swap prefix ( -- ) define-declared ]
|
||||
2bi ;
|
||||
|
||||
SYNTAX: solution:
|
||||
SYNTAX: \ solution:
|
||||
scan-word
|
||||
[ name>> "-main" append create-word-in ] keep
|
||||
[ drop current-vocab main<< ]
|
||||
|
|
|
@ -16,8 +16,8 @@ selector\ nextPutAll:
|
|||
selector\ tab
|
||||
selector\ nl
|
||||
|
||||
M: object selector-print: [ present ] dip stream-print nil ;
|
||||
M: object selector-nextPutAll: selector-print: ;
|
||||
M: object \ selector-print: [ present ] dip stream-print nil ;
|
||||
M: object \ selector-nextPutAll: selector-print: ;
|
||||
M: object selector-tab " " swap selector-print: ;
|
||||
M: object selector-nl stream-nl nil ;
|
||||
|
||||
|
@ -44,16 +44,16 @@ M: object selector-= swap = ;
|
|||
selector\ min:
|
||||
selector\ max:
|
||||
|
||||
M: object selector-min: min ;
|
||||
M: object selector-max: max ;
|
||||
M: object \ selector-min: min ;
|
||||
M: object \ selector-max: max ;
|
||||
|
||||
selector\ ifTrue:
|
||||
selector\ ifFalse:
|
||||
selector\ ifTrue:ifFalse:
|
||||
|
||||
M: object selector-ifTrue: [ call( -- result ) ] [ drop nil ] if ;
|
||||
M: object selector-ifFalse: [ drop nil ] [ call( -- result ) ] if ;
|
||||
M: object selector-ifTrue:ifFalse: [ drop call( -- result ) ] [ nip call( -- result ) ] if ;
|
||||
M: object \ selector-ifTrue: [ call( -- result ) ] [ drop nil ] if ;
|
||||
M: object \ selector-ifFalse: [ drop nil ] [ call( -- result ) ] if ;
|
||||
M: object \ selector-ifTrue:ifFalse: [ drop call( -- result ) ] [ nip call( -- result ) ] if ;
|
||||
|
||||
selector\ isNil
|
||||
|
||||
|
@ -62,22 +62,22 @@ M: object selector-isNil nil eq? ;
|
|||
selector\ at:
|
||||
selector\ at:put:
|
||||
|
||||
M: sequence selector-at: nth ;
|
||||
M: sequence selector-at:put: ( key value receiver -- receiver ) [ swapd set-nth ] keep ;
|
||||
M: sequence \ selector-at: nth ;
|
||||
M: sequence \ selector-at:put: ( key value receiver -- receiver ) [ swapd set-nth ] keep ;
|
||||
|
||||
M: assoc selector-at: at ;
|
||||
M: assoc selector-at:put: ( key value receiver -- receiver ) [ swapd set-at ] keep ;
|
||||
M: assoc \ selector-at: at ;
|
||||
M: assoc \ selector-at:put: ( key value receiver -- receiver ) [ swapd set-at ] keep ;
|
||||
|
||||
selector\ do:
|
||||
|
||||
M:: object selector-do: ( quot receiver -- nil )
|
||||
M:: object \ selector-do: ( quot receiver -- nil )
|
||||
receiver [ quot call( elt -- result ) drop ] each nil ;
|
||||
|
||||
selector\ to:
|
||||
selector\ to:do:
|
||||
|
||||
M: object selector-to: swap [a,b] ;
|
||||
M:: object selector-to:do: ( to quot from -- nil )
|
||||
M: object \ selector-to: swap [a,b] ;
|
||||
M:: object \ selector-to:do: ( to quot from -- nil )
|
||||
from to [a,b] [ quot call( i -- result ) drop ] each nil ;
|
||||
|
||||
selector\ value
|
||||
|
@ -87,10 +87,10 @@ selector\ value:value:value:
|
|||
selector\ value:value:value:value:
|
||||
|
||||
M: object selector-value call( -- result ) ;
|
||||
M: object selector-value: call( input -- result ) ;
|
||||
M: object selector-value:value: call( input input -- result ) ;
|
||||
M: object selector-value:value:value: call( input input input -- result ) ;
|
||||
M: object selector-value:value:value:value: call( input input input input -- result ) ;
|
||||
M: object \ selector-value: call( input -- result ) ;
|
||||
M: object \ selector-value:value: call( input input -- result ) ;
|
||||
M: object \ selector-value:value:value: call( input input input -- result ) ;
|
||||
M: object \ selector-value:value:value:value: call( input input input input -- result ) ;
|
||||
|
||||
selector\ new
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ SYMBOLS: unary binary keyword ;
|
|||
: selector-type ( selector -- type )
|
||||
{
|
||||
{ [ dup [ "~!@%&*-+=|\\<>,?/" member? ] all? ] [ binary ] }
|
||||
{ [ char: : over member? ] [ keyword ] }
|
||||
{ [ char: \: over member? ] [ keyword ] }
|
||||
[ unary ]
|
||||
} cond nip ;
|
||||
|
||||
|
@ -17,7 +17,7 @@ SYMBOLS: unary binary keyword ;
|
|||
dup selector-type {
|
||||
{ unary [ drop { } ] }
|
||||
{ binary [ drop { "x" } ] }
|
||||
{ keyword [ [ char: : = ] count "x" <array> ] }
|
||||
{ keyword [ [ char: \: = ] count "x" <array> ] }
|
||||
} case "receiver" suffix { "result" } <effect> ;
|
||||
|
||||
: selector>generic ( selector -- generic )
|
||||
|
@ -25,5 +25,4 @@ SYMBOLS: unary binary keyword ;
|
|||
[ selector>effect ]
|
||||
bi define-simple-generic ;
|
||||
|
||||
SYNTAX: SELECTOR: scan-token selector>generic drop ;
|
||||
SYNTAX: selector\ scan-token selector>generic drop ;
|
||||
SYNTAX: \ selector\ scan-token selector>generic drop ;
|
||||
|
|
|
@ -562,7 +562,7 @@ CONSTANT: google-slides
|
|||
"Put your prejudices aside and give it a shot!"
|
||||
}
|
||||
{ $slide "Questions?" }
|
||||
}
|
||||
} ;
|
||||
|
||||
: google-talk ( -- )
|
||||
google-slides "Google Tech talk" slides-window ;
|
||||
|
|
|
@ -71,7 +71,7 @@ in: cocoa.subclassing
|
|||
TUPLE: cocoa-protocol name ;
|
||||
C: <cocoa-protocol> cocoa-protocol ;
|
||||
|
||||
SYNTAX: \ COCOA-PROTOCOL:
|
||||
SYNTAX: \ cocoa-protocol:
|
||||
scan-token <cocoa-protocol> suffix! ;
|
||||
|
||||
SYNTAX: \ CLASS:
|
||||
|
|
|
@ -79,7 +79,7 @@ M: game-world apply-world-attributes
|
|||
: define-attributes-word ( word tuple -- )
|
||||
[ name>> "-attributes" append create-word-in ] dip define-constant ;
|
||||
|
||||
SYNTAX: GAME:
|
||||
SYNTAX: \ GAME:
|
||||
scan-new-word
|
||||
game-attributes parse-window-attributes
|
||||
2dup define-attributes-word
|
||||
|
|
|
@ -23,20 +23,20 @@ STRUCT: bunny-vertex-struct
|
|||
{ vertex float-4 }
|
||||
{ normal float-4 } ;
|
||||
|
||||
GLSL-SHADER-FILE: bunny-vertex-shader vertex-shader "bunny.v.glsl"
|
||||
GLSL-SHADER-FILE: bunny-fragment-shader fragment-shader "bunny.f.glsl"
|
||||
GLSL-SHADER-FILE: bunny-vertex-shader vertex-shader "bunny.v.glsl" ;
|
||||
GLSL-SHADER-FILE: bunny-fragment-shader fragment-shader "bunny.f.glsl" ;
|
||||
GLSL-PROGRAM: bunny-program
|
||||
bunny-vertex-shader bunny-fragment-shader
|
||||
bunny-vertex ;
|
||||
|
||||
GLSL-SHADER-FILE: window-vertex-shader vertex-shader "window.v.glsl"
|
||||
GLSL-SHADER-FILE: window-vertex-shader vertex-shader "window.v.glsl" ;
|
||||
|
||||
GLSL-SHADER-FILE: sobel-fragment-shader fragment-shader "sobel.f.glsl"
|
||||
GLSL-SHADER-FILE: sobel-fragment-shader fragment-shader "sobel.f.glsl" ;
|
||||
GLSL-PROGRAM: sobel-program
|
||||
window-vertex-shader sobel-fragment-shader
|
||||
window-vertex-format ;
|
||||
|
||||
GLSL-SHADER-FILE: loading-fragment-shader fragment-shader "loading.f.glsl"
|
||||
GLSL-SHADER-FILE: loading-fragment-shader fragment-shader "loading.f.glsl" ;
|
||||
GLSL-PROGRAM: loading-program
|
||||
window-vertex-shader loading-fragment-shader
|
||||
window-vertex-format ;
|
||||
|
|
|
@ -6,8 +6,8 @@ method-chains sequences ui ui.gadgets ui.gadgets.worlds
|
|||
ui.pixel-formats audio.engine audio.loader locals ;
|
||||
in: gpu.demos.raytrace
|
||||
|
||||
GLSL-SHADER-FILE: raytrace-vertex-shader vertex-shader "raytrace.v.glsl"
|
||||
GLSL-SHADER-FILE: raytrace-fragment-shader fragment-shader "raytrace.f.glsl"
|
||||
GLSL-SHADER-FILE: raytrace-vertex-shader vertex-shader "raytrace.v.glsl" ;
|
||||
GLSL-SHADER-FILE: raytrace-fragment-shader fragment-shader "raytrace.f.glsl" ;
|
||||
GLSL-PROGRAM: raytrace-program
|
||||
raytrace-vertex-shader raytrace-fragment-shader
|
||||
window-vertex-format ;
|
||||
|
|
|
@ -536,7 +536,7 @@ PRIVATE>
|
|||
: define-uniform-tuple ( class superclass uniforms -- )
|
||||
(define-uniform-tuple) ; inline
|
||||
|
||||
SYNTAX: UNIFORM-TUPLE:
|
||||
SYNTAX: \ UNIFORM-TUPLE:
|
||||
parse-uniform-tuple-definition define-uniform-tuple ;
|
||||
|
||||
<PRIVATE
|
||||
|
|
|
@ -35,7 +35,7 @@ HELP: GLSL-PROGRAM:
|
|||
{ $notes "Transform feedback requires OpenGL 3.0 or one of the " { $snippet "GL_EXT_transform_feedback" } " or " { $snippet "GL_ARB_transform_feedback" } " extensions." } ;
|
||||
|
||||
HELP: GLSL-SHADER-FILE:
|
||||
{ $syntax "GLSL-SHADER-FILE: shader-name shader-kind \"filename\"" }
|
||||
{ $syntax "GLSL-SHADER-FILE: shader-name shader-kind \"filename\" ;" }
|
||||
{ $description "Defines a new " { $link shader } " of kind " { $link shader-kind } " named " { $snippet "shader-name" } ". The shader will read its source code from " { $snippet "filename" } " in the current Factor source file's directory." } ;
|
||||
|
||||
HELP: GLSL-SHADER:
|
||||
|
|
|
@ -352,7 +352,7 @@ PRIVATE>
|
|||
]
|
||||
[ "vertex-format-attributes" set-word-prop ] 2bi ;
|
||||
|
||||
SYNTAX: VERTEX-FORMAT:
|
||||
SYNTAX: \ VERTEX-FORMAT:
|
||||
scan-new-class parse-definition
|
||||
[ first4 vertex-attribute boa ] map
|
||||
define-vertex-format ;
|
||||
|
@ -361,7 +361,7 @@ SYNTAX: VERTEX-FORMAT:
|
|||
vertex-format-attributes [ vertex-attribute>struct-slot ] map
|
||||
define-struct-class ;
|
||||
|
||||
SYNTAX: VERTEX-STRUCT:
|
||||
SYNTAX: \ VERTEX-STRUCT:
|
||||
scan-new-class scan-word define-vertex-struct ;
|
||||
|
||||
TUPLE: vertex-array-object < gpu-object
|
||||
|
@ -544,9 +544,9 @@ TUPLE: feedback-format
|
|||
|
||||
PRIVATE>
|
||||
|
||||
SYNTAX: feedback-format:
|
||||
SYNTAX: \ feedback-format:
|
||||
scan-object feedback-format boa suffix! ;
|
||||
SYNTAX: geometry-shader-vertices-out:
|
||||
SYNTAX: \ geometry-shader-vertices-out:
|
||||
scan-object geometry-shader-vertices-out boa suffix! ;
|
||||
|
||||
TYPED:: refresh-program ( program: program -- )
|
||||
|
@ -585,7 +585,7 @@ TYPED: <program-instance> ( program: program -- instance: program-instance )
|
|||
|
||||
PRIVATE>
|
||||
|
||||
SYNTAX: GLSL-SHADER:
|
||||
SYNTAX: \ GLSL-SHADER:
|
||||
scan-new dup
|
||||
dup old-instances [
|
||||
scan-word
|
||||
|
@ -597,11 +597,11 @@ SYNTAX: GLSL-SHADER:
|
|||
over reset-generic
|
||||
define-constant ;
|
||||
|
||||
SYNTAX: GLSL-SHADER-FILE:
|
||||
SYNTAX: \ GLSL-SHADER-FILE:
|
||||
scan-new dup
|
||||
dup old-instances [
|
||||
scan-word execute( -- kind )
|
||||
scan-object in-word's-path
|
||||
scan-object ";" expect in-word's-path
|
||||
0
|
||||
over ascii file-contents
|
||||
] dip
|
||||
|
@ -609,7 +609,7 @@ SYNTAX: GLSL-SHADER-FILE:
|
|||
over reset-generic
|
||||
define-constant ;
|
||||
|
||||
SYNTAX: GLSL-PROGRAM:
|
||||
SYNTAX: \ GLSL-PROGRAM:
|
||||
scan-new dup
|
||||
dup old-instances [
|
||||
f
|
||||
|
|
|
@ -161,7 +161,7 @@ CONSTANT: selector>action H{
|
|||
[ swap world-focus parents-handle-gesture? t ] [ drop f f ] if* ;
|
||||
|
||||
CLASS: FactorView < NSOpenGLView
|
||||
COCOA-PROTOCOL: NSTextInput
|
||||
cocoa-protocol: NSTextInput
|
||||
|
||||
METHOD: void prepareOpenGL [
|
||||
self super-send\ prepareOpenGL
|
||||
|
|
|
@ -357,7 +357,7 @@ CONSTANT: window-controls>decor-flags
|
|||
{ normal-title-bar $ GDK_DECOR_TITLE }
|
||||
{ textured-background 0 }
|
||||
{ dialog-window 0 }
|
||||
}
|
||||
} ;
|
||||
|
||||
CONSTANT: window-controls>func-flags
|
||||
H{
|
||||
|
@ -369,7 +369,7 @@ CONSTANT: window-controls>func-flags
|
|||
{ normal-title-bar 0 }
|
||||
{ textured-background 0 }
|
||||
{ dialog-window 0 }
|
||||
}
|
||||
} ;
|
||||
|
||||
: set-window-hint ( win controls -- )
|
||||
{
|
||||
|
|
|
@ -229,13 +229,13 @@ HOOK: system-alert ui-backend ( caption text -- ) ;
|
|||
: define-window ( word attributes quot -- )
|
||||
'[ [ f _ clone @ open-window ] with-ui ] ( -- ) define-declared ;
|
||||
|
||||
SYNTAX: WINDOW:
|
||||
SYNTAX: \ WINDOW:
|
||||
scan-new-word
|
||||
world-attributes parse-window-attributes
|
||||
parse-definition
|
||||
define-window ;
|
||||
|
||||
SYNTAX: MAIN-WINDOW:
|
||||
SYNTAX: \ MAIN-WINDOW:
|
||||
scan-new-word
|
||||
world-attributes parse-window-attributes
|
||||
parse-definition
|
||||
|
|
|
@ -128,8 +128,8 @@ VERTEX-FORMAT: wire-vertex-format
|
|||
{ f float-components 1 f }
|
||||
{ "color" float-components 4 f } ;
|
||||
|
||||
GLSL-SHADER-FILE: gml-viewer-vertex-shader vertex-shader "viewer.v.glsl"
|
||||
GLSL-SHADER-FILE: gml-viewer-fragment-shader fragment-shader "viewer.f.glsl"
|
||||
GLSL-SHADER-FILE: gml-viewer-vertex-shader vertex-shader "viewer.v.glsl" ;
|
||||
GLSL-SHADER-FILE: gml-viewer-fragment-shader fragment-shader "viewer.f.glsl" ;
|
||||
GLSL-PROGRAM: gml-viewer-program
|
||||
gml-viewer-vertex-shader gml-viewer-fragment-shader
|
||||
wire-vertex-format ;
|
||||
|
|
|
@ -24,22 +24,16 @@
|
|||
} diff
|
||||
[ dup <vocab-link> . flush vocab>literals ] map-zip
|
||||
|
||||
|
||||
"resource:frameworks" vocabs-from
|
||||
{ "ui.theme.switching" "ui.backend.cocoa.views" "ui.backend.cocoa.tools"
|
||||
"ui.backend.gtk" "ui.backend.cocoa" "gpu.demos.raytrace" "gpu.demos.bunny"
|
||||
"gpu.shaders" "gpu.render" "game.worlds" "ui" "db.postgresql.errors" } diff
|
||||
{ } diff
|
||||
[ dup <vocab-link> . flush vocab>literals ] map-zip
|
||||
|
||||
"resource:tools" vocabs-from
|
||||
{ "help.syntax" "help.tips" "tools.test" "tools.walker"
|
||||
"vocabs.git" } diff
|
||||
{ } diff
|
||||
[ dup <vocab-link> . flush vocab>literals ] map-zip
|
||||
|
||||
"resource:demos" vocabs-from
|
||||
{ "talks.vpri-talk" "talks.tc-lisp-talk" "talks.minneapolis-talk" "talks.google-tech-talk"
|
||||
"talks.galois-talk" "talks.otug-talk" "smalltalk.selectors" "smalltalk.parser"
|
||||
"smalltalk.library" "bunny.outlined" "project-euler.common" } diff
|
||||
{ "bunny.outlined" "smalltalk.library" "talks.tc-lisp-talk" } diff
|
||||
[ dup <vocab-link> . flush vocab>literals ] map-zip
|
||||
|
||||
in: syntax
|
||||
|
|
|
@ -4,7 +4,7 @@ USING: accessors arrays compiler.units definitions help
|
|||
help.topics kernel math parser sequences vocabs.parser words ;
|
||||
in: help.syntax
|
||||
|
||||
SYNTAX: HELP:
|
||||
SYNTAX: \ HELP:
|
||||
scan-escaped-word bootstrap-word
|
||||
[ >link save-location ]
|
||||
[ [ \ ; parse-until >array ] dip set-word-help ]
|
||||
|
@ -12,7 +12,7 @@ SYNTAX: HELP:
|
|||
|
||||
ERROR: article-expects-name-and-title got ;
|
||||
|
||||
SYNTAX: ARTICLE:
|
||||
SYNTAX: \ ARTICLE:
|
||||
location [
|
||||
\ ; parse-until >array
|
||||
dup length 2 < [ article-expects-name-and-title ] when
|
||||
|
@ -20,7 +20,5 @@ SYNTAX: ARTICLE:
|
|||
over add-article >link
|
||||
] dip remember-definition ;
|
||||
|
||||
SYNTAX: ABOUT:
|
||||
current-vocab scan-object >>help changed-definition ;
|
||||
SYNTAX: about:
|
||||
SYNTAX: \ about:
|
||||
current-vocab scan-object >>help changed-definition ;
|
||||
|
|
|
@ -21,7 +21,7 @@ M: tip set-where loc<< ;
|
|||
|
||||
: add-tip ( tip -- ) tips get push ;
|
||||
|
||||
SYNTAX: TIP:
|
||||
SYNTAX: \ TIP:
|
||||
parse-definition >array <tip>
|
||||
[ save-location ] [ add-tip ] bi ;
|
||||
|
||||
|
|
|
@ -108,13 +108,7 @@ MACRO: <experiment> ( word -- quot )
|
|||
|
||||
<<
|
||||
|
||||
SYNTAX: TEST:
|
||||
scan-token
|
||||
[ create-word-in ]
|
||||
[ "(" ")" surround search '[ _ parse-test ] ] bi
|
||||
define-syntax ;
|
||||
|
||||
SYNTAX: test:
|
||||
SYNTAX: \ test:
|
||||
scan-token
|
||||
[ create-word-in ]
|
||||
[ "(" ")" surround search '[ _ parse-test ] ] bi
|
||||
|
|
|
@ -169,6 +169,6 @@ in: syntax
|
|||
|
||||
SYNTAX: B \ break suffix! ;
|
||||
|
||||
SYNTAX: B: scan-word definition
|
||||
SYNTAX: \ B: scan-word definition
|
||||
[ break "now press O I to land inside the parsing word" drop ]
|
||||
prepose call( accum -- accum ) ;
|
||||
|
|
|
@ -25,4 +25,4 @@ ERROR: git-revision-not-found path ;
|
|||
[ [ input-stream get swap parse-stream call( -- ) ] with-git-object-stream ]
|
||||
[ git-revision-not-found ] if* ;
|
||||
|
||||
SYNTAX: USE-REV: scan-token scan-token use-vocab-rev ;
|
||||
SYNTAX: \ USE-REV: scan-token scan-token ";" expect use-vocab-rev ;
|
||||
|
|
Loading…
Reference in New Issue