factor: clean up almost all the rest of the syntax words.

locals-and-roots
Doug Coleman 2016-06-06 18:18:50 -07:00
parent 06335ae6e7
commit f533d04304
22 changed files with 60 additions and 82 deletions

View File

@ -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

View File

@ -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<< ]

View File

@ -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

View File

@ -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 ;

View File

@ -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 ;

View File

@ -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:

View File

@ -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

View File

@ -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 ;

View File

@ -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 ;

View File

@ -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

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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 -- )
{

View File

@ -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

View File

@ -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 ;

View File

@ -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

View File

@ -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 ;

View File

@ -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 ;

View File

@ -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

View File

@ -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 ) ;

View File

@ -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 ;