Merge branch 'master' of factorcode.org:/git/factor

db4
Joe Groff 2011-03-15 11:18:12 -07:00
commit 54f26a90eb
11 changed files with 87 additions and 46 deletions

View File

@ -23,7 +23,7 @@ HELP: output>array
{ "quot" quotation } { "quot" quotation }
{ "newquot" quotation } { "newquot" quotation }
} }
{ $description "Infers the number or outputs from the quotation and constructs an array from those outputs." } { $description "Infers the number of outputs from the quotation and constructs an array from those outputs." }
{ $examples { $examples
{ $example { $example
"USING: combinators combinators.smart math prettyprint ; "USING: combinators combinators.smart math prettyprint ;

View File

@ -139,7 +139,7 @@ HELP: select-tuples
{ $values { $values
{ "query/tuple" tuple } { "query/tuple" tuple }
{ "tuples" "an array of tuples" } } { "tuples" "an array of tuples" } }
{ $description "A SQL query is constructed from the slots of the exemplar tuple that are not " { $link f } ". Returns a multiple tuples from the database that match the query constructed from the exemplar tuple." } ; { $description "A SQL query is constructed from the slots of the exemplar tuple that are not " { $link f } ". Returns an array of multiple tuples from the database that match the query constructed from the exemplar tuple." } ;
HELP: count-tuples HELP: count-tuples
{ $values { $values

View File

@ -3,7 +3,7 @@
USING: accessors arrays assocs fry help.markup help.topics io USING: accessors arrays assocs fry help.markup help.topics io
kernel make math math.parser namespaces sequences sorting kernel make math math.parser namespaces sequences sorting
summary tools.completion vocabs.hierarchy help.vocabs summary tools.completion vocabs.hierarchy help.vocabs
vocabs words unicode.case help ; vocabs words unicode.case help unicode.categories ;
IN: help.apropos IN: help.apropos
: $completions ( seq -- ) : $completions ( seq -- )
@ -71,4 +71,4 @@ M: apropos >link ;
INSTANCE: apropos topic INSTANCE: apropos topic
: apropos ( str -- ) : apropos ( str -- )
<apropos> print-topic nl ; [ blank? ] trim <apropos> print-topic nl ;

View File

@ -113,7 +113,7 @@ ARTICLE: { "regexp" "syntax" } "Regular expression syntax"
"To make it convenient to have a long string which uses regexp operators, a special syntax is provided. If a substring begins with " { $snippet "\\Q" } " then everything until " { $snippet "\\E" } " is quoted (escaped). For example, " { $snippet "R/ \\Qfoo\\bar|baz()\\E/" } " matches exactly the string " { $snippet "\"foo\\bar|baz()\"" } "." "To make it convenient to have a long string which uses regexp operators, a special syntax is provided. If a substring begins with " { $snippet "\\Q" } " then everything until " { $snippet "\\E" } " is quoted (escaped). For example, " { $snippet "R/ \\Qfoo\\bar|baz()\\E/" } " matches exactly the string " { $snippet "\"foo\\bar|baz()\"" } "."
{ $heading "Unsupported features" } { $heading "Unsupported features" }
{ $subheading "Group capture" } { $subheading "Group capture" }
{ $subheading "Reluctant and posessive quantifiers" } { $subheading "Reluctant and possessive quantifiers" }
{ $subheading "Backreferences" } { $subheading "Backreferences" }
"Backreferences were omitted because of a design decision to allow only regular expressions following the formal theory of regular languages. For more information, see " { $link { "regexp" "theory" } } "." "Backreferences were omitted because of a design decision to allow only regular expressions following the formal theory of regular languages. For more information, see " { $link { "regexp" "theory" } } "."
$nl $nl

View File

@ -37,7 +37,7 @@ $nl
{ $code "'[ 2 _ + ]" } ; { $code "'[ 2 _ + ]" } ;
ARTICLE: "namespaces-make" "Making sequences with variables" ARTICLE: "namespaces-make" "Making sequences with variables"
"The " { $vocab-link "make" } " vocabulary implements a facility for constructing sequences by holding an collector sequence in a variable. Storing the collector sequence in a variable rather than the stack may allow code to be written with less stack manipulation." "The " { $vocab-link "make" } " vocabulary implements a facility for constructing sequences by holding a collector sequence in a variable. Storing the collector sequence in a variable rather than the stack may allow code to be written with less stack manipulation."
$nl $nl
"Sequence construction is wrapped in a combinator:" "Sequence construction is wrapped in a combinator:"
{ $subsections make } { $subsections make }

View File

@ -1,7 +1,7 @@
! Copyright (C) 2009 Doug Coleman. ! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs calendar fry kernel parser sequences USING: accessors assocs calendar fry kernel locals parser
shuffle vocabs words memoize ; sequences vocabs words memoize ;
IN: calendar.holidays IN: calendar.holidays
SINGLETONS: all world commonwealth-of-nations ; SINGLETONS: all world commonwealth-of-nations ;
@ -15,7 +15,8 @@ SYNTAX: HOLIDAY:
parse-definition (( timestamp/n -- timestamp )) define-declared ; parse-definition (( timestamp/n -- timestamp )) define-declared ;
SYNTAX: HOLIDAY-NAME: SYNTAX: HOLIDAY-NAME:
scan-word "holiday" word-prop scan-word scan-object spin set-at ; [let scan-word "holiday" word-prop :> holidays scan-word :> name scan-object :> value
value name holidays set-at ] ;
>> >>
GENERIC: holidays ( n singleton -- seq ) GENERIC: holidays ( n singleton -- seq )

View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs calendar calendar.holidays USING: accessors assocs calendar calendar.holidays
calendar.holidays.private combinators combinators.short-circuit calendar.holidays.private combinators combinators.short-circuit
fry kernel lexer math namespaces parser sequences shuffle fry kernel lexer math namespaces parser sequences
vocabs words ; vocabs words ;
IN: calendar.holidays.us IN: calendar.holidays.us

View File

@ -3,7 +3,8 @@
USING: accessors furnace.actions furnace.redirection USING: accessors furnace.actions furnace.redirection
html.forms http http.server http.server.dispatchers html.forms http http.server http.server.dispatchers
io.directories io.encodings.utf8 io.files io.pathnames io.directories io.encodings.utf8 io.files io.pathnames
kernel math.parser multiline namespaces sequences urls ; kernel math.parser multiline namespaces sequences urls
math ;
IN: webapps.imagebin IN: webapps.imagebin
TUPLE: imagebin < dispatcher path n ; TUPLE: imagebin < dispatcher path n ;
@ -14,13 +15,13 @@ TUPLE: imagebin < dispatcher path n ;
: next-image-path ( -- path ) : next-image-path ( -- path )
imagebin get imagebin get
[ path>> ] [ n>> number>string ] bi append-path ; [ path>> ] [ [ 1 + ] change-n n>> number>string ] bi append-path ;
M: imagebin call-responder* M: imagebin call-responder*
[ imagebin set ] [ call-next-method ] bi ; [ imagebin set ] [ call-next-method ] bi ;
: move-image ( mime-file -- ) : move-image ( mime-file -- )
next-image-path [ next-image-path dup exists? ] [ drop ] while
[ [ temporary-path>> ] dip move-file ] [ [ temporary-path>> ] dip move-file ]
[ [ filename>> ] dip ".txt" append utf8 set-file-contents ] 2bi ; [ [ filename>> ] dip ".txt" append utf8 set-file-contents ] 2bi ;

View File

@ -10,10 +10,10 @@ IN: factor.vim.fgen
%> %>
" Vim syntax file " Vim syntax file
" Language: factor " Language: Factor
" Maintainer: Alex Chapman <chapman.alex@gmail.com> " Maintainer: Alex Chapman <chapman.alex@gmail.com>
" Last Change: 2009 May 19 " Last Change: 2011 Mar 15
" To run: USE: html.templates.fhtml "resource:misc/factor.vim.fgen" <fhtml> call-template " To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@ -33,11 +33,11 @@ else
set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
endif endif
syn cluster factorCluster contains=factorComment,factorFryDirective,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorCompileDirective,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorTuple,factorStruct syn cluster factorCluster contains=factorComment,factorFrySpecifier,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorBreakpoint,factorDeclaration,factorCallQuotation,factorExecute,factorCallNextMethod,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorSlot,factorTuple,factorStruct
syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained
syn match factorComment /\<#!\>.*/ contains=factorTodo syn match factorComment /\<#!\>\s.*/ contains=factorTodo
syn match factorComment /\<!\>.*/ contains=factorTodo syn match factorComment /\<!\>\s.*/ contains=factorTodo
syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0 syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0
@ -55,8 +55,12 @@ syn region None matchgroup=factorPrivate start=/\<<PRIVATE\>/ end=/\<PRIVATE>\>/
syn keyword factorBoolean f t syn keyword factorBoolean f t
syn match factorFryDirective /\<\(@\|_\)\>/ contained syn keyword factorBreakpoint B
syn keyword factorCompileDirective inline foldable recursive syn keyword factorFrySpecifier @ _ contained
syn keyword factorDeclaration delimiter deprecated final flushable foldable inline recursive
syn match factorCallQuotation /\<call(\s.*\s--\s.*\s)\>/
syn match factorExecute /\<execute(\s.*\s--\s.*\s)\>/
syn keyword factorCallNextMethod call-next-method
<% <%
@ -101,16 +105,20 @@ syn region factorLiteralBlock start=/\<\$\[\>/ end=/\<\]\>/
syn region factorUsing start=/\<USING:\>/ end=/;/ syn region factorUsing start=/\<USING:\>/ end=/;/
syn match factorQualified /\<QUALIFIED:\s\+\S\+\>/ syn match factorQualified /\<QUALIFIED:\s\+\S\+\>/
syn match factorQualifiedWith /\<QUALIFIED-WITH:\s\+\S\+\s\+\S\+\>/ syn match factorQualifiedWith /\<QUALIFIED-WITH:\s\+\S\+\s\+\S\+\>/
syn region factorExclude start=/\<EXCLUDE:\>/ end=/;/
syn region factorFrom start=/\<FROM:\>/ end=/;/ syn region factorFrom start=/\<FROM:\>/ end=/;/
syn region factorRename start=/\<RENAME:\>/ end=/;/
syn region factorSingletons start=/\<SINGLETONS:\>/ end=/;/ syn region factorSingletons start=/\<SINGLETONS:\>/ end=/;/
syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/ syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/
syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/ syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/
syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/ syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/
syn region factorIntersection start=/\<INTERSECTION:\>/ end=/\<;\>/
syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/ syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/
syn region factorUnion start=/\<UNION:\>/ end=/\<;\>/
syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/ syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/
syn match factorConstant /\<CONSTANT:\s\+\S\+\>/ syn match factorConstant /\<CONSTANT:\s\+\S\+\>/
syn match factorAlias /\<ALIAS:\s\+\S\+\>/ syn match factorAlias /\<ALIAS:\s\+\S\+\s\+\S\+\>/
syn match factorSingleton /\<SINGLETON:\s\+\S\+\>/ syn match factorSingleton /\<SINGLETON:\s\+\S\+\>/
syn match factorPostpone /\<POSTPONE:\s\+\S\+\>/ syn match factorPostpone /\<POSTPONE:\s\+\S\+\>/
syn match factorDefer /\<DEFER:\s\+\S\+\>/ syn match factorDefer /\<DEFER:\s\+\S\+\>/
@ -121,6 +129,7 @@ syn match factorHook /\<HOOK:\s\+\S\+\s\+\S\+\>/
syn match factorMain /\<MAIN:\s\+\S\+\>/ syn match factorMain /\<MAIN:\s\+\S\+\>/
syn match factorConstructor /\<C:\s\+\S\+\s\+\S\+\>/ syn match factorConstructor /\<C:\s\+\S\+\s\+\S\+\>/
syn match factorAlien /\<ALIEN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/ syn match factorAlien /\<ALIEN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/
syn match factorSlot /\<SLOT:\s\+\S\+\>/
syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor
@ -140,7 +149,7 @@ syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingle
syn region factorString start=/\<"/ skip=/\\"/ end=/"/ syn region factorString start=/\<"/ skip=/\\"/ end=/"/
syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/ syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/
syn region factorSbuf start=/\<SBUF"\>/ skip=/\\"/ end=/"/ syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/
syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
syn match factorMultiStringContents /.*/ contained syn match factorMultiStringContents /.*/ contained
@ -148,11 +157,11 @@ syn match factorMultiStringContents /.*/ contained
"syn match factorStackEffectErr /\<)\>/ "syn match factorStackEffectErr /\<)\>/
"syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/ "syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/
"syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained "syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained
syn match factorStackEffect /\<( .*--.* )\>/ contained syn match factorStackEffect /\<(\s.*\s--\s.*\s)\>/ contained
syn match factorLiteralStackEffect /\<(( .*--.* ))\>/ syn match factorLiteralStackEffect /\<((\s.*\s--\s.*\s))\>/
"adapted from lisp.vim "adapted from lisp.vim
if exists("g:factor_norainbow") if exists("g:factor_norainbow")
syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL
else else
syn region factorQuotation0 matchgroup=hlLevel0 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1 syn region factorQuotation0 matchgroup=hlLevel0 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1
@ -167,7 +176,7 @@ else
syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0 syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0
endif endif
if exists("g:factor_norainbow") if exists("g:factor_norainbow")
syn region factorArray matchgroup=factorDelimiter start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ matchgroup=factorDelimiter end=/\<}\>/ contains=ALL syn region factorArray matchgroup=factorDelimiter start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ matchgroup=factorDelimiter end=/\<}\>/ contains=ALL
else else
syn region factorArray0 matchgroup=hlLevel0 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray1,factorQuotation1 syn region factorArray0 matchgroup=hlLevel0 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray1,factorQuotation1
@ -203,9 +212,13 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorRepeat Repeat HiLink factorRepeat Repeat
HiLink factorConditional Conditional HiLink factorConditional Conditional
HiLink factorKeyword Keyword HiLink factorKeyword Keyword
HiLink factorCallQuotation Keyword
HiLink factorExecute Keyword
HiLink factorCallNextMethod Keyword
HiLink factorOperator Operator HiLink factorOperator Operator
HiLink factorFryDirective Operator HiLink factorFrySpecifier Operator
HiLink factorBoolean Boolean HiLink factorBoolean Boolean
HiLink factorBreakpoint Debug
HiLink factorDefnDelims Typedef HiLink factorDefnDelims Typedef
HiLink factorMethodDelims Typedef HiLink factorMethodDelims Typedef
HiLink factorGenericDelims Typedef HiLink factorGenericDelims Typedef
@ -237,7 +250,9 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorUsing Include HiLink factorUsing Include
HiLink factorQualified Include HiLink factorQualified Include
HiLink factorQualifiedWith Include HiLink factorQualifiedWith Include
HiLink factorExclude Include
HiLink factorFrom Include HiLink factorFrom Include
HiLink factorRename Include
HiLink factorUse Include HiLink factorUse Include
HiLink factorUnuse Include HiLink factorUnuse Include
HiLink factorIn Define HiLink factorIn Define
@ -246,9 +261,11 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorBackslash Special HiLink factorBackslash Special
HiLink factorLiteral Special HiLink factorLiteral Special
HiLink factorLiteralBlock Special HiLink factorLiteralBlock Special
HiLink factorCompileDirective Typedef HiLink factorDeclaration Typedef
HiLink factorSymbol Define HiLink factorSymbol Define
HiLink factorSymbols Define
HiLink factorConstant Define HiLink factorConstant Define
HiLink factorAlias Define
HiLink factorSingleton Define HiLink factorSingleton Define
HiLink factorSingletons Define HiLink factorSingletons Define
HiLink factorMixin Typedef HiLink factorMixin Typedef
@ -259,7 +276,10 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorDefer Define HiLink factorDefer Define
HiLink factorForget Define HiLink factorForget Define
HiLink factorAlien Define HiLink factorAlien Define
HiLink factorSlot Define
HiLink factorIntersection Typedef
HiLink factorTuple Typedef HiLink factorTuple Typedef
HiLink factorUnion Typedef
HiLink factorStruct Typedef HiLink factorStruct Typedef
if &bg == "dark" if &bg == "dark"

View File

@ -1,9 +1,8 @@
" Vim syntax file " Vim syntax file
" Language: factor " Language: Factor
" Maintainer: Alex Chapman <chapman.alex@gmail.com> " Maintainer: Alex Chapman <chapman.alex@gmail.com>
" Last Change: 2009 May 19 " Last Change: 2011 Mar 15
" To run: USE: html.templates.fhtml "resource:misc/factor.vim.fgen" <fhtml> call-template " To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
" For version 5.x: Clear all syntax items " For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded " For version 6.x: Quit when a syntax file was already loaded
@ -23,11 +22,11 @@ else
set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255 set iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
endif endif
syn cluster factorCluster contains=factorComment,factorFryDirective,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorCompileDirective,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorTuple,factorStruct syn cluster factorCluster contains=factorComment,factorFrySpecifier,factorKeyword,factorRepeat,factorConditional,factorBoolean,factorBreakpoint,factorDeclaration,factorCallQuotation,factorExecute,factorCallNextMethod,factorString,factorTriString,factorSbuf,@factorNumber,@factorNumErr,factorDelimiter,factorChar,factorBackslash,factorLiteral,factorLiteralBlock,@factorWordOps,factorAlien,factorSlot,factorTuple,factorStruct
syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained syn match factorTodo /\(TODO\|FIXME\|XXX\):\=/ contained
syn match factorComment /\<#!\>.*/ contains=factorTodo syn match factorComment /\<#!\>\s.*/ contains=factorTodo
syn match factorComment /\<!\>.*/ contains=factorTodo syn match factorComment /\<!\>\s.*/ contains=factorTodo
syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0 syn cluster factorDefnContents contains=@factorCluster,factorStackEffect,factorLiteralStackEffect,factorArray0,factorQuotation0
@ -45,8 +44,12 @@ syn region None matchgroup=factorPrivate start=/\<<PRIVATE\>/ end=/\<PRIVATE>\>/
syn keyword factorBoolean f t syn keyword factorBoolean f t
syn match factorFryDirective /\<\(@\|_\)\>/ contained syn keyword factorBreakpoint B
syn keyword factorCompileDirective inline foldable recursive syn keyword factorFrySpecifier @ _ contained
syn keyword factorDeclaration delimiter deprecated final flushable foldable inline recursive
syn match factorCallQuotation /\<call(\s.*\s--\s.*\s)\>/
syn match factorExecute /\<execute(\s.*\s--\s.*\s)\>/
syn keyword factorCallNextMethod call-next-method
syn keyword factorKeyword or 2bi 2tri while wrapper nip 4dip wrapper? bi* callstack>array both? hashcode die dupd callstack callstack? 3dup tri@ pick curry build ?execute 3bi prepose >boolean ?if clone eq? tri* ? = swapd 2over 2keep 3keep clear 2dup when not tuple? dup 2bi* 2tri* call tri-curry object bi@ do unless* if* loop bi-curry* drop when* assert= retainstack assert? -rot execute 2bi@ 2tri@ boa with either? 3drop bi curry? datastack until 3dip over 3curry tri-curry* tri-curry@ swap and 2nip throw bi-curry (clone) hashcode* compose 2dip if 3tri unless compose? tuple keep 2curry equal? assert tri 2drop most <wrapper> boolean? identity-hashcode identity-tuple? null new dip bi-curry@ rot xor identity-tuple boolean syn keyword factorKeyword or 2bi 2tri while wrapper nip 4dip wrapper? bi* callstack>array both? hashcode die dupd callstack callstack? 3dup tri@ pick curry build ?execute 3bi prepose >boolean ?if clone eq? tri* ? = swapd 2over 2keep 3keep clear 2dup when not tuple? dup 2bi* 2tri* call tri-curry object bi@ do unless* if* loop bi-curry* drop when* assert= retainstack assert? -rot execute 2bi@ 2tri@ boa with either? 3drop bi curry? datastack until 3dip over 3curry tri-curry* tri-curry@ swap and 2nip throw bi-curry (clone) hashcode* compose 2dip if 3tri unless compose? tuple keep 2curry equal? assert tri 2drop most <wrapper> boolean? identity-hashcode identity-tuple? null new dip bi-curry@ rot xor identity-tuple boolean
syn keyword factorKeyword ?at assoc? assoc-clone-like assoc= delete-at* assoc-partition extract-keys new-assoc value? assoc-size map>assoc push-at assoc-like key? assoc-intersect assoc-refine update assoc-union assoc-combine at* assoc-empty? at+ set-at assoc-all? assoc-subset? assoc-hashcode change-at assoc-each assoc-diff zip values value-at rename-at inc-at enum? at cache assoc>map <enum> assoc assoc-map enum value-at* assoc-map-as >alist assoc-filter-as clear-assoc assoc-stack maybe-set-at substitute assoc-filter 2cache delete-at assoc-find keys assoc-any? unzip syn keyword factorKeyword ?at assoc? assoc-clone-like assoc= delete-at* assoc-partition extract-keys new-assoc value? assoc-size map>assoc push-at assoc-like key? assoc-intersect assoc-refine update assoc-union assoc-combine at* assoc-empty? at+ set-at assoc-all? assoc-subset? assoc-hashcode change-at assoc-each assoc-diff zip values value-at rename-at inc-at enum? at cache assoc>map <enum> assoc assoc-map enum value-at* assoc-map-as >alist assoc-filter-as clear-assoc assoc-stack maybe-set-at substitute assoc-filter 2cache delete-at assoc-find keys assoc-any? unzip
@ -89,16 +92,20 @@ syn region factorLiteralBlock start=/\<\$\[\>/ end=/\<\]\>/
syn region factorUsing start=/\<USING:\>/ end=/;/ syn region factorUsing start=/\<USING:\>/ end=/;/
syn match factorQualified /\<QUALIFIED:\s\+\S\+\>/ syn match factorQualified /\<QUALIFIED:\s\+\S\+\>/
syn match factorQualifiedWith /\<QUALIFIED-WITH:\s\+\S\+\s\+\S\+\>/ syn match factorQualifiedWith /\<QUALIFIED-WITH:\s\+\S\+\s\+\S\+\>/
syn region factorExclude start=/\<EXCLUDE:\>/ end=/;/
syn region factorFrom start=/\<FROM:\>/ end=/;/ syn region factorFrom start=/\<FROM:\>/ end=/;/
syn region factorRename start=/\<RENAME:\>/ end=/;/
syn region factorSingletons start=/\<SINGLETONS:\>/ end=/;/ syn region factorSingletons start=/\<SINGLETONS:\>/ end=/;/
syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/ syn match factorSymbol /\<SYMBOL:\s\+\S\+\>/
syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/ syn region factorSymbols start=/\<SYMBOLS:\>/ end=/;/
syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/ syn region factorConstructor2 start=/\<CONSTRUCTOR:\?/ end=/;/
syn region factorIntersection start=/\<INTERSECTION:\>/ end=/\<;\>/
syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/ syn region factorTuple start=/\<TUPLE:\>/ end=/\<;\>/
syn region factorUnion start=/\<UNION:\>/ end=/\<;\>/
syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/ syn region factorStruct start=/\<\(UNION-STRUCT:\|STRUCT:\)\>/ end=/\<;\>/
syn match factorConstant /\<CONSTANT:\s\+\S\+\>/ syn match factorConstant /\<CONSTANT:\s\+\S\+\>/
syn match factorAlias /\<ALIAS:\s\+\S\+\>/ syn match factorAlias /\<ALIAS:\s\+\S\+\s\+\S\+\>/
syn match factorSingleton /\<SINGLETON:\s\+\S\+\>/ syn match factorSingleton /\<SINGLETON:\s\+\S\+\>/
syn match factorPostpone /\<POSTPONE:\s\+\S\+\>/ syn match factorPostpone /\<POSTPONE:\s\+\S\+\>/
syn match factorDefer /\<DEFER:\s\+\S\+\>/ syn match factorDefer /\<DEFER:\s\+\S\+\>/
@ -109,6 +116,7 @@ syn match factorHook /\<HOOK:\s\+\S\+\s\+\S\+\>/
syn match factorMain /\<MAIN:\s\+\S\+\>/ syn match factorMain /\<MAIN:\s\+\S\+\>/
syn match factorConstructor /\<C:\s\+\S\+\s\+\S\+\>/ syn match factorConstructor /\<C:\s\+\S\+\s\+\S\+\>/
syn match factorAlien /\<ALIEN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/ syn match factorAlien /\<ALIEN:\s\+[0-9a-fA-F]\([0-9a-fA-F,]*[0-9a-fA-F]\)\?\>/
syn match factorSlot /\<SLOT:\s\+\S\+\>/
syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingleton,factorSingletons,factorSymbol,factorSymbols,factorPostpone,factorDefer,factorForget,factorMixin,factorInstance,factorHook,factorMain,factorConstructor
@ -136,11 +144,11 @@ syn match factorMultiStringContents /.*/ contained
"syn match factorStackEffectErr /\<)\>/ "syn match factorStackEffectErr /\<)\>/
"syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/ "syn region factorStackEffectErr start=/\<(\>/ end=/\<)\>/
"syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained "syn region factorStackEffect start=/\<(\>/ end=/\<)\>/ contained
syn match factorStackEffect /\<( .*--.* )\>/ contained syn match factorStackEffect /\<(\s.*\s--\s.*\s)\>/ contained
syn match factorLiteralStackEffect /\<(( .*--.* ))\>/ syn match factorLiteralStackEffect /\<((\s.*\s--\s.*\s))\>/
"adapted from lisp.vim "adapted from lisp.vim
if exists("g:factor_norainbow") if exists("g:factor_norainbow")
syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL syn region factorQuotation matchgroup=factorDelimiter start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ matchgroup=factorDelimiter end=/\<\]\>/ contains=ALL
else else
syn region factorQuotation0 matchgroup=hlLevel0 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1 syn region factorQuotation0 matchgroup=hlLevel0 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation1,factorArray1
@ -155,7 +163,7 @@ else
syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0 syn region factorQuotation9 contained matchgroup=hlLevel9 start=/\<\(\(\('\|\$\|\)\[\)\|\[\(let\||\)\)\>/ end=/\<\]\>/ contains=@factorCluster,factorQuotation0,factorArray0
endif endif
if exists("g:factor_norainbow") if exists("g:factor_norainbow")
syn region factorArray matchgroup=factorDelimiter start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ matchgroup=factorDelimiter end=/\<}\>/ contains=ALL syn region factorArray matchgroup=factorDelimiter start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ matchgroup=factorDelimiter end=/\<}\>/ contains=ALL
else else
syn region factorArray0 matchgroup=hlLevel0 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray1,factorQuotation1 syn region factorArray0 matchgroup=hlLevel0 start=/\<\(\$\|[-a-zA-Z0-9]\+\)\?{\>/ end=/\<}\>/ contains=@factorCluster,factorArray1,factorQuotation1
@ -191,9 +199,13 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorRepeat Repeat HiLink factorRepeat Repeat
HiLink factorConditional Conditional HiLink factorConditional Conditional
HiLink factorKeyword Keyword HiLink factorKeyword Keyword
HiLink factorCallQuotation Keyword
HiLink factorExecute Keyword
HiLink factorCallNextMethod Keyword
HiLink factorOperator Operator HiLink factorOperator Operator
HiLink factorFryDirective Operator HiLink factorFrySpecifier Operator
HiLink factorBoolean Boolean HiLink factorBoolean Boolean
HiLink factorBreakpoint Debug
HiLink factorDefnDelims Typedef HiLink factorDefnDelims Typedef
HiLink factorMethodDelims Typedef HiLink factorMethodDelims Typedef
HiLink factorGenericDelims Typedef HiLink factorGenericDelims Typedef
@ -225,7 +237,9 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorUsing Include HiLink factorUsing Include
HiLink factorQualified Include HiLink factorQualified Include
HiLink factorQualifiedWith Include HiLink factorQualifiedWith Include
HiLink factorExclude Include
HiLink factorFrom Include HiLink factorFrom Include
HiLink factorRename Include
HiLink factorUse Include HiLink factorUse Include
HiLink factorUnuse Include HiLink factorUnuse Include
HiLink factorIn Define HiLink factorIn Define
@ -234,9 +248,11 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorBackslash Special HiLink factorBackslash Special
HiLink factorLiteral Special HiLink factorLiteral Special
HiLink factorLiteralBlock Special HiLink factorLiteralBlock Special
HiLink factorCompileDirective Typedef HiLink factorDeclaration Typedef
HiLink factorSymbol Define HiLink factorSymbol Define
HiLink factorSymbols Define
HiLink factorConstant Define HiLink factorConstant Define
HiLink factorAlias Define
HiLink factorSingleton Define HiLink factorSingleton Define
HiLink factorSingletons Define HiLink factorSingletons Define
HiLink factorMixin Typedef HiLink factorMixin Typedef
@ -247,7 +263,10 @@ if version >= 508 || !exists("did_factor_syn_inits")
HiLink factorDefer Define HiLink factorDefer Define
HiLink factorForget Define HiLink factorForget Define
HiLink factorAlien Define HiLink factorAlien Define
HiLink factorSlot Define
HiLink factorIntersection Typedef
HiLink factorTuple Typedef HiLink factorTuple Typedef
HiLink factorUnion Typedef
HiLink factorStruct Typedef HiLink factorStruct Typedef
if &bg == "dark" if &bg == "dark"

View File

@ -10,7 +10,7 @@
package, or checked out Factor sources from the GIT repository.</p> package, or checked out Factor sources from the GIT repository.</p>
<ul> <ul>
<li><a href="http://concatenative.org/wiki/view/Factor/Getting%20started">Getting started</a></li> <li><a href="http://concatenative.org/wiki/view/Factor/Learning">Learning Factor</a></li>
<li><a href="http://concatenative.org/wiki/view/Factor/Requirements">System requirements</a></li> <li><a href="http://concatenative.org/wiki/view/Factor/Requirements">System requirements</a></li>
<li><a href="http://concatenative.org/wiki/view/Factor/Building%20Factor">Building Factor from source</a> (don't do this if you're using a binary package)</li> <li><a href="http://concatenative.org/wiki/view/Factor/Building%20Factor">Building Factor from source</a> (don't do this if you're using a binary package)</li>
</ul> </ul>