diff --git a/Makefile b/Makefile index 77a6fb6409..4228a6f8ad 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,7 @@ default: @echo "openbsd-x86-32" @echo "openbsd-x86-64" @echo "macosx-x86-32" + @echo "macosx-x86-64" @echo "macosx-ppc" @echo "solaris-x86-32" @echo "solaris-x86-64" @@ -92,6 +93,9 @@ macosx-ppc: macosx-freetype macosx-x86-32: macosx-freetype $(MAKE) $(EXECUTABLE) macosx.app CONFIG=vm/Config.macosx.x86.32 +macosx-x86-64: macosx-freetype + $(MAKE) $(EXECUTABLE) macosx.app CONFIG=vm/Config.macosx.x86.64 + linux-x86-32: $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.x86.32 diff --git a/core/alien/compiler/compiler.factor b/core/alien/compiler/compiler.factor index 7495be42ca..29957ac088 100755 --- a/core/alien/compiler/compiler.factor +++ b/core/alien/compiler/compiler.factor @@ -5,8 +5,7 @@ hashtables kernel math namespaces sequences words inference.backend inference.dataflow system math.parser classes alien.arrays alien.c-types alien.structs alien.syntax cpu.architecture alien inspector quotations assocs -kernel.private threads continuations.private libc combinators -init ; +kernel.private threads continuations.private libc combinators ; IN: alien.compiler ! Common protocol for alien-invoke/alien-callback/alien-indirect @@ -302,7 +301,7 @@ M: alien-indirect generate-node ! this hashtable, they will all be blown away by code GC, beware SYMBOL: callbacks -[ H{ } clone callbacks set-global ] "alien.compiler" add-init-hook +callbacks global [ H{ } assoc-like ] change-at : register-callback ( word -- ) dup callbacks get set-at ; diff --git a/core/alien/syntax/syntax.factor b/core/alien/syntax/syntax.factor old mode 100644 new mode 100755 index ed1520e9a1..9b7bc6a214 --- a/core/alien/syntax/syntax.factor +++ b/core/alien/syntax/syntax.factor @@ -59,4 +59,4 @@ M: alien pprint* { [ t ] [ \ ALIEN: [ alien-address pprint* ] pprint-prefix ] } } cond ; -M: dll pprint* dll-path dup "DLL\" " pprint-string ; +M: dll pprint* dll-path dup "DLL\" " "\"" pprint-string ; diff --git a/core/assocs/assocs-tests.factor b/core/assocs/assocs-tests.factor index b38ce82052..8fabee06ef 100644 --- a/core/assocs/assocs-tests.factor +++ b/core/assocs/assocs-tests.factor @@ -87,3 +87,9 @@ unit-test [ H{ { 1 2 } { 3 4 } } ] [ "hi" 5 H{ { 1 2 } { 3 4 } } clone [ rename-at ] keep ] unit-test + +[ + H{ { 1.0 1.0 } { 2.0 2.0 } } +] [ + F{ 1.0 2.0 } [ dup ] H{ } map>assoc +] unit-test diff --git a/core/assocs/assocs.factor b/core/assocs/assocs.factor index 272a763b7b..40b35a931b 100644 --- a/core/assocs/assocs.factor +++ b/core/assocs/assocs.factor @@ -135,7 +135,7 @@ M: assoc assoc-clone-like ( assoc exemplar -- newassoc ) [ 0 or + ] change-at ; : map>assoc ( seq quot exemplar -- assoc ) - >r [ 2array ] compose map r> assoc-like ; inline + >r [ 2array ] compose { } map-as r> assoc-like ; inline M: assoc >alist [ 2array ] { } assoc>map ; diff --git a/core/combinators/combinators.factor b/core/combinators/combinators.factor index 0e214c412a..2c418768c6 100755 --- a/core/combinators/combinators.factor +++ b/core/combinators/combinators.factor @@ -79,6 +79,10 @@ M: sequence hashcode* dup empty? [ drop ] [ - hash-case-table hash-dispatch-quot - [ dup hashcode >fixnum ] swap append + dup length 4 <= [ + case>quot + ] [ + hash-case-table hash-dispatch-quot + [ dup hashcode >fixnum ] swap append + ] if ] if ; diff --git a/core/compiler/compiler.factor b/core/compiler/compiler.factor index 76b4d49636..f80a00855d 100644 --- a/core/compiler/compiler.factor +++ b/core/compiler/compiler.factor @@ -16,9 +16,10 @@ M: object inference-error-major? drop t ; : begin-batch ( seq -- ) batch-mode on - [ - "Compiling " % length # " words..." % - ] "" make print flush + "quiet" get [ drop ] [ + [ "Compiling " % length # " words..." % ] "" make + print flush + ] if V{ } clone compile-errors set-global ; : compile-error. ( pair -- ) diff --git a/core/compiler/test/curry.factor b/core/compiler/test/curry.factor index 307c8adcdb..0e840154ca 100755 --- a/core/compiler/test/curry.factor +++ b/core/compiler/test/curry.factor @@ -50,7 +50,7 @@ IN: temporary global keys = ] unit-test -[ 3 ] [ 1 2 [ curry [ 3 ] [ 4 ] if ] compile-1 ] unit-test +[ 3 ] [ 1 [ 2 ] [ curry [ 3 ] [ 4 ] if ] compile-1 ] unit-test [ 3 ] [ t [ 3 [ ] curry 4 [ ] curry if ] compile-1 ] unit-test diff --git a/core/compiler/test/simple.factor b/core/compiler/test/simple.factor index 594bb844a1..cc446dee23 100644 --- a/core/compiler/test/simple.factor +++ b/core/compiler/test/simple.factor @@ -56,3 +56,8 @@ IN: temporary \ recursive compile [ ] [ t recursive ] unit-test + +! Make sure error reporting works + +[ [ dup ] compile-1 ] unit-test-fails +[ [ drop ] compile-1 ] unit-test-fails diff --git a/core/cpu/arm/intrinsics/intrinsics.factor b/core/cpu/arm/intrinsics/intrinsics.factor index 9eedd8e494..81b23ea8b2 100755 --- a/core/cpu/arm/intrinsics/intrinsics.factor +++ b/core/cpu/arm/intrinsics/intrinsics.factor @@ -418,17 +418,6 @@ IN: cpu.arm.intrinsics { +output+ { "out" } } } define-intrinsic -\ curry [ - \ curry 3 cells %allot - "obj" operand 1 %set-slot - "quot" operand 2 %set-slot - "out" get object %store-tagged -] H{ - { +input+ { { f "obj" } { f "quot" } } } - { +scratch+ { { f "out" } } } - { +output+ { "out" } } -} define-intrinsic - ! Alien intrinsics : %alien-accessor ( quot -- ) "offset" operand dup %untag-fixnum diff --git a/core/cpu/ppc/intrinsics/intrinsics.factor b/core/cpu/ppc/intrinsics/intrinsics.factor index f78b7c06e2..e1d86db178 100755 --- a/core/cpu/ppc/intrinsics/intrinsics.factor +++ b/core/cpu/ppc/intrinsics/intrinsics.factor @@ -580,18 +580,6 @@ IN: cpu.ppc.intrinsics { +output+ { "vector" } } } define-intrinsic -\ curry [ - \ curry 3 cells %allot - "obj" operand 11 1 cells STW - "quot" operand 11 2 cells STW - ! Store tagged ptr in reg - "curry" get object %store-tagged -] H{ - { +input+ { { f "obj" } { f "quot" } } } - { +scratch+ { { f "curry" } } } - { +output+ { "curry" } } -} define-intrinsic - ! Alien intrinsics : %alien-accessor ( quot -- ) "offset" operand dup %untag-fixnum diff --git a/core/cpu/x86/intrinsics/intrinsics.factor b/core/cpu/x86/intrinsics/intrinsics.factor index ff6975336d..d1a851b553 100755 --- a/core/cpu/x86/intrinsics/intrinsics.factor +++ b/core/cpu/x86/intrinsics/intrinsics.factor @@ -485,19 +485,6 @@ IN: cpu.x86.intrinsics { +output+ { "vector" } } } define-intrinsic -\ curry [ - \ curry 3 cells [ - 1 object@ "obj" operand MOV - 2 object@ "quot" operand MOV - ! Store tagged ptr in reg - "curry" get object %store-tagged - ] %allot -] H{ - { +input+ { { f "obj" } { f "quot" } } } - { +scratch+ { { f "curry" } } } - { +output+ { "curry" } } -} define-intrinsic - ! Alien intrinsics : %alien-accessor ( quot -- ) "offset" operand %untag-fixnum diff --git a/core/io/files/files.factor b/core/io/files/files.factor index 967f2f7913..3a01cc7d82 100755 --- a/core/io/files/files.factor +++ b/core/io/files/files.factor @@ -2,8 +2,8 @@ ! See http://factorcode.org/license.txt for BSD license. IN: io.files USING: io.backend io.files.private io hashtables kernel math -memory namespaces sequences strings arrays definitions system -combinators splitting ; +memory namespaces sequences strings assocs arrays definitions +system combinators splitting ; HOOK: io-backend ( path -- stream ) @@ -97,7 +97,9 @@ TUPLE: no-parent-directory path ; ] } } cond drop ; -: copy-file ( from to -- ) +HOOK: copy-file io-backend ( from to -- ) + +M: object copy-file dup parent-directory make-directories [ stdio get swap @@ -124,3 +126,34 @@ TUPLE: pathname string ; C: pathname M: pathname <=> [ pathname-string ] compare ; + +HOOK: library-roots io-backend ( -- seq ) +HOOK: binary-roots io-backend ( -- seq ) + +: find-file ( seq str -- path/f ) + [ + [ path+ exists? ] curry find nip + ] keep over [ path+ ] [ drop ] if ; + +: find-library ( str -- path/f ) + library-roots swap find-file ; + +: find-binary ( str -- path/f ) + binary-roots swap find-file ; + + + +: walk-dir ( path -- seq ) [ (walk-dir) ] { } make ; diff --git a/core/kernel/kernel-docs.factor b/core/kernel/kernel-docs.factor index 84ee4fe5cf..de3c0ead3e 100644 --- a/core/kernel/kernel-docs.factor +++ b/core/kernel/kernel-docs.factor @@ -32,7 +32,7 @@ $nl { $subsection >r } { $subsection r> } "The top of the data stack is ``hidden'' between " { $link >r } " and " { $link r> } ":" -{ $example "1 2 3 >r .s r>" "2\n1" } +{ $example "1 2 3 >r .s r>" "1\n2" } "Words must not leave objects on the retain stack, nor expect values to be there on entry. The retain stack is for local storage within a word only, and occurrences of " { $link >r } " and " { $link r> } " must be balanced inside a single quotation. One exception is the following trick involving " { $link if } "; values may be pushed on the retain stack before the condition value is computed, as long as both branches of the " { $link if } " pop the values off the retain stack before returning:" { $code ": foo ( m ? n -- m+n/n )" diff --git a/core/optimizer/known-words/known-words.factor b/core/optimizer/known-words/known-words.factor index 40752c58a5..e9e4c53632 100755 --- a/core/optimizer/known-words/known-words.factor +++ b/core/optimizer/known-words/known-words.factor @@ -8,7 +8,7 @@ assocs quotations sequences.private io.binary io.crc32 io.streams.string layouts splitting math.intervals math.floats.private tuples tuples.private classes optimizer.def-use optimizer.backend optimizer.pattern-match -float-arrays combinators.private ; +float-arrays combinators.private combinators ; ! the output of and has the class which is ! its second-to-last input @@ -50,6 +50,20 @@ float-arrays combinators.private ; { [ dup disjoint-eq? ] [ [ f ] inline-literals ] } } define-optimizers +: literal-member? ( #call -- ? ) + node-in-d peek dup value? + [ value-literal sequence? ] [ drop f ] if ; + +: member-quot ( seq -- newquot ) + [ [ t ] ] { } map>assoc [ drop f ] add [ nip case ] curry ; + +: expand-member ( #call -- ) + dup node-in-d peek value-literal member-quot splice-quot ; + +\ member? { + { [ dup literal-member? ] [ expand-member ] } +} define-optimizers + ! if the result of eq? is t and the second input is a literal, ! the first input is equal to the second \ eq? [ diff --git a/core/optimizer/math/math.factor b/core/optimizer/math/math.factor index 0ea1f1316b..3389b1b84e 100755 --- a/core/optimizer/math/math.factor +++ b/core/optimizer/math/math.factor @@ -111,7 +111,7 @@ optimizer.def-use generic.standard ; : post-process ( class interval node -- classes intervals ) dupd won't-overflow? - [ >r dup { f integer } memq? [ drop fixnum ] when r> ] when + [ >r dup { f integer } member? [ drop fixnum ] when r> ] when [ dup [ 1array ] when ] 2apply ; : math-output-interval-1 ( node word -- interval ) diff --git a/core/prettyprint/backend/backend.factor b/core/prettyprint/backend/backend.factor index 0ee79efa8b..8d0140202e 100755 --- a/core/prettyprint/backend/backend.factor +++ b/core/prettyprint/backend/backend.factor @@ -89,19 +89,20 @@ M: f pprint* drop \ f pprint-word ; { 0.3 0.3 0.3 1.0 } foreground set ] H{ } make-assoc ; -: unparse-string ( str prefix -- str ) - [ - % do-string-limit [ unparse-ch ] each CHAR: " , - ] "" make ; +: unparse-string ( str prefix suffix -- str ) + [ >r % do-string-limit [ unparse-ch ] each r> % ] "" make ; -: pprint-string ( obj str prefix -- ) +: pprint-string ( obj str prefix suffix -- ) unparse-string swap string-style styled-text ; -M: string pprint* dup "\"" pprint-string ; +M: string pprint* + dup "\"" "\"" pprint-string ; -M: sbuf pprint* dup "SBUF\" " pprint-string ; +M: sbuf pprint* + dup "SBUF\" " "\"" pprint-string ; -M: pathname pprint* dup pathname-string "P\" " pprint-string ; +M: pathname pprint* + dup pathname-string "P\" " "\"" pprint-string ; ! Sequences : nesting-limit? ( -- ? ) diff --git a/core/quotations/quotations-docs.factor b/core/quotations/quotations-docs.factor old mode 100644 new mode 100755 index f647bb2a66..3a32b63ae9 --- a/core/quotations/quotations-docs.factor +++ b/core/quotations/quotations-docs.factor @@ -22,7 +22,7 @@ $nl ABOUT: "quotations" HELP: callable -{ $class-description "The class whose instances can be passed to " { $link call } ". This includes quotations, " { $link f } " (which behaves like an empty quotation), and composed quotations built up with " { $link curry } "." } ; +{ $class-description "The class whose instances can be passed to " { $link call } ". This includes quotations and composed quotations built up with " { $link curry } " or " { $link compose } "." } ; HELP: quotation { $description "The class of quotations. See " { $link "syntax-quots" } " for syntax and " { $link "quotations" } " for general information." } ; diff --git a/core/quotations/quotations-tests.factor b/core/quotations/quotations-tests.factor index 662b9e9f2a..f1cc6cd828 100644 --- a/core/quotations/quotations-tests.factor +++ b/core/quotations/quotations-tests.factor @@ -1,8 +1,8 @@ USING: math kernel quotations tools.test sequences ; IN: temporary -[ [ 3 ] ] [ 3 f curry ] unit-test -[ [ \ + ] ] [ \ + f curry ] unit-test +[ [ 3 ] ] [ 3 [ ] curry ] unit-test +[ [ \ + ] ] [ \ + [ ] curry ] unit-test [ [ \ + = ] ] [ \ + [ = ] curry ] unit-test [ [ 1 + 2 + 3 + ] ] [ @@ -14,3 +14,5 @@ IN: temporary [ [ 3 1 2 ] ] [ [ 1 2 ] 3 add* ] unit-test [ [ "hi" ] ] [ "hi" 1quotation ] unit-test + +[ 1 \ + curry ] unit-test-fails diff --git a/extra/bake/bake.factor b/extra/bake/bake.factor index 5e1700c6e2..d038e81394 100644 --- a/extra/bake/bake.factor +++ b/extra/bake/bake.factor @@ -1,6 +1,6 @@ -USING: kernel parser namespaces quotations vectors strings -sequences assocs tuples math combinators ; +USING: kernel parser namespaces quotations arrays vectors strings + sequences assocs tuples math combinators ; IN: bake @@ -22,6 +22,10 @@ C: splice-quot ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +: ,u ( seq -- seq ) unclip building get push ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + SYMBOL: exemplar : reset-building ( -- ) 1024 building set ; @@ -35,6 +39,7 @@ DEFER: bake : bake-item ( item -- ) { { [ dup \ , = ] [ drop , ] } { [ dup \ % = ] [ drop % ] } + { [ dup \ ,u = ] [ drop ,u ] } { [ dup insert-quot? ] [ insert-quot-expr call , ] } { [ dup splice-quot? ] [ splice-quot-expr call % ] } { [ dup integer? ] [ , ] } @@ -48,4 +53,9 @@ DEFER: bake : bake-items ( seq -- ) [ bake-item ] each ; : bake ( seq -- seq ) - [ reset-building save-exemplar bake-items finish-baking ] with-scope ; \ No newline at end of file + [ reset-building save-exemplar bake-items finish-baking ] with-scope ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +: `{ \ } [ >array ] parse-literal \ bake parsed ; parsing + diff --git a/extra/benchmark/knucleotide/authors.txt b/extra/benchmark/knucleotide/authors.txt new file mode 100644 index 0000000000..16e1588016 --- /dev/null +++ b/extra/benchmark/knucleotide/authors.txt @@ -0,0 +1 @@ +Eric Mertens diff --git a/extra/benchmark/knucleotide/knucleotide-input.txt b/extra/benchmark/knucleotide/knucleotide-input.txt new file mode 100644 index 0000000000..fb23263397 --- /dev/null +++ b/extra/benchmark/knucleotide/knucleotide-input.txt @@ -0,0 +1,1671 @@ +>ONE Homo sapiens alu +GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA +TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT +AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG +GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG +CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT +GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA +GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA +TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG +AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA +GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT +AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC +AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG +GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC +CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG +AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT +TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA +TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT +GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG +TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT +CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG +CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG +TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA +CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG +AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG +GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC +TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA +TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA +GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT +GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC +ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT +TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC +CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG +CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG +GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC +CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT +GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC +GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA +GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA +GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA +GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG +AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT +CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA +GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA +AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC +GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT +ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG +GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC +GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC +GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG +TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA +AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG +GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT +CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC +TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG +ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC +GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA +ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA +CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA +CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA +ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG +CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG +AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC +CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG +AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC +CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG +CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG +CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG +CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC +ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA +AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC +TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC +ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG +CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG +AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT +AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA +TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC +CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA +TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG +CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT +GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG +GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG +CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG +GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG +GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT +AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT +GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT +CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG +GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC +TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT +CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG +ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG +CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG +AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA +CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG +CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC +ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC +GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC +GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG +GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT +TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG +CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA +GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG +CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC +GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG +CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA +CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG +CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA +ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC +CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT +GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA +AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG +ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC +TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA +GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC +GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG +TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC +AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA +ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA +GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC +AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG +TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC +CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT +GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC +CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA +GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT +TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC +ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC +TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG +GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG +TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG +GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC +GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT +ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC +GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC +GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC +CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA +ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG +AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC +TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT +CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG +TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG +CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC +GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT +GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC +CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC +TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG +CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG +AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG +AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG +AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT +GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA +TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC +AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA +AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG +CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC +TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG +GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT +CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG +CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG +GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA +AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA +GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC +TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC +CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA +GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG +CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG +AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG +ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC +ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC +AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC +GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG +GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT +CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC +GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC +CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA +GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA +GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG +GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT +CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA +AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG +CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC +CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG +GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG +GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT +TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA +ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG +CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA +ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA +GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG +TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC +GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA +GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT +GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT +GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG +TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT +TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC +TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC +GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT +CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC +TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA +GATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGG +GCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCT +GAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT +ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAG +GCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTG +CACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCA +CGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTT +CGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCC +GGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGC +TTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGG +GCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCC +AGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTG +GCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCG +CGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAG +GCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAG +ACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAG +GCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGA +AACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATC +CCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAG +TGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAA +AAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCG +GATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTA +CTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGG +AGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCG +CGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCG +GTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGT +CAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAA +AATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGG +AGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTC +CAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCT +GTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA +CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCG +TGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAA +CCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGAC +AGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCAC +TTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAA +CATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGC +CTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGA +GGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCC +GTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGA +GGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCC +CGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGC +TACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGC +CGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGC +CGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCA +CCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAA +AATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCT +GAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCA +CTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGC +TCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGA +GTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTA +GCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAAT +CGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCC +TGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAAT +CCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGC +CTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTG +GCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGG +GAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGC +GAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG +GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGG +TGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTA +ATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTG +CAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTC +AAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGG +GCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCT +CTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTC +GGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGA +TCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGC +GCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGA +GGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATAC +AAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGC +AGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCA +CTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACG +CCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCG +AGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGG +GCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTT +GAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGC +GACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAG +CACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGC +CAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCG +CGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGC +GGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGAC +TCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGC +CGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAA +CCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCC +AGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTG +AGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA +GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA +TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT +AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG +GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG +CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT +GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA +GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA +TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG +AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA +GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT +AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC +AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG +GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC +CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG +AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT +TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA +TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT +GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG +TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT +CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG +CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG +TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA +CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG +AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG +GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC +TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA +TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA +GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT +GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC +ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT +TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC +CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG +CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG +GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC +CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT +GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC +GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA +GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA +GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA +GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG +AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT +CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA +GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA +AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC +GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT +ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG +GAGGCTGAGGCAGGAGAATC +>TWO IUB ambiguity codes +cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg +tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa +NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt +cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga +gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa +HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca +tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt +tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt +acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct +tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt +gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa +accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt +RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt +tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag +cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg +ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat +actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg +YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa +KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata +aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa +aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg +gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc +tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK +tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt +ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg +ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa +BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt +aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc +tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc +cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac +aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga +tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga +aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD +gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg +ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV +taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa +ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat +gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg +gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa +tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt +tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt +taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca +cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag +aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt +cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt +ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW +attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag +ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa +attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc +tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta +aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata +cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc +gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg +attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca +BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga +DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat +tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM +tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR +tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg +taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc +aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc +DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa +VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt +agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat +gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt +tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt +catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt +tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR +aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat +aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac +acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS +tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga +aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM +acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt +RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt +RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta +tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac +gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt +YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc +ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt +ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat +gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta +KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD +aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg +gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH +taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact +VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV +NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa +MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag +cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata +ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg +tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN +aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc +actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg +tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga +gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa +BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca +aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata +aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat +YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt +aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW +cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata +tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata +tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt +MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac +taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta +tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS +RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc +agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata +NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa +gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata +aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt +ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW +cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt +tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa +RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt +tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD +gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc +tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta +ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM +tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc +ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc +BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt +gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga +acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag +gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc +taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat +acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta +tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt +catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa +tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB +atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR +ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta +ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta +cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK +SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW +VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc +BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct +NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt +tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa +ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa +cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa +VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR +atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac +aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc +tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac +RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag +gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc +tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact +attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc +atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga +cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt +NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR +ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat +cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg +aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac +agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR +tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga +ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg +ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa +tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag +taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg +tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN +YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt +ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa +tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat +ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg +attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt +atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW +YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta +gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV +MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta +tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt +ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa +aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa +BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM +tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK +StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV +cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN +atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg +atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg +ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct +gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM +tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD +BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc +agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga +HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR +tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt +aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa +catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB +aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat +tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt +cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag +DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat +gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta +tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM +atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc +KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt +tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata +tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK +taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt +NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa +HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa +ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg +tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK +cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga +ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca +HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg +gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS +BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg +gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat +KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact +cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat +tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD +taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM +gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt +aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat +acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta +RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc +attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac +KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS +KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD +gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB +aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct +aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga +ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY +tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga +aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta +tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY +MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc +cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta +caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt +ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc +acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat +tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc +gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa +atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga +aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat +NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt +taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa +aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat +ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca +DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata +tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat +aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa +ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM +ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca +RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa +aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac +aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt +aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK +tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat +atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR +BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc +gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct +cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN +RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat +taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt +aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt +gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct +gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa +aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta +gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg +ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat +MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct +SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY +aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt +VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat +HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc +agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt +gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg +agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg +tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag +gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga +VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg +tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV +MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt +actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa +WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa +tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD +KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct +BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac +attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB +VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD +aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca +tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat +tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK +tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt +VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta +tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat +ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa +tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg +WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta +tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc +tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct +MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat +tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac +atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg +aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt +aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa +aatYggtaRtatNtHcaatcaHtagVtgtattataNggaMtcttHtNagctaaaggtaga +YctMattNaMVNtcKtactBKcaHHcBttaSagaKacataYgctaKaYgttYcgacWVtt +WtSagcaacatcccHaccKtcttaacgaKttcacKtNtacHtatatRtaaatacactaBt +ttgaHaRttggttWtatYagcatYDatcggagagcWBataagRtacctataRKgtBgatg +aDatataSttagBaHtaatNtaDWcWtgtaattacagKttcNtMagtattaNgtctcgtc +ctcttBaHaKcKccgtRcaaYagSattaagtKataDatatatagtcDtaacaWHcaKttD +gaaRcgtgYttgtcatatNtatttttatggccHtgDtYHtWgttatYaacaattcaWtat +NgctcaaaSttRgctaatcaaatNatcgtttaBtNNVtgttataagcaaagattBacgtD +atttNatttaaaDcBgtaSKgacgtagataatttcHMVNttgttBtDtgtaWKaaRMcKM +tHtaVtagataWctccNNaSWtVaHatctcMgggDgtNHtDaDttatatVWttgttattt +aacctttcacaaggaSaDcggttttttatatVtctgVtaacaStDVaKactaMtttaSNa +gtgaaattaNacttSKctattcctctaSagKcaVttaagNaVcttaVaaRNaHaaHttat +gtHttgtgatMccaggtaDcgaccgtWgtWMtttaHcRtattgScctatttKtaaccaag +tYagaHgtWcHaatgccKNRtttagtMYSgaDatctgtgaWDtccMNcgHgcaaacNDaa +aRaStDWtcaaaaHKtaNBctagBtgtattaactaattttVctagaatggcWSatMaccc +ttHttaSgSgtgMRcatRVKtatctgaaaccDNatYgaaVHNgatMgHRtacttaaaRta +tStRtDtatDttYatattHggaBcttHgcgattgaKcKtttcRataMtcgaVttWacatN +catacctRataDDatVaWNcggttgaHtgtMacVtttaBHtgagVttMaataattatgtt +cttagtttgtgcDtSatttgBtcaacHattaaBagVWcgcaSYttMgcttacYKtVtatc +aYaKctgBatgcgggcYcaaaaacgNtctagKBtattatctttKtaVttatagtaYtRag +NtaYataaVtgaatatcHgcaaRataHtacacatgtaNtgtcgYatWMatttgaactacR +ctaWtWtatacaatctBatatgYtaagtatgtgtatSttactVatcttYtaBcKgRaSgg +RaaaaatgcagtaaaWgtaRgcgataatcBaataccgtatttttccatcNHtatWYgatH +SaaaDHttgctgtccHtggggcctaataatttttctatattYWtcattBtgBRcVttaVM +RSgctaatMagtYtttaaaaatBRtcBttcaaVtaacagctccSaaSttKNtHtKYcagc +agaaaccccRtttttaaDcDtaStatccaagcgctHtatcttaDRYgatDHtWcaaaBcW +gKWHttHataagHacgMNKttMKHccaYcatMVaacgttaKgYcaVaaBtacgcaacttt +MctaaHaatgtBatgagaSatgtatgSRgHgWaVWgataaatatttccKagVgataattW +aHNcYggaaatgctHtKtaDtctaaagtMaatVDVactWtSaaWaaMtaHtaSKtcBRaN +cttStggtBttacNagcatagRgtKtgcgaacaacBcgKaatgataagatgaaaattgta +ctgcgggtccHHWHaaNacaBttNKtKtcaaBatatgctaHNgtKcDWgtttatNgVDHg +accaacWctKaaggHttgaRgYaatHcaBacaatgagcaaattactgtaVaaYaDtagat +tgagNKggtggtgKtWKaatacagDRtatRaMRtgattDggtcaaYRtatttNtagaDtc +acaaSDctDtataatcgtactaHttatacaatYaacaaHttHatHtgcgatRRttNgcat +SVtacWWgaaggagtatVMaVaaattScDDKNcaYBYaDatHgtctatBagcaacaagaa +tgagaaRcataaKNaRtBDatcaaacgcattttttaaBtcSgtacaRggatgtMNaattg +gatatWtgagtattaaaVctgcaYMtatgatttttYgaHtgtcttaagWBttHttgtctt +attDtcgtatWtataataSgctaHagcDVcNtaatcaagtaBDaWaDgtttagYctaNcc +DtaKtaHcttaataacccaRKtacaVaatNgcWRaMgaattatgaBaaagattVYaHMDc +aDHtcRcgYtcttaaaWaaaVKgatacRtttRRKYgaatacaWVacVcRtatMacaBtac +tggMataaattttHggNagSctacHgtBagcgtcgtgattNtttgatSaaggMttctttc +ttNtYNagBtaaacaaatttMgaccttacataattgYtcgacBtVMctgStgMDtagtaR +ctHtatgttcatatVRNWataDKatWcgaaaaagttaaaagcacgHNacgtaatctttMR +tgacttttDacctataaacgaaatatgattagaactccSYtaBctttaataacWgaaaYa +tagatgWttcatKtNgatttttcaagHtaYgaaRaDaagtaggagcttatVtagtctttc +attaaaatcgKtattaRttacagVaDatgcatVgattgggtctttHVtagKaaRBtaHta +aggccccaaaaKatggtttaMWgtBtaaacttcactttKHtcgatctccctaYaBacMgt +cttBaBaNgcgaaacaatctagtHccHtKttcRtRVttccVctttcatacYagMVtMcag +aMaaacaataBctgYtaatRaaagattaaccatVRatHtaRagcgcaBcgDttStttttc +VtttaDtKgcaaWaaaaatSccMcVatgtKgtaKgcgatatgtagtSaaaDttatacaaa +catYaRRcVRHctKtcgacKttaaVctaDaatgttMggRcWaacttttHaDaKaDaBctg +taggcgtttaHBccatccattcNHtDaYtaataMttacggctNVaacDattgatatttta +cVttSaattacaaRtataNDgacVtgaacataVRttttaDtcaaacataYDBtttaatBa +DtttYDaDaMccMttNBttatatgagaaMgaNtattHccNataattcaHagtgaaggDga +tgtatatatgYatgaStcataaBStWacgtcccataRMaaDattggttaaattcMKtctM +acaBSactcggaatDDgatDgcWctaacaccgggaVcacWKVacggtaNatatacctMta +tgatagtgcaKagggVaDtgtaacttggagtcKatatcgMcttRaMagcattaBRaStct +YSggaHYtacaactMBaagDcaBDRaaacMYacaHaattagcattaaaHgcgctaaggSc +cKtgaaKtNaBtatDDcKBSaVtgatVYaagVtctSgMctacgttaacWaaattctSgtD +actaaStaaattgcagBBRVctaatatacctNttMcRggctttMttagacRaHcaBaacV +KgaataHttttMgYgattcYaNRgttMgcVaaacaVVcDHaatttgKtMYgtatBtVVct +WgVtatHtacaaHttcacgatagcagtaaNattBatatatttcVgaDagcggttMaagtc +ScHagaaatgcYNggcgtttttMtStggtRatctacttaaatVVtBacttHNttttaRca +aatcacagHgagagtMgatcSWaNRacagDtatactaaDKaSRtgattctccatSaaRtt +aaYctacacNtaRtaactggatgaccYtacactttaattaattgattYgttcagDtNKtt +agDttaaaaaaaBtttaaNaYWKMBaaaacVcBMtatWtgBatatgaacVtattMtYatM +NYDKNcKgDttDaVtaaaatgggatttctgtaaatWtctcWgtVVagtcgRgacttcccc +taDcacagcRcagagtgtWSatgtacatgttaaSttgtaaHcgatgggMagtgaacttat +RtttaVcaccaWaMgtactaatSSaHtcMgaaYtatcgaaggYgggcgtgaNDtgttMNg +aNDMtaattcgVttttaacatgVatgtWVMatatcaKgaaattcaBcctccWcttgaaWH +tWgHtcgNWgaRgctcBgSgaattgcaaHtgattgtgNagtDttHHgBttaaWcaaWagc +aSaHHtaaaVctRaaMagtaDaatHtDMtcVaWMtagSagcttHSattaacaaagtRacM +tRtctgttagcMtcaBatVKtKtKacgagaSNatSactgtatatcBctgagVtYactgta +aattaaaggcYgDHgtaacatSRDatMMccHatKgttaacgactKtgKagtcttcaaHRV +tccttKgtSataatttacaactggatDNgaacttcaRtVaagDcaWatcBctctHYatHa +DaaatttagYatSatccaWtttagaaatVaacBatHcatcgtacaatatcgcNYRcaata +YaRaYtgattVttgaatgaVaactcRcaNStgtgtattMtgaggtNttBaDRcgaaaagc +tNgBcWaWgtSaDcVtgVaatMKBtttcgtttctaaHctaaagYactgMtatBDtcStga +ccgtSDattYaataHctgggaYYttcggttaWaatctggtRagWMaDagtaacBccacta +cgHWMKaatgatWatcctgHcaBaSctVtcMtgtDttacctaVgatYcWaDRaaaaRtag +atcgaMagtggaRaWctctgMgcWttaagKBRtaaDaaWtctgtaagYMttactaHtaat +cttcataacggcacBtSgcgttNHtgtHccatgttttaaagtatcgaKtMttVcataYBB +aKtaMVaVgtattNDSataHcagtWMtaggtaSaaKgttgBtVtttgttatcatKcgHac +acRtctHatNVagSBgatgHtgaRaSgttRcctaacaaattDNttgacctaaYtBgaaaa +tagttattactcttttgatgtNNtVtgtatMgtcttRttcatttgatgacacttcHSaaa +ccaWWDtWagtaRDDVNacVaRatgttBccttaatHtgtaaacStcVNtcacaSRttcYa +gacagaMMttttgMcNttBcgWBtactgVtaRttctccaaYHBtaaagaBattaYacgat +ttacatctgtaaMKaRYtttttactaaVatWgctBtttDVttctggcDaHaggDaagtcg +aWcaagtagtWttHtgKtVataStccaMcWcaagataagatcactctHatgtcYgaKcat +cagatactaagNSStHcctRRNtattgtccttagttagMVgtatagactaactctVcaat +MctgtttgtgttgccttatWgtaBVtttctggMcaaKgDWtcgtaaYStgSactatttHg +atctgKagtagBtVacRaagRtMctatgggcaaaKaaaatacttcHctaRtgtDcttDat +taggaaatttcYHaRaaBttaatggcacKtgctHVcaDcaaaVDaaaVcgMttgtNagcg +taDWgtcgttaatDgKgagcSatatcSHtagtagttggtgtHaWtaHKtatagctgtVga +ttaBVaatgaataagtaatVatSttaHctttKtttgtagttaccttaatcgtagtcctgB +cgactatttVcMacHaaaggaatgDatggKtaHtgStatattaaSagctWcctccRtata +BaDYcgttgcNaagaggatRaaaYtaWgNtSMcaatttactaacatttaaWttHtatBat +tgtcgacaatNgattgcNgtMaaaKaBDattHacttggtRtttaYaacgVactBtaBaKt +gBttatgVttgtVttcaatcWcNctDBaaBgaDHacBttattNtgtDtatttVSaaacag +gatgcRatSgtaSaNtgBatagttcHBgcBBaaattaHgtDattatDaKaatBaaYaaMa +ataaataKtttYtagtBgMatNcatgtttgaNagtgttgtgKaNaSagtttgaSMaYBca +aaacDStagttVacaaaaactaaWttBaagtctgtgcgtMgtaattctcctacctcaNtt +taaccaaaaVtBcacataacaccccBcWMtatVtggaatgaWtcaaWaaaaaaaaWtDta +atatRcctDWtcctaccMtVVatKttaWaaKaaatataaagScHBagaggBaSMtaWaVt +atattactSaaaKNaactatNatccttgaYctattcaaaVgatttYHcRagattttaSat +aggttattcVtaaagaKgtattattKtRttNcggcRgtgtgtWYtaacHgKatKgatYta +cYagDtWcHBDctctgRaYKaYagcactKcacSaRtBttttBHKcMtNtcBatttatttt +tgSatVgaaagaWtcDtagDatatgMacaacRgatatatgtttgtKtNRaatatNatgYc +aHtgHataacKtgagtagtaacYttaNccaaatHcacaacaVDtagtaYtccagcattNt +acKtBtactaaagaBatVtKaaHBctgStgtBgtatgaSNtgDataaccctgtagcaBgt +gatcttaDataStgaMaccaSBBgWagtacKcgattgaDgNNaaaacacagtSatBacKD +gcgtataBKcatacactaSaatYtYcDaactHttcatRtttaatcaattataRtttgtaa +gMcgNttcatcBtYBagtNWNMtSHcattcRctttttRWgaKacKttgggagBcgttcgc +MaWHtaatactgtctctatttataVgtttaBScttttaBMaNaatMacactYtBMggtHa +cMagtaRtctgcatttaHtcaaaatttgagKtgNtactBacaHtcgtatttctMaSRagc +agttaatgtNtaaattgagagWcKtaNttagVtacgatttgaatttcgRtgtWcVatcgt +taaDVctgtttBWgaccagaaagtcSgtVtatagaBccttttcctaaattgHtatcggRa +ttttcaaggcYSKaagWaWtRactaaaacccBatMtttBaatYtaagaactSttcgaaSc +aatagtattgaccaagtgttttctaacatgtttNVaatcaaagagaaaNattaaRtttta +VaaaccgcaggNMtatattVctcaagaggaacgBgtttaacaagttcKcYaatatactaa +ccBaaaSggttcNtattctagttRtBacgScVctcaatttaatYtaaaaaaatgSaatga +tagaMBRatgRcMcgttgaWHtcaVYgaatYtaatctttYttatRaWtctgBtDcgatNa +tcKaBaDgatgtaNatWKctccgatattaacattNaaacDatgBgttctgtDtaaaMggt +gaBaSHataacgccSctaBtttaRBtcNHcDatcDcctagagtcRtaBgWttDRVHagat +tYatgtatcWtaHtttYcattWtaaagtctNgtStggRNcgcggagSSaaagaaaatYcH +DtcgctttaatgYcKBVSgtattRaYBaDaaatBgtatgaHtaaRaRgcaSWNtagatHa +acttNctBtcaccatctMcatattccaSatttgcgaDagDgtatYtaaaVDtaagtttWV +aagtagYatRttaagDcNgacKBcScagHtattatcDaDactaaaaaYgHttBcgaDttg +gataaaKSRcBMaBcgaBSttcWtgNBatRaccgattcatttataacggHVtaattcaca +agagVttaaRaatVVRKcgWtVgacctgDgYaaHaWtctttcacMagggatVgactagMa +aataKaaNWagKatagNaaWtaaaatttgaattttatttgctaaVgaHatBatcaaBWcB +gttcMatcgBaaNgttcgSNaggSaRtttgHtRtattaNttcDcatSaVttttcgaaaaa +ttgHatctaRaggSaNatMDaaatDcacgattttagaHgHaWtYgattaatHNSttatMS +gggNtcKtYatRggtttgtMWVtttaYtagcagBagHaYagttatatggtBacYcattaR +SataBatMtttaaatctHcaaaSaaaagttNSaaWcWRccRtKaagtBWtcaaattSttM +tattggaaaccttaacgttBtWatttatatWcDaatagattcctScacctaagggRaaYt +aNaatgVtBcttaaBaacaMVaaattatStYgRcctgtactatcMcVKatttcgSgatRH +MaaaHtagtaaHtVgcaaataatatcgKKtgccaatBNgaaWcVttgagttaKatagttc +aggKDatDtattgaKaVcaKtaataDataataHSaHcattagttaatRVYcNaHtaRcaa +ggtNHcgtcaaccaBaaagYtHWaaaRcKgaYaaDttgcWYtataRgaatatgtYtgcKt +aNttWacatYHctRaDtYtattcBttttatcSataYaYgttWaRagcacHMgtttHtYtt +YaatcggtatStttcgtRSattaaDaKMaatatactaNBaWgctacacYtgaYVgtgHta +aaRaaRgHtagtWattataaaSDaaWtgMattatcgaaaagtaYRSaWtSgNtBgagcRY +aMDtactaacttaWgtatctagacaagNtattHggataatYttYatcataDcgHgttBtt +ctttVttgccgaaWtaaaacgKgtatctaaaaaNtccDtaDatBMaMggaatNKtatBaa +atVtccRaHtaSacataHattgtttKVYattcataVaattWtcgtgMttcttKtgtctaa +cVtatctatatBRataactcgKatStatattcatHHRttKtccaacgtgggtgRgtgaMt +attattggctatcgtgacMtRcBDtcttgtactaatRHttttaagatcgVMDStattatY +BtttDttgtBtNttgRcMtYtgBacHaWaBaatDKctaagtgaaactaatgRaaKgatcc +aagNaaaatattaggWNtaagtatacttttKcgtcggSYtcttgRctataYcttatataa +agtatattaatttataVaacacaDHatctatttttKYVatHRactttaBHccaWagtact +BtcacgaVgcgttRtttttttSVgtSagtBaaattctgaHgactcttgMcattttagVta +agaattHctHtcaDaaNtaacRggWatagttcgtSttgaDatcNgNagctagDgatcNtt +KgttgtaDtctttRaaYStRatDtgMggactSttaDtagSaVtBDttgtDgccatcacaM +attaaaMtNacaVcgSWcVaaDatcaHaatgaattaMtatccVtctBtaattgtWattat +BRcWcaatgNNtactWYtDaKttaaatcactcagtRaaRgatggtKgcgccaaHgaggat +StattYcaNMtcaBttacttatgagDaNtaMgaaWtgtttcttctaHtMNgttatctaWW +atMtBtaaatagDVatgtBYtatcggcttaagacMRtaHScgatatYgRDtcattatSDa +HggaaataNgaWSRRaaaBaatagBattaDctttgHWNttacaataaaaaaatacggttt +gHgVtaHtWMttNtBtctagtMcgKMgHgYtataHaNagWtcaacYattaataYRgtaWK +gaBctataaccgatttaHaNBRaRaMtccggtNgacMtctcatttgcaattcWgMactta +caaDaaNtactWatVtttagccttMaatcagVaagtctVaaDaBtattaattaYtNaYtg +gattaKtaKctYaMtattYgatattataatKtVgDcttatatNBtcgttgtStttttMag +aggttaHYSttcKgtcKtDNtataagttataagSgttatDtRttattgttttSNggRtca +aKMNatgaatattgtBWtaMacctgggYgaSgaagYataagattacgagaatBtggtRcV +HtgYggaDgaYaKagWagctatagacgaaHgtWaNgacttHRatVaWacKYtgRVNgVcS +gRWctacatcKSactctgWYtBggtataagcttNRttVtgRcaWaaatDMatYattaact +ttcgaagRatSctgccttgcRKaccHtttSNVagtagHagBagttagaccaRtataBcca +taatSHatRtcHagacBWatagcaMtacaRtgtgaaBatctKRtScttccaNaatcNgta +atatWtcaMgactctBtWtaaNactHaaaaRctcgcatggctMcaaNtcagaaaaacaca +gtggggWttRttagtaagaVctVMtcgaatcttcMaaaHcaHBttcgattatgtcaDagc +YRtBtYcgacMgtDcagcgaNgttaataatagcagKYYtcgtaBtYctMaRtaRtDagaa +aacacatgYaBttgattattcgaaNttBctSataaMataWRgaHtttccgtDgaYtatgg +tDgHKgMtatttVtMtVagttaRatMattRagataaccctKctMtSttgaHagtcStcta +tttccSagatgttccacgaggYNttHRacgattcDatatDcataaaatBBttatcgaHtN +HaaatatDNaggctgaNcaaggagttBttMgRagVatBcRtaWgatgBtSgaKtcgHttt +gaatcaaDaHttcSBgHcagtVaaSttDcagccgttNBtgttHagYtattctttRWaaVt +SttcatatKaaRaaaNacaVtVctMtSDtDtRHRcgtaatgctcttaaatSacacaatcg +HattcaWcttaaaatHaaatcNctWttaNMcMtaKctVtcctaagYgatgatcYaaaRac +tctaRDaYagtaacgtDgaggaaatctcaaacatcaScttcKttNtaccatNtaNataca +tttHaaDHgcaDatMWaaBttcRggctMaagctVYcacgatcaDttatYtaatcKatWat +caatVYtNagatttgattgaYttttYgacttVtcKaRagaaaHVgDtaMatKYagagttN +atWttaccNtYtcDWgSatgaRgtMatgKtcgacaagWtacttaagtcgKtgatccttNc +ttatagMatHVggtagcgHctatagccctYttggtaattKNaacgaaYatatVctaataM +aaaYtgVtcKaYtaataacagaatHcacVagatYWHttagaaSMaatWtYtgtaaagNaa +acaVgaWtcacNWgataNttcaSagctMDaRttgNactaccgataMaaatgtttattDtc +aagacgctDHYYatggttcaagccNctccttcMctttagacBtaaWtaWVHggaaaaNat +ttaDtDtgctaaHHtMtatNtMtagtcatttgcaaaRatacagRHtatDNtgtDgaatVg +tVNtcaaatYBMaaaagcaKgtgatgatMgWWMaHttttMgMagatDtataaattaacca +actMtacataaattgRataatacgBtKtaataattRgtatDagDtcRDacctatRcagag +cSHatNtcaScNtttggacNtaaggaccgtgKNttgttNcttgaaRgYgRtNtcagttBc +ttttcHtKtgcttYaaNgYagtaaatgaatggWaMattBHtatctatSgtcYtgcHtaat +tHgaaMtHcagaaSatggtatgccaHBtYtcNattWtgtNgctttaggtttgtWatNtgH +tgcDttactttttttgcNtactKtWRaVcttcatagtgSNKaNccgaataaBttataata +YtSagctttaaatSttggctaaKSaatRccgWHgagDttaaatcatgagMtcgagtVtaD +ggaBtatttgDacataaacgtagYRagBWtgDStKDgatgaagttcattatttaKWcata +aatWRgatataRgttRacaaNKttNtKagaaYaStaactScattattaacgatttaaatg +DtaattagatHgaYataaactatggggatVHtgccgtNgatNYcaStRtagaccacWcaM +tatRagHgVactYtWHtcttcatgatWgagaKggagtatgaWtDtVtNaNtcgYYgtaaa +ctttaDtBactagtaDctatagtaatatttatatataacgHaaaRagKattSagttYtSt +>THREE Homo sapiens frequency +agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct +cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt +tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat +tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc +gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc +tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg +tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat +atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag +cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa +ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt +ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat +atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc +gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact +tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag +gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg +atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag +tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac +ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag +tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta +aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt +gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa +ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc +agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt +agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat +acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc +cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct +cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct +cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa +aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt +tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt +atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct +cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga +tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat +catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc +tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg +caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc +tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc +aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag +aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat +ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac +gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag +ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt +cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta +gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca +ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt +cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg +taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg +gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc +taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt +ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt +aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt +gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta +acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct +ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta +tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt +tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg +tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa +ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac +aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga +tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca +gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt +gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc +cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg +actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa +tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg +ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt +ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta +agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc +gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa +tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt +atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca +cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa +tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca +gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg +gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat +aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg +gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat +cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa +taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg +tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt +ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac +aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc +gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag +aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc +tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa +tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata +aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta +ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc +ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc +caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct +gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg +cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc +ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta +tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg +atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc +ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc +acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc +taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga +ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga +aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat +cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc +tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact +gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa +aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag +cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc +cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa +gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg +cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg +gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca +agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac +aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt +aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg +cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt +agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg +cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa +agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga +gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta +aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata +agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc +cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc +agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca +ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga +tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag +gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat +gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt +ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg +gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc +atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc +tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata +ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg +tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag +cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg +ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat +aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg +gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat +ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag +atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac +aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct +gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga +atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt +aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt +tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg +ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta +gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac +cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct +ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga +ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg +ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat +cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga +tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt +tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc +cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt +gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct +ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt +ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa +tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc +agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta +ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc +cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct +agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc +tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc +gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga +ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa +ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca +agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata +attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact +ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat +agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat +aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata +gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta +gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg +ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac +gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata +ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat +taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta +aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata +tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata +ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga +agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt +ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt +agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg +gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa +tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg +gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct +cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc +ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta +cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt +gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc +gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc +tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt +cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca +aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac +ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac +gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag +aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga +gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct +aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta +gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat +agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat +caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta +gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta +aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt +tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt +tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc +ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg +ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg +gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa +ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa +aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa +tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat +acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac +atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga +gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac +tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc +cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa +gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg +acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga +acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga +attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg +tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt +cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag +aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac +ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac +tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat +gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga +gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc +acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta +gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac +gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc +ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt +taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg +agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa +gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag +ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc +accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag +tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact +taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga +catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat +tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga +ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg +aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa +atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa +tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt +ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact +tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt +aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat +agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc +acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc +aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct +ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat +gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat +taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata +taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga +tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat +gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg +ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa +atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat +tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat +cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt +aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac +taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag +caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata +ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct +tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac +tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg +gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta +gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat +gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg +ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa +tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa +taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac +gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt +ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga +gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca +tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc +ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt +tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc +cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat +ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg +caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg +cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat +gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat +cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg +taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat +tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata +taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc +tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac +tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt +tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt +ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt +aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg +atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga +actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta +gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga +ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga +gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct +tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc +aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta +atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt +catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc +taaagataactctagtaaggccaactcccttcaatgctgttgccagttataatccaagag +ctgtccttttctgaaccatagcggcttctgaagcgaactagaagcaaagttggttctagc +cagacagccacataccctgtacgggtgtattactaaaactggtccggtattagttcacca +agggaggaattaggcaaaggatctaggtatgcaagtcggagtattacatccctaccctga +atccatcaataggttcctctgtactggccttcgcaatgagtattcaaggttgtacagccg +tataataataagatagtgactatgaacgggaagtaacccgctcaccttccccaaaacatt +gttatatctaagtattaaagtctgccgtagtgttaatactcgaaaataaacaactggcaa +attacaccgcacttaagccgcttttgatttatatttttccaatgcgcttttaaaaataat +tcagtcctacatactaattaagacccttaaacggagatatcacaagttaagttttaacca +tctcgactaggtggaactatagatacccaactcaatttatcattacctgtaatgttccta +gaaggattgcatttcatgtcaagacggtggagtttcacagcgaaacttcagtgtgaacag +attctgagaaatcacctaaacctattagtcagagcacccggttagaaccagttgtcaaaa +aatagagcggttgcatgagacagaagtaacgatgagatccgttgtaacgttgagacatct +ggcctatcgtcaatacagtcctcccttaaaaatatttttaaatactaggcaaacccaaca +taggttagtcctatgtgatacgccacatggtatatcattttgtaacgttacctagggata +atcaggaagtggaattacgcaaaagtagacagtgaaatgcttagggttatagtctagtcc +aaagataaaggataaagcacgtcagagaactatattagccgaatgggaatcattgttagg +agactgtggatcatgtctaaaaagcaacgcagaaacagtcatcgaaaaaatctcgttttt +gtttgaatctaaaagagctttgatgaccgatagtacctgtatactagttactgtattacg +tgtctaatgatttcggattggggtccccagaatcagacgtcattgtagacgattcaagtt +taccaatttaatttcccagctctccttggagaactatcgccaataattgcagtcactttc +cttttctgaaacgataaagccgtcagagttctctgcaacgttggacttacctgaggttct +aacccactttcggttctaatagtagttaacgacacaacgaataacctttactgtggggct +ttcacgatattttttcgcttattattaatggttacgtcataagctggtgtccaaattaag +gttaccggcttcgcagagtagttgtatccaagtataacttccctaatcataagatcgagg +tagaaaattaatgctgtctctaaccgaacagatatgtcccactatgtggtatggacgttg +ctaattacttctgaagggaaattggtcattatggatacgtgtctaccatcaggtcggacg +cagatatggttctgtcttcagttgatccaccgttctttataggataataactgacgatta +aagattatggtaaatagattaagccaattctcttcttgtcagtgaagcatccttaactga +cttgctctgcagcccctcatacatttagctattcaaagtaccggctcgtttcaaactctc +ccacctttggaagaggttgtcaacttgataagtatatcatttacagcattttttcggacg +tacctctaatgtttcattgcagaaaattagttttttctatcgcacattttgcaagtaacg +ttagagacacaattatctgcgaatgaactgctagatctgacgaccgggagcctcgcaaat +atcaaaaaagactgacatatatcaaggagtcgttgacaagtgctggtaagtcaattggtt +tatctgtcccggcgtttcgatcttaagctgaccatgcacggcagagtaatgtcactctcg +ttcttacaagtctgtctccaagggtcggcaaaaaagacccctccattctcgagcccactc +acgatatgtagggacgacaacttgtgcggcttatgaattgtctggactgcgggcgagggt +ccatatctccgaagttagaagggacatacctttagatgataagatcaattcttattgacg +aaattcatccacaacggggaacaacttcaccctagacttacgtctgaaaagacacctagc +gtcttataaaaggtcagtgccccgtttcgtaaggctggaattacctacgcaaacttaaac +ctcgcgcccttccttacgtatcgacaagatagaggctatcgcgaatgtactacggaggca +tgaatcatatactagaaccaagtgcctgtgatattaacaagatgatccgacgcgagcacc +gtaattctaggcataaaactccagcaatttgggggccgaaaacaaatgacgttagctaat +taattatatgacatgatcaaaggaggtcaatcacgcatcgagttcgacgtatattcattg +aacttcgtgcgtttgaaagaaacttttatgaaggcaaaattgatcctgtctcctatttca +tgcgtacctcctagttgataattccccgagcagtggttaggacacttttgtcggtatcaa +gttccggtctcaaaacgtaaaattctgtaatctgtatggatggtctgtgaattagttaat +ttttatgaagtcgtcgagacgcagttcctattgatttattctaaacggagatgtgcttcg +tgggactcggaagtagatctgtgtttatgattattgctactttagatgctgactgttaac +tccgtgttgtttttcaaccgtatatcacaaccgaattggatagaacctatagtttcaagt +tctgccacaaggtatcatatttacagttagtgctggttgcttctttcaaacgtggtgagt +ttgtgctatcacgtcaacggtagagctcagtggaccgagtgcgcgttcaaccctgttcca +gagagggtgtgatagcacatataccacgctcgtcgaggcgttcatgatagtttgcaagag +ccggtgttaaacacatattattattgttatccaactaatcggacctatgcataaagcatt +gtctaaacagaataattgcctatatacggtagttttagtgatttatatcttagtatcagt +tagagcttcgaactcttcaggttcctcatatttaacgttcttcgaaagcgaaaacttcta +caaacgaatgtaagcggttttccaagtagtacctataaatcacagaaagatctgtctcag +tatagttgaaatggtattcagctagtgacgtgtaccaattatcatagttcactcaagcaa +gacgctcattaacgaatatagacaagacactatatcatataataaaaaagaacatggtgc +tcgaacatagttgaattcaccatattgaaggggaatgctgacatgtaattcgctactaga +cgatcaattccctacttgtcaaagttgaactggtacgttcttggaattaaatatgattgc +gctggaccaaattgcgacttcttgagtttcagggcaaacgattgagccggaggatgtccg +tctcttacctttcttgcttatgataaacgacggtccctgtacatcactgggaattctcag +caaaaataattgggtaaatcgagactcgatgtattcggccacaaaggtgttagacgttaa +agattattcaacggggcgataataggatcataaccggtatgcaagcgcattgaaagagcc +atgagatccttatccgataaacgctgcacggtatgtgcagccttattgtcgatcacgaat +ttataaatgtagtctgggctgtaagttgaagacctaagttataatgaagtgcaataccaa +atcgattcatagtggattatcagactcaagatatctcctgataaattacagttgttaaga +tacggataaaatgagatttaagattagcagcctctaatctgtttcaatcccgttggaatg +tggtatgcgatcaaggttaagttaaaatcaagcctgtcttcagtcttgattcttgttctg +ccatcgcatgcggtctacgtgagttaatatgtagcttacgttctagcttgtgctaatctg +agtatagattcgtagaggaatattatcaagcttccacgcctcaacgtacgtgtattggtc +acacaagacactaaaagtggaagtagcgtaaactatagtctagttgttaaatgctcagtt +cttgttatattcgatatactcttggctaatttatgtctgagtatataaaattaatgatat +taacttgcatttcacggatcccttagaaaaagattttgaccgagcgcattataaacggtt +acaccgaatcaatagaagcatacccaatagctttctttgaatttattgcctgcgcaactt +ggctgactctctagatccgaataattctatatggtcgtgacgaaactagttcattactgt +ttaaaatgccaacatgtcttttgggccgataatggctctttgcaaaattactcaatgata +cgattgatcaaagcggtagttgctagtggtagcatgtaagtctatcaaatgtctgattat +ccgaaaatcttccaaaagagtccacgtaccatatctatctcatagcgacgcgaggggaac +cttatctaactatcattccatttaccgggtgactctcgatgcaggatccgattgggataa +attgcccagaaatggctcattcctgactaagggtaaggccgttctcagcaagggaacccc +gcgaatctaggcttataccatctagattgttaactacttgcctgtagttctacagccata +ctggacagttgtttctaaatgatcgggattcatgctagcactcctctgaatgcaccgcgt +aagtttaactattacgtccgtgggcagataaggatggaggctgtatgtatcttaactgtt +acctaatatggctggtaattatcaaagtaaggaccttaatgccatagcgctagcaatcgc +tttgtatactgaccatgtgccaacctctcttaatctgtaaaatataatgtcttagctaac +tgtggacgatcatgtctctgcctagagcttcgctgtatcaattcctatagccagcgtact +agtgacacaacaacaccgtgtgagaaaagatattagtccttacgtctgtctctctacagc +ttattgatgaggattgaacatggacatatagctccccctcaaaagcagatgctacctctt +tattccattctcgaacatttgccgaacttaatttcgacaaacctgaggtcacgtcttaat +ttatcggtaacgtcacgtccctttgagactggataaatatattaccaggggccaacgagc +aattgttggaggcgcttctataatacaaggtgtcttgtcaaagaaagacggcgtgcgtct +cgtgcaactcacttaaccaatattaatgtgaaacccccctctctcacatcttatgcggtg +tactgccctggtacatttcctgtacaggactccaacagtgtagattcctaagatagctgt +tggagttgcctcacgccagatcgaaaaactgaataaactagtgagctgagctgcagaaat +accgcttaattacttatgactagttcaaagggacctacgtgatgtcagacattgcaagga +agaaattaggtttgtgcgtcattttggctggactagcactccttacttcccctactattc +aaatgtcgtaaacagcatgagacaggatcgtgctgacatttaaggtctattgggaacgag +gctacctttggtcgcgcgctcgcgttctccgaatgaccgaaatgcatgagcacagtatgc +aattgcttatagatctaaggtctggtcgttgaaaccaagcacgtaggcctgggaaatcag +ttcttcctcagcaactacacaaaagcgtccaagcattagtacttgtagtaaatgtccgaa +cctatgcgctcatttgaaagtcaaaaaatatttttaagcagtaggcacctaacccgattc +ctctacttagtagctttctttgattctcagaattgactgcaatatcactgcacaattctg +tgccattactagacttctctgtattaacgtctcatcttactaacactcgcctaggacaca +tctgagagtgaagtatttcaatacatttactgaaatcttcagttctaaaatccccgaata +aggctcttatcggtttggccaacacaagaaaaaaacttcttgcaccactcaccttcatac +gcaggagcctggggaacttagtaataactatttcggcagacaaagcttataacaagttgc +cggcgcgtataatatttaaaagaccccttgagctgctcaattaaaacgctcacctggtat +aggctattagatagtgccgtcttagtaaggggcgggaattatcggataaactgatatttt +gataaaataaccgacttgttcacgacataagtcactaaggagattttatctttctccaaa +gtatatcttccttggataatttcaaagcgctgcaatttaagttctgttactagtttatgc +tgctgggaggtgaccggaaggcgtagtaatctagaggcaaattataagaagttcatcata +tcattttcgactacaaaaacaaggtgttgtatgccggcgcattgtgtaaactggacgagt +accctagatggaaaattatacgttaagccaagatttcgatgtaatgataattacctacac +atttttgctatccataggaacaagagctgttctataggctcgtggcatacgaacatttgc +tgccgctatgaatattggaagctcttcaactacagactctattcttaattgccgtcgaaa +atgggccgaatcggctattattaatactcggtttttccgaggggattgttgtcgacagtc +gtaattattattaatattgatgttggtgaggtcatttaaatacaaccttgcagacaatga +ataagggatccaatctctcatactccttttacaattgctcatgcccctatgcaaacctta +tgccgccacacctccgcaactctctcttctgaactgtaagtagcttcattactggtttga +gactatactgaagctgatgacattctaaaatggctattttcgaatgtgattcataatgtt +tatcgtttgggatggcagaatcacgttatttttgatatagcccgggtattctattgtata +gaacgtatgctacaagtcattccccgaagaagactagaagtaaacaacatgcgaccatcg +ttaagccacgcaaggctgtagctttatttcccgataacctatcttccataaatagcggac +agcaggatactgacgctcaacatcagtggttatggtctaatttttaacttttaataaggt +aacttcagcaggcatacacagtaactctttaatttataatcaaattagaagtctgacact +tcttatatttttctatcatccaacgcgatcgcccattagcttattgtgttactaataacg +tatctaaaccaatccttttcaagctactgcctatattgtcaatatatacaaacaacagga +tagtaggctgcttaaaaaatattgtcaaccgtgtacgctttacaatacccggaaatcaca +aactttgtagacaacgagtgaaatttatacactacgaagggccagcgtacaagacccatg +aattaggcgatatgtttattctgacatattggtttatccttaatctgtcgctgtaaaatg +aagccgcccccatccctgcgaattttttttcgaagattcacgactgaaatataaatacgt +ttggctatatttatgttggagggaggcaatagcctttactgttaaccgaagatttagcca +gtgagtgtgacactaaaacactggaataaatgcaggcgttcttctgggtaaaaggtttag +tcaatctcgcctataagttcatatagctctggatataattatctggcccatgcatttatc +atggcgcttggtgccctgtgtgaagccggcctctcatattgaaggtccgaagtattccat +gtacattaagatcactctctcattcatgcatcttggcttaacaaatctggttgtccaagc +tttccaggcacgtatggtacaaattcggatcgaatacttataaaaatgatatgttaaact +gtctaaaacgctcatctacaaagtaaagtgcactaaccaatagagtctcaagaccgtgta +atgctggtgcactgaatgtgtaatacggttagaagggattagttatgttacaaatccatt +gaaaacttaagaagcattgcgtgctcggagggtgcatcttttatcaagagactaacatta +ttttcaacgacgtacatgctttacaatagggtacttatcaaacgccgagaaacgcgccta +tagtgatgttatgattatgacccgatatccattggaccgaattttatgtaggttcccagc +gtactcgcgtaatatctcggtattgccataatgtaatacttgtcggtctctcccagatga +aaaagcgttacagagtatttcaatgaaaaacagcgcgcaacgtcaatacctttaggggta +acggccgctgatttcatatagatatacgataagttggtatagctctactaggtggcatcc +acaatcgttgcatttactatagctggttacaatcataatctataccgttccttacatact +accatagcgggatagcgtttttttgccgttgattgggtttaagaggatgtcagtctcatt +atatccgattcggtgggagagccgttgttttcaaatcgcacactttgtgacataatgtac +aagataacaaaactgatataagatataaactgtcaatatcaccttgacacttgaatcaaa +gtaaattaactcgcaaatataatttgactaattgggtgcagatttctcaattaataaaaa +aatggcaccggatgggcttacaagccccttatcattcacttgtatcatgatttccaagaa +caatagaatttgctagcaagtatgaacagagattcgaattgcatccacagtacgccggag +cgtttattttaatgtggatatgacgatgtactgttggcggcatttgctagtaaccggtcc +ttatttacgtagcgcacacgtaagcatgtctgggagaaatatggtggtacaatctcagag +aaagattacagtttggtttaaataggacttatcgggtcggaagtggaacttaataagcag +tacacaattgggcaacagacgtcttgcctattacaataggattacaatgcgttagatttc +agacacgttcgtgtttggctattcgtcaattccctaaatagttagacgatcaactattat +caaagtgattctttgttcatcctccattcatgtaacagatggcacactacgcataacgcc +gaggaattttaacgagatttaagagagcagttcgggcacaacccacttgactttataaca +gctcggcagcataaacggtaatatgtgacaaatttccaaacgttataagaacgtatgtgt +acttagaaaactaagtggttcatgttcaacagatgtgacgcagcaagcctaacttatcta +ttggttttgctataaaagaacaaagttacacagaatcctaagggcttgtttcacacttat +gcctagtgcttcaccatcttaaaatagcgaaaccggcacgaatcaaaccttaaaacaatg +cgcagatattggtgatggtgactccgggtatgataatggtaactgttgaccagcgcccac +ctcatcgaagtatagaaagtggttaggataaggatgagaccgaacttatttccggccata +actttagattttctacctagtacacaacatcagggcggacacgaaaccgccatcacatca +tataccaggtttaatttgcttaatgggggaagtgtcaacgaaccttcgaactttagcagg +catatggccattatatatggccccagagcagaatgctacagcagacaaaatttggattta +tgtagtttaatacctatcaaacttggtgtgaccatacttgtctaacgacagtgcacaaag +tgtaagttacaattattactactcagcagcttctgcaatgataaaatcttatcatacacg +tcacatatgataatatctacttagggggaacgggctccacaacctacatagtactcaata +cttacactattcgacaggcacaccaaacctgtacagtcccaaaagattgagtcaactttg +cagtactgcagatcacagtaatagcttagttagcgagtcaaaattagttttctacgagac +tgcacgaccgtgcaaatttccgatgtgttggctacaaatagcaacgtatgaatttgtttg +aagccacgtaaactgtacaaccttagagataagtctcaggctactaaaaacacgttgtgg +cactaacaggatcatggttgattcttacttattcggctgaccggcccaataagtaacctt +caactagaacagaataatcgggagtagtttaattcagtcaaggtgcaggtctcattgtaa +ctaacaagctctgtgtaaccaagttaaaatcgttttcttagcggattccctacttatgga +tttgagctcgtccacaatattcgatacaagaagtttgtggtccgtaacaacgaaatttta +attacgctgtgcagcctcatccaaggaattaatagaaggttgatggtaggctccgaacgc +tccatgattataatcaagtggactgtgcagtaaacgaggaaggtatcctgacgtcgtggt +gttcgtttttgttatttgtgccctatacgagtagataaaccatgaacagcacagtgtgaa +cccatggttgattttaggctaccttatttttaatttccgttacacagaaacgaattccac +aactaacatgccattaatttttcgatatcttataaaagatggtcgaaattcattcattta +ttttttttcggttctcgaaagtcaactaagctgtcgcgttttgtttctctttagaggtaa +aagtggctttgatctcctacgtttggatactagtcaaccattactccatttgatccgtga +gtatcacctgtctaacatccagcattatgactcctcggcgaagaaaagacacacttctta +gagtcgatgtgtattagctagggacacagttgtttaatacgatagtgagcccagggaggg +cagtgcgtcccccagtagatttattcagctagtgtaagtataagatatctcacccacgag +gttcaagtgatatgcagtcttagaataatacttatcctgaatttcgatattatgggtact +tcaataatccgctagcgctactttatgtctcgttggacagcaggacacatggcagtctta +aacactaaagacatcacctgaatgaatgtaatgggattacaagaatcaatgaggtattat +atacgacgtaggaaactctggatatatacagtaatctagttacgccatcgcacttcattc +ctctggaaacttagaagacatcagctgtacgtggaggaaccagacccccgtatgtagcca +aatagaaccaaagttgcttatacaaacacacccaatgacaatggaccgctggagttcgta +aactcggaacgtagtactgcacaaacccagcatttagcaataggagctacgtatgcaact +cccacgtggtaataccttcaagctatcaatatataggtgcctagctaatcgcattcgcaa +gcagtattcaagcttgtaaaccagtataataattacagaggctctatgaaacccaacttt +ccagctaaaagtcccaattaaatggttatttcgtacttttaaagtcgcccgttctgttat +tacgcgaattgattctactccaaaattaaacacaaattatcaaccgtttcatttatattt +gtcaatgcagctgtttaaaataaggctctactaaattataattaagacacttattaccag +atttctctagttaagtttgaaccagctcgactaccgcgaaagatacattcccttctctat +ttttcagttcatctatgggtcagagaagcattgaatttattctattcaccctcgtcgttc +acagcgaatcgtcagtgtgatcagtgtatgagaaatatcctaaaccgtttagtcagacca +cacgcttagaacaagtggtctaaaaagactgccctggaaggagtaagaagtatacagctg +atccggtgtatccttcagtcatctgccctatactaattacacgacgcaaggaaaaatagg +tttattttctaggcaaacccttcataggtgactccgatgtgttacgaatcatgcttgaga +atgtgctatcgttaccgacggataataacgatctccaatgaaccaaatgtagaatgtcta +ttgattacccttttactattcgacttagagataggagatagaacctcagtgtactttttt +agccgaatgggaatctttgggaggtgaatggccataaggtcgtaaatccaaccctcttaa +agtcttccatattatatcgttgttcgtggaatcgataacagatttgttgacccatagtaa +atgtatactagtttatgttgtaagtgtagattgttttccgattgccgtccaaactttatg +tcgtaattgtagaccagtaaagttgaccaaggtaagtgcccagcgatcctgcgagatcga +tcgccaatttttccagtcactgtaagtgtaggtttagataaagccgtatgagttatatca +taagggcctcggaaagcagcttcgaaccaaagttcccttataatagtagtttaactataa +aagtatatactggtctgtcgccctttcacgatttgttttaccggtttatgaagcgttacg +tcattagagcggctccaatttaaggttaacggcttccatgtgtagttgtatacaaggata +acttaaagtatctgttcagcgagctagttaagttatcctcgatagaacacaactcagagg +tcccaagatcgggtttgcaacttgctaatttattctcaaggcaaattgggaattatcgat +acctgtataccataaggtcgctcgatgtgatgcttatgtcttctggtgatcctaccttag +ttagtgctgattaacggaacattaatgtttatcgttttgagatttagccaattctctgat +tctaactcaagatgccttatctgacgtgctatgcagcccctaagtattttacattgtaat +aggacacgctcctttaaaactcgccaaaaggtcgttgtggttctctactggttaactata +taatttacagctttgttgagctagttcctctttggtttaagtcctcaatattagttggtt +cgagcgataagttggctagttaccttagtcactatattagatccgaatgttatgcttcat +ctgaagaccgccaccctccaaaatttcttttaagactcacttattgcaaggtgtaggtga +attcggctcgtttctcaagtggtgtatctgtacacgagtttccatattttcatcaacagc +caccgcacacttatgtcactctaggtattaaaagtcgctctacaaggggacgcaattaag +aaacagacatgctagtcaaaaataaacatagcgaggcaccactaattcggccgcttatca +atgggatgctctgcgcgagacgcgccagagctcagtagttagttcggacatacatttact +tcagatgatcaattagttttctacaaatgcttactctaccccgaaaaaagtcaccagact +cttacgtctctttagtatccttccgtcttatataaggtcagtcccccgtttcggtaccct +ggaatttactaagaataatgaaacagcccccaaggacgtacgtttacaaatgatagacca +gatcgcctagcttattccgacgcatgttgcatagaattgaaccaacggaatgtgagagta +actagatgagccgaccacagcacccgtttgcgtcgcagaatacgcctgatagttcggcca +cgaaatcatatgtcctttgagtattaagtatttgtaatgatcaatcgagctcaagcaagc +ttacacttcctcggatattcagggaacttagtgcctttgaaagatacgttgatcaacgaa +aaattgataatggctcatatggaatgcctacctcatagtgctgaattaacacagcactgc +ggacctaacttttcgaggtttcaagttcacgtctcaaaacctaataggctggaatatgta +gggatcctcggtgaatttgtgattgggtttgttgtagtactgaccaagtgaatattcttt +ttttctaaaagcagatctgctgccgggcactacgaaggagatctctgtgtatcattattg +cttcttgacatgatgactcttaaatcactgtgggtgtgcaaaacgatagcacaacccaat +tcgatagtacatattgttgatacttcgcactaaaccgttcatatttaaaggttgtgctcc +ttccttcgttaaatactggtgacttggtcctatctactattagctagacctctggggaac +cacgcccccgtaaaacctgtgcaagagagggggtcatacatcttagacatcgcgcctcca +ccagggaagcattgggtgattgaccaggtgtgtaacaaatatgattattcttatactaat +attagcaaagatgcataatgatttgtattaaatgtataattgaattgataagggtctttt +agtcagtgatagagtagtataaggtagacattagaactcttaaccggacgcagatttttc +ggtcttagtaagccaattagtcgacaaaacaaggtaagagcggttactagtagtacctat +aatgcactgaatcttcggtcgaagtatagttctaatgctatgcagattgtgacggcgaca +aatgttcagacttatatcatgaaacaagctcttgtaagtattgacaaatgaaaagattga +atatttttaaatacaaaatgcgcctacttattaggggaattaaccagattgaaggccaat +cctcacatgtaatgagataatagacgataaatgaaattcttgtaatagttgaactgctac +gtgatgggtattatatatgattgagatcctccaattgccgacgtcttgtcttgatgccca +aaagattgtcaacgaggagctccctcgcgtacctgtcgtccgtatcataaacgacgcgac +atgtacagcactccgaagtataagcaataataatgcgggtaatccagactagatcttttc +ggactcaatgcggtttcacggtaaacatgattaataccggagagtagtcgagcttatcag +cgatgcaagcgaattcattgtgccaggagatacgttgcagataaaaccggcaacgtatgt +caacaagttttggcgatctcgttgtttgtattcgacgaggcgcgggaacttcaagaacta +tcgtatattcaagtccattaccttttagtttcagactggtggagctgactaaagttatat +catcattttgtacactggtttagttaacgataatttcagatttaacatgaccagacgata +atcgctgtatatccagttggaatgtggtttgccagaaaggttaacttataatcaagcctc +tcttcagtcttgattcgtcgtatcccatccattgcgctatacctcagtgtatttggagct +gtagttataccgtgtgctaagatcagtagacatgacgagagcaatattatctaccttaca +agcatcaacggacgtctagtcggaacaaaagactctaaaactcgaacttcaggttaatat +actatagttctgtattcagcagttattcttatattcgatattatcttgcctattggatgt +ctgactttagtatattaatcatagtatctgccatgtaaaggtgccagtactaaatctgtt +tcacagtgcgaattataaacggttacaaccattaaagacaacaagaccctatagctttat +ttgaattttgtcaatgcgcaacttggagctcgcgatacatcccaattagtctatagggtc +gggacgattctacggcatttctggttataatgacaacatggattgtggcccgagaatcgc +tctttcattaattaagcaatcattacagtcttataagcgctacttccgagtggtagcagg +taactcgatataaggtcgcatgagccgaatagcttaaaaaacaggccaccgaacattgat +agagaataccgaccacagcgcaacctttgattactttcattaaattgtacggctcactcg +acatcaagcttaagattgcgataatgtgaactcaaatggatcagtactgaagaaccgtaa +cccacttcgcagaaagcgtacccagagaagatacgctgttacaatatacagggtgaaatt +attgcctgttcttcgtaaccatttcgccaaacttggttagaaatgatagccattcatgat +agaaataagctgaatgataccagtatctttaactatgtagtcagggggaagataacgatg +gtccatgtatgtttctgatatgtgacagtattggccgcgtaatttgctaacgaagctact +taatgcctttgagcttcatatagatttctttaatcaaaatcggcaaaaagatagtatgag +ctataatatatgctagtagagaactctggaccatcatctatatgaatactgattcgagcg +tgcaattactttagcctgcgtactactgactctacaaaacactctgagataagtttgtag +tcagtaagtcgctctctataaaccttttggatgaccattgtacagccacttatagatccc +aataaatagcacaggagacagagtttttcaatgctcgatcatttgccgatagtattttcg +tctaacctcagggcacctattatttgatacctaacctaacggccctttcacaatggagaa +atatatgacatcgggacaaacacaaatggtgggtggccaggagatatgacatggtggcgt +ctctaagaaacacggactccctctaggcaaactcacgtaaccaattttaatgtcaaacaa +aacgctcgaaaagattttgccgtgtaatgacctggtacattgactggtcaggaatacatc +actgtagttgccgtagtgtcctgttggtgttccatcaagacacatcgtataacgcaattt +acgacggacatcagatcaagttatacagattatttaagtatcacgtgtgcattgggacat +aagggatctcacacatgccttggaacatttttgctttgtgccgctttttcgctgcactac +caatccttacttaccagtatattcaaaggtcgttaacagaatgagaaaggttagggctct +aagttatcgtcgattgggatagacgagacatttgcgagcgccctccacggatacgaatct +cccatatcaatgtgaactggatgctatgcagtttagttcttacgtctcctagtggtaaaa +atcaaagtagcactcgcatagcagttattcagaacctaatacacaaaaccgtcaaacatt +ttctaattctaggtatgggccgatcataggagctaaggtgaaactcataaatgttttgtt +agatctagcatcctaaaaagatgcatatactgagtagctggcgtgcattctctcaattgt +atcctttttaactgaactagtcggtcccatttcgtgactgagatctattaaccgataaga +ttaataacactcgcattcgtatcagctcagagtgaagtttttcaataatttgactgatat +attaacttctaaaataaccctttaagcctcggatccgtttcccaatcacatcaaaaattc +ttattccaactatctacggattaacaacgtgcatggggatcgtagtaagaacttgttccg +atcactttgagtatatcaagttgacggcccggttattattgaatagaaacattcacctgc +taaattaaataccgcacatcggatacccgatttcagagggccgtcttactaagggcaggc +tttgttcggtttaactgagatgttcattattttacagtatgcttcaactaatatgtaacg +aaggacagtggatctgtctccatagtagatcttcagtcgtgaatttcataccgctcctat +ttaagttcgcgttcgagttgttgatcatggcacgtgaaagcaacccctagtattctagac +gaaaattttttctagttcatctgataatttgccaattcaaaaacaaccgctggtttcccg +gcgcattctctaaaatggaagtcgaacctagagccattatttgtcggtaacccatgagtt +ccttcttttcagaagttaatacactgtggtcctatacagaggaaaaacagcggttatata +cgatcgtggcataacaacattggatcaagatagcaatttggctacctattctaattctca +ctagattcggtattccactacaatatcggcagattaggattggatgaataatcggtgttt +aagtccggttgcgtctccaatctcctaatttttattaatattgatcttggtgacctattg +taaataaaaacttcaagactttgaataacggtgaaaagatagaagactcatttgaaaatg +gatcatccacagatccaaacattagcaagacactaatccccaactagctattctgatcgc +gatcgtgctgcagtactcctgtcacaatagtctgttcatgatctaattctttttgggctt +tgttcgatggtgattcagaatctttatccggtcgcttccctgtagctactttgtggggat +attgcccggggattatagggttgagatcgtttcctaaaagtatttaaaccaagtagactt +caactaaactacatcagaacatcgtgaagacaccatacgcggtacctttatttaccgata +acatttcttcaagaaataccggtaagcagcataatgaccctaaacagctcggggtatcgt +cgtagttttaaattttatttaggttactgctcaaggaataaaaactaactatttaattta +taataatattacaaggctcacactgattagatttgtctataagacttcgcgatcccccat +taccggattgtcttaagaataaactagataaaccatgcattttctagataaggcctttag +tctaattagatacaaaaaacacgatagttgcatccttaatttattgtgtcaaacctggaa +ccttttaattacccgcaaatcactttatgtcgagactacctctgaaatttattatctacc +taccgcatgaggacttgaaccatcttgtaggagttatgtttattagctaagattcgttta +tcctgtagcggtccatgtatattcaacaagcaaaaagcactcagaattgtttttagttga +gtcaagactgatatataaataagtttccctagttttttcgtggtgggacgatattgaatt +gaatcttaaccgaagagtttcccactctgtcgcacaataatacacgccaatatttccagc +cctgcttatgccttaatcggttactcaatctcccattgaagttcattttgatctgcatag +aagtttcgggcccagccttttttctgccaccttcctccaagctctgtagacgcactctaa +gattgatgctcacatgtattaattctacattaacataaatatataagtcatgcatcttcg +agtaaaatatctggttctccaacatgtcctggcacgtatcgttataatgcccatacatgt +agtattaaaatgattgggttaactggatattaagatcatcgaaattgtaaagtcaaatta +acaatactgtctcaagaccgtgtattcctcgtgctcggaagggctattacgcttacttcc +gttttggtatcttaatatgactttcaaaaattaagttgcagtgagtcctacctgcgtgca +tcggttagcaagagtataaaagttgtttaaacgaactacttgctttacaataccggtcgt +atatatcgccgtgaatccagaagattgtcttctttggattatcaaccgagatcctgtgga +ccgatgttttgggaccttcacagaggactccaggtagagctcgcttttgcattaatctaa +gaattgtacctctctaaaagatctaaaacagtgaatgtgtatttcatggaaaaacacaga +gaaacgtaaattactttaggccgaaaggcacatgagttattatacatatacgagatggtg +gtatacatcgaattcggggcatacactatagttgcattgtatttagctgctttaaataat +atgatattaccttccttacataagacattaccggcataccctggttttcaacttgtgggg +ctttttgacgatcgcactctcatttgatccgagtagggcggtgacccctgcttttcaaat +acaaaaatttcgctatgaaggtaatagattacttttcgctgttatgatagaaacggtaaa +tttaaaattgaaacttctagaaaagtaaagtaacgagaaatgattttgtgaataatgcgg +tcatgattgcgcaagtaagaaaaaaaggcaaaaggatgcgcggaatagaaacttatcagt +cacgggtatcttgatttcattcttcttgtcaattgccgacataggatgaaatcagattcc +aatgcaatacacagtaacccccacccttgattgtaatgtcgatttgaagttgtacgcgtc +gacgaagtggatagtatacgggccttttgtacggtgcgatcaactatgaatctcggcgag +ttagatggtcgtacaatctcacacatagaggtcacttgcctgtaatgacgaattttcggc +taggtactcgaactttattagaagtaaaaatgtgggcaaaagaaggattccattttacaa +gacgattacaatgagttacatgtctctcaacgtagtctttccctagtagtctttgaacta +tttaggtactccagaaaattttagcaaagggtttctgtgtgaatccgccattcatgttta +tgatggaacaataagaataacgccctcgtatgttatcgacagtgaagtcagcagttcggc +caaaaacatattcaatttagtacagatccccagaagttaagctaagtgctctaaaatggc +ctaaacggttatcaaagtaggtctaattactatactaacgggtgcatcgtaataactgct +gtcgatgcaacactatatgatagtgtcgttttgctatatatgtacaatgtgacaaagaag +ccttagcgattcttgcaaacttaggacttcggattctcaatcttaaatgtccgaaaacgc +aaagattcaaaaatttaatctatgagcagatatgcctgatggtgactacgcgtatgttaa +ggctaaatgttgacaaccgcacacataatcgaactattgatagtcgggagcataaccagg +tgaacgtactttgttcacgacatttattgacatgttctaaatacgtctcaaaatcacggc +gcactagaaaacgcaatcaaatcattgtcctggtttaagggccgtaatgccggtagtgtc +aaacttcatgagaactttagctggcttttggccagtatttagggaccaagagcactagcc +ttaagctgaatattttgccatttatctactgttataactttaaaacttggtggcaccaga +cttgtcgatacacacgcatcaatctgtaacgtaaaaggtttactaagaacaagcgtagga +attgagtttatattatatttaaactaaaagatgatattagcttctgagggcgatagggct +ccaaatcataaagaggaatatattattacacgattagaaacccacaacatacctcgaatc +gcccaaaagtttgacgaaacttggcagtactccacatctcagtaatacagttgggagagt +ctcaaatgttgttttattactcaatgaaccaccctcataatttcactgctgttccattaa +atttgcaaacgatcatttgctttgaagaaacgtaaaatcgacaaaattacagataagtag +atgcataataaaaaaaactgctcgctataacacgatcatcgtgcattcttacttaggagc +atcacccgcacaataacgtaccttaaactacaacactattagaccgagtactgtaattca +cgaaagctcaagctcgcattgtaaagaacttgctctctcgtaaaatgtgataatagtttg +cggagaggattcaattattttccattgcacctactccactagattcgataaaagaaggtg +gtcctcccttaaaaagaaatgttaagtaacatcggaaccataagcaaagcatgtaagtga +accgtcatccttccctaagaaacataaaggtttttaataatgtcgactgtgaactataac +tgcatcctttcctgacctactccggttccttgttgttatttctgaacgagaccagtagat +aaacaatgtaaaccacagtgggtaccaatggtgcatgtgacgctaccgttgttttaagtg +cccgtacaaacataagaagtcataatcttacttgaaattaattttgccttttattttttt +tcaggctcgaaattaatgatttgttttttttgaccttctagttacgctaatatgcggtcg +cctgtggtttctattgagtcctataacgggatgggatctaatacgtttggttactagtaa +acaaggtataaatttgataccggagtatcaactgtataacatcaagctttatgactcata +cgcgaagtaatgacacaaggctttcaggagatcgcgagtacagagccactaaggggtgta +ttacgatagtgacaccaccgagcgcactcactccccaagtagatttatgatcctacgcta +agtattagatatataaccaaagaggttctagtcagtgcaactcttagaataataattagc +cggttttgcctttttaggcctaatgcaatattcagctagcccttatgtatctcgcgttcc +acagcaccactcatggcacgcgtttaaactaatcaaatataatctatgaatgttatgcca +gtacttgaataaatcaggttttttataagtccttgcatactctcgttatatactgttaga +gtcttaccccatagaaattctttcatctgcaaacttagaagaattctcagctacggggag +cataaagtccccaggatgttgacaaatacaacaaatgtggcttatacaaacactccatat +gaaaatcgaaccctcgtggtagttttagccgaaccttgtacggataaatccctccatttt +ccaatagcagatacctatcctactacctcgtggtattaaattaaagcttgaaatatagag +ctgcatagcttatccaattcccaagcacgagtctaccgtcgtaaccacgatttgatttac +agacgctagagcaaacccatctttaaacatataagtaaaaattaaagggtgagtgcgtac +gtgtttactagcaacttcgcttattaagacaattgtttataagccataattaaaaacata +tgttcaacaggttcattgatatttgtaattgcacaggtttttaataaggatctacgtaag +tataatgaacaaactttttaccagagttatattctgtactttgaaaatgctcctctaccg +ccttagagactttcaattagattttttgcagttaatctatgcgtaagtgaaccatgcaag +ggatgcgattcaaccgcctcgtgctaaccctatcgtctgtctcataactgtaggtctaat +ataattttcagttttcgaacacataaccctttgaaaatctgctatttaatgtctcacctg +catgcactatcttctatactgctcagaacggctatacgtcactatgctccaagtgacgat +ttaaacgaagcaaggaataataggtttattttagtgcaaaacaattaagtgcggactacg +tgctctttacaataagccttgtgattgggctataggttaagtcccatattaacgatctcc +aatgtacaaaatcgacaatcgctttgcattacccggttactagtcgaattacagatagct +gttagatactcactctaattttggacaacaatcccaatcttggggtcgtctatcgcctga +agctcgtaaatccttccatcttaaacgattacatattatagacttgttcggggtagagat +atcacagttgtgcaaacattgtaaatcgatactagtttatgttggtagtctagttgcttt +taccattccccgaaaaacttgatctactatttcgacaacagtaaacttgaactaggtaag +tgaaaacagagaatgcctcatagtgccactatttgtccactatatgtaagtgtagcttta +cataatccactatgactgagatcattacggcctaggaaagcagcgtagaaaaaaagggcc +cggatattacgactgtaactataaaactagttactggtagcgcgccatgtatagatttgt +tttaccggttgtggttgcgttaacgaatttcagccgcgaaaattgatccgttaaccagtc +catctcgacttctataaaacgataaagtaaagttgatgttcagcctccttcttatggttg +catcgagagtacactactcagtgggaaatagatcggggttcctacttcagattgtattat +ctaggcaattgccgattgtgccatacctggataaaataagctacctacatgtgatgctta +tctattatcgtcatactaccttagggtgtcctgttgaacgctacattaatctttagccgt +ttgagatgttccaatggataggagtctaacgcatgatgaagtttaggaaggcagagcatc +ccactaagtatgtgacagtgtatttcgaaacgagacgttataaatagaaaaaaggtcctt +ctggttctattctgctgaactattgaatggaaagattggttgacctacgtactatttgct +tgaagtcatcaatttgacggggtgagagacatatggtgcatactttacggactctatatt +ttagatcagaagcttagcagtcttctctacaccccctcacgacataattgcttttaagaa +tctatgtttgattcctctacgggaattcggatccgttcgcatgtgcggtttatctaaacc +aggggacatatgttcagctaaagcatacgaacactttgctaactagacgtatgtatagta +gctataaatcccgacgatatttacaaaaagaaatgagactcaaatatatacatagcgacc +ctacacttattcgcaccctgatctaggcgatcctagcacccacacccgaaagtgagcact +agtgtcttccgtattaaatttactgcagttgagattttagttgtctactaaggattactc +taacccgtaataaggatcaagactcggtactagctttactatcattccctatgtgttttc +ctaactcacaagggtacgtaccagcctatgtaattacaataatgataaagacacaaagga +agtaactttacaaatgagtctccagttacactagcttagtccctcccatcttgctttgaa +gtctaaatacgcaatctctgaggatatacagcagaagaacactcataacgttggagtcca +agaattagactcatagggcccccaacatttaatatgtactgtgagtttgaaggtgttcta +ttgttaattcctgctcttgatacatgacacgtactccgtgtttaaggcttcggactgact +ttctttcataagttgagcaacgaaaatttcagaatcgataagttggattcactaactaat +acggctgattgaaaactccactccggacctatatggtcgacctttatacgtaaccgatat +aaaacttataggctggtatatcgagccttcctagcgcaatttcggatggggtttcttcta +ctactcaacaacggaatagtctttgtttagtaaaccagagctcaggacgcccaatacgta +ggagagcgctgtggagcatgtgtcattatggactggagcactcttaaatcactctgcgtg +tgctaaacgatagatcataacatgtcctgagtaaattttcttgatacgtcgcaatatacc +gttattagttaaacgttctcatccgtcatgcgtgaaatacggctgtcgtgctcagatata +ctattagcgactcatctcgcctaacacgcacacgtataaactcggaatgactgccgctct +tacatattagaaatacagactacaccacggaagcattgggtcattctcaaccgctgtata +aaagatgattagtcttataataagattaccaaagaggcagaatcatgggtagtaaatcta +ttattcaagtgattaccgtcgtgtaggcagggagtgaggacgagatggtactcaggacaa +atattaaccggacgaagtggtttacgtcgtactttcactattagtagtaaatacaaggta +acaccggggaatagtactaaatataatgatatctatcttcgggagaacgagtcgtctatt +gctttgaacattctcaaggcgtaaaatgtgctgacttatagcatgatacaaccgattgtt +acttttgtctattcaaaagattgaatagttttttatacaaaagccgcatacttatgacgg +ctagtatacagtttcatcccctagcatcaatgctatggacagtattgaacttataggaaa +ttcttctaatagggcaaatccgtcgtgatgcctattttttttcagtcacatcctcaaatg +gcactagtattgtcgggatcccattaacaggctcaaccacgagctcacgcgaggacatgt +agtccgtatctttaacgaagcgacagcgacagaactcccatggataaccaattataaggc +ccgtaatcctctagacatcgtttaccaataaatccgctttctccgtaatcatgttgaata +ccccagagtagtccagatgataaccgatgaaacacaagtctttctcaatgcacttacggt +gaacttattaccgccaacgtagctcatcaaggttgcgacatctagttgtgtgtttgcgac +gagcccagcgaacttcatcaactttcgtatattcaacgccttgtaattttactttaagac +gcctggtgatgtagattcttagataatcagtttgttatcggctgtactttaccataattt +cacaggtttcaggtcaagaagattatagctgtatatacagttccatgctcggtgcacaga +aacgtgatcggataataatcaatcgcttatgtcgtctttaggcgtatccaatacatgccc +cgataccgcagtgtatttcgacatgtaggtataccgtcgcatttgagctcgagtcaggac +gtcagctagattagattccttaatagaatataccgacctctagtccgaactaaactatag +ataacgccaacttcaggttaattgtctagtcgtctgtttgcagatgggattcttagatga +gtgagtatcggccatattggttcgagcactttagtttttgatgcataggatatgcaatgt +atagctgaaagtactttatctgtttcaaactcacattgattaaaccggtaaacctttaaa +gactacaagaaaatattcagtgagggcaattttgtcaatcacaatcttccagctagagat +acttcacaatttgtcttgaggctacgcaacattagacggattttcgcgttttattgaaat +aatcgaggggcccaagagtatccatagttcattttgtaagatttctttacaggcttatta +cagcttcttcagactcctacatgcttacgagttatatgctagcatgtgaacaatagatta +atatacaggaaaacgtacattgagagagatgaccctacacagcgcaaccgttgagtactt +tcattaaagggtaacgctctcgagacagcatccttaagatggccttattgtcaaatcatt +tgcagaagtacgcaagatccctaaccaacgtagaagaatccctacaaacacatgagacgc +ggtgaaaatagacagggtgttagtattcaatcttcggagtatcaatttcgccaatcttgg +tgagaaagcataccctttcttcagagaaagaagatcaatcataacactatctttaacgag +gtacgcacgcgcatcattacctgcctccatggatctttaggatagcggaaagtattggca +gcgtattgtgatttcgttcctactttatcaatttcacattcatatacatgtcttttatca +aaatcgccaataagataggatgagctatattagatgctagtagagttcgcgccaacatca +tcgataggaatactcaggacagcgtgataggacttttcaatccctaatactctctataat +tataactctctcttaagtttggaggcagtaacgcgctctatataatcagtttgctgcacc +attcttcagcctctgatacatacaaataaattccacagcagtaagagggtttaattgaga +catcttgggaacttaggattttactctaacatcaccgaaacgattattggataccgtacc +taaacgaactttctcaaggcagtaatataggacatccgcaataacacaaatgctgcctcc +ccaggagttatgtcttcctggaggctatatcttacacccactcactataggcaaactaaa +gtttaaatgttgattgtctaaaaaaaagatagataagagttggccggcgtagcacatgcg +aaagtgaatcgtaagctataattctctggacttgaagttctgtcctgttcctctgcaaga +aacaaacttcctttaaagctatttacgacgcacatctcagcaagttataaacatgttgga +agtttctagtcggaattcccaaagaacggatctatctaatgcattcctacatttttcctg +tctgccgatggtgccatcctattcaaagaatttcttaaaagtagattaaatgggactttt +aacaatgagtaaccttacgcctctaagggttcctcgagtgccatacaccagtcaggtccg +agccacatacacggagaacattctaacatagcattctcaactcgatcatttgcaggttac +ttctttcctatcctagtgctaaaaatcatacttgcaatcccatagcacggattaagaacc +taagaaacaattcagtaaaacatgttcgaattcttggtatgggaacatcattgcagctat +ggtctaacgcattaatgtttgggtacatcttccatcatataaacaggaagagtctgacga +cagggagtgcttgcgatcatgtctatcattgtgaaatcaaattgtagctcacatgtcgtc +tatgagagcgtgtatccgataagatttagaaaaatagaagtcgtataagatctcactgaa +cttttgaatgaatgtgaagcatatatgatctgctttaataaaactttatccataggatac +gtttccaaatcaattcaataattattagtcaaaatagataaggatgaacaacctgaaggc +cgatcggacgtagaaagtggtcccatcactttgagttgatattgttgaaccacacgttat +tatggttttcaaacagtctcaggatattgtatatacagataatccgataccagttgtctg +acgcccctcttacgtaccccaccctttgtgacgtttaaagcagttgttcagtattttaaa +ctaggcggcaactaatttggaaagaagcacagtggatatgtctaaattcttgttattcag +gcctgaatttaatacaccgcatagttaacttcgcggtagagttgttcatcatgcctcctc +taagctaccacttctatgatacaccaatagttgttctacggaatctgataattggccaag +tcataaacttccgctgcgttcaacccccttgctcgaatatccaactcgaaaagacagcct +tttggtgtccggaacaaatcagttacttcttttctgatgttaattctctgtggtcagata +cagaccaaaaactccgcggatttaccatcctccaagaacaaatttgcatcaacatagcat +tttggctacatattctaagtctcaatagtttaggttttcaactacattatcccaacatta +ggattggaggaataatagctgggtaagtccccttgcgtctacaatcgactattttttatg +aatatgcttctgccgcacctatggttattaaaaaagtcatgactttgaagaaccctgaaa +agatagatgaatcaggtgtaatggcagcagccaaagagcatataattagcaacactctaa +gaacattatagatatgatgatagcgatcgtcatgatgttatccggtcacaatagtagctt +catcagctaattcgttttgccagtggtgacttgcgctggaagaatcgttatacggtccct +tccctcttgatacggtgggggcttattcaaccgcgtggattgggttgtcatacttgcatt +aaacgatgtaaaccatctagtagtcaactatactaaatcacaaaatagtgatcaatacat +acccgcttcatggttttaaccatttaattgattaaagatattccgctaagaaccattatc +tacctaaactgatcgccgtatcctagtagtttgaaatttgatgtaccgtaatgatcaacg +aagtaaaacgttatattgtatgtagaataataggtcttggagctaaatgatgtgattggt +agtgaagacttacccttacaactttaccggtttctcggaagaatatactagagaatcaat +gcatgggctacataagcactttagtctaatgagataaaaaatacacgagtcttccatcat +gaattttttgtcgaaaaactcgaacctggtaatttaaaccatatatctttatgtcgtcaa +taactctcatatgttttatataacttcccaatcacgacttgtaactgcttgttcgactga +gctgtttgagctatgaggccgggatccggttgagctacatctatttgctacaagaaaaat +gaaagcacatttgttgggagttctggctacactcatagagaaataagtggcccgagtggg +tgcggcctgcctccatattcaagtgtatcttaaaccaagtggttccaacgctcgcgctaa +agaattaaagcctttatttcctccacggagtagcccgtaatccggttcgaaagagaccat +tgaagttaattttcatatccagtgaagtttaggcacaagcatgtgttctgccacatgcct +caaagcgctcttcaaccaagatatgattcatcctaacttcgatgaatgcgtctgtaacat +aaatatagaaggaatgattcggcgagttaattttcgccttctccaacatggcatccctac +gttcgttataaggaccatacatgtaggttttaaaggtttgcggttaatcgatatttacat +catagaaattctatagtcaaatttacaagactctagatactcactcgttgcagccggcta +ggaagcgctttgtaccttacttcccttttcgttgcgtaatatgaatttcatatagtaagt +tcaaggcactcatacctccgtgaagagggtagatagactattaaagttgtttaatagtac +gtattgatggaaatgacccgtaggagatttaccactcaatccacaagattcgctgctgtg +cattatcaaaacagtgcatgtcgaaacatgggttgggtccttcaaacacgaatccaggta +gagatacctttgcaattttt diff --git a/extra/benchmark/knucleotide/knucleotide.factor b/extra/benchmark/knucleotide/knucleotide.factor new file mode 100644 index 0000000000..f036a644ae --- /dev/null +++ b/extra/benchmark/knucleotide/knucleotide.factor @@ -0,0 +1,64 @@ +USING: kernel io io.files splitting strings + hashtables sequences assocs math namespaces prettyprint + math.parser combinators arrays sorting ; + +IN: benchmark.knucleotide + +: float>string ( float places -- string ) + swap >float number>string + "." split1 rot + over length over < + [ CHAR: 0 pad-right ] + [ head ] if "." swap 3append ; + +: discard-lines ( -- ) + readln + [ ">THREE" head? [ discard-lines ] unless ] when* ; + +: read-input ( -- input ) + discard-lines + ">" read-until drop + CHAR: \n swap remove >upper ; + +: tally ( x exemplar -- b ) + clone tuck + [ + [ [ 1+ ] [ 1 ] if* ] change-at + ] curry each ; + +: small-groups ( x n -- b ) + swap + [ length swap - 1+ ] 2keep + [ >r over + r> subseq ] 2curry map ; + +: handle-table ( inputs n -- ) + small-groups + [ length ] keep + H{ } tally >alist + sort-values reverse + [ + dup first write bl + second 100 * over / 3 float>string print + ] each + drop ; + +: handle-n ( inputs x -- ) + tuck length + small-groups H{ } tally + at [ 0 ] unless* + number>string 8 CHAR: \s pad-right write ; + +: process-input ( input -- ) + dup 1 handle-table nl + dup 2 handle-table nl + { "GGT" "GGTA" "GGTATT" "GGTATTTTAATT" "GGTATTTTAATTTATAGT" } + [ [ dupd handle-n ] keep print ] each + drop ; + +: knucleotide ( -- ) + "extra/benchmark/knucleotide/knucleotide-input.txt" resource-path + + [ read-input ] with-stream + process-input ; + +MAIN: knucleotide diff --git a/extra/benchmark/knucleotide/summary.txt b/extra/benchmark/knucleotide/summary.txt new file mode 100644 index 0000000000..c7346d4b0a --- /dev/null +++ b/extra/benchmark/knucleotide/summary.txt @@ -0,0 +1,2 @@ +The Great Computer Language Shootout's knucleotide benchmark to test +hashtables. diff --git a/extra/benchmark/mandel/mandel.factor b/extra/benchmark/mandel/mandel.factor index 0ad7c5e26d..7f1da8c71a 100644 --- a/extra/benchmark/mandel/mandel.factor +++ b/extra/benchmark/mandel/mandel.factor @@ -64,7 +64,7 @@ SYMBOL: cols building get >string ] with-scope ; -: mandel-main ( file -- ) +: mandel-main ( -- ) "mandel.ppm" resource-path [ mandel write ] with-stream ; diff --git a/extra/benchmark/reverse-complement/reverse-complement.factor b/extra/benchmark/reverse-complement/reverse-complement.factor index 7de7ec24b4..4da3972e34 100644 --- a/extra/benchmark/reverse-complement/reverse-complement.factor +++ b/extra/benchmark/reverse-complement/reverse-complement.factor @@ -26,6 +26,8 @@ HINTS: do-trans-map string ; over push ] if ; +HINTS: do-line vector string ; + : (reverse-complement) ( seq -- ) readln [ do-line (reverse-complement) ] [ show-seq ] if* ; diff --git a/extra/benchmark/spectral-norm/spectral-norm.factor b/extra/benchmark/spectral-norm/spectral-norm.factor index e67359e70c..42bae7d0d1 100644 --- a/extra/benchmark/spectral-norm/spectral-norm.factor +++ b/extra/benchmark/spectral-norm/spectral-norm.factor @@ -49,7 +49,7 @@ IN: benchmark.spectral-norm HINTS: spectral-norm fixnum ; -: spectral-norm-main ( n -- ) +: spectral-norm-main ( -- ) 2000 spectral-norm . ; MAIN: spectral-norm-main diff --git a/extra/benchmark/sum-file/sum-file.factor b/extra/benchmark/sum-file/sum-file.factor index 0e64e80f4c..14166feb5b 100644 --- a/extra/benchmark/sum-file/sum-file.factor +++ b/extra/benchmark/sum-file/sum-file.factor @@ -4,7 +4,7 @@ IN: benchmark.sum-file : sum-file-loop ( n -- n' ) readln [ string>number + sum-file-loop ] when* ; -: sum-file ( file -- n ) +: sum-file ( file -- ) [ 0 sum-file-loop ] with-stream . ; : sum-file-main ( -- ) diff --git a/extra/calendar/calendar.factor b/extra/calendar/calendar.factor index c255e0a78e..55d632d245 100644 --- a/extra/calendar/calendar.factor +++ b/extra/calendar/calendar.factor @@ -2,8 +2,8 @@ ! See http://factorcode.org/license.txt for BSD license. USING: arrays hashtables io io.streams.string kernel math -math.vectors math.functions math.parser -namespaces sequences strings tuples system ; +math.vectors math.functions math.parser namespaces sequences +strings tuples system debugger ; IN: calendar TUPLE: timestamp year month day hour minute second gmt-offset ; @@ -316,7 +316,28 @@ M: timestamp <=> ( ts1 ts2 -- n ) : timestamp>rfc3339 ( timestamp -- str ) >gmt [ (timestamp>rfc3339) - ] string-out ; + ] string-out ; + +: expect read1 assert= ; + +: (rfc3339>timestamp) ( -- timestamp ) + 4 read string>number ! year + CHAR: - expect + 2 read string>number ! month + CHAR: - expect + 2 read string>number ! day + CHAR: T expect + 2 read string>number ! hour + CHAR: : expect + 2 read string>number ! minute + CHAR: : expect + 2 read string>number ! second + 0 ; + +: rfc3339>timestamp ( str -- timestamp ) + [ + (rfc3339>timestamp) + ] string-in ; : file-time-string ( timestamp -- string ) [ diff --git a/extra/cocoa/cocoa.factor b/extra/cocoa/cocoa.factor index ddfb601be5..f13a5e2ab0 100644 --- a/extra/cocoa/cocoa.factor +++ b/extra/cocoa/cocoa.factor @@ -58,8 +58,9 @@ SYMBOL: super-sent-messages "NSSavePanel" "NSView" "NSWindow" + "NSWorkspace" } [ - f import-objc-class + [ ] import-objc-class ] each : ( str -- alien ) -> autorelease ; diff --git a/extra/cocoa/messages/messages.factor b/extra/cocoa/messages/messages.factor index 91c4262312..54ddbaa0cf 100644 --- a/extra/cocoa/messages/messages.factor +++ b/extra/cocoa/messages/messages.factor @@ -4,7 +4,7 @@ USING: alien alien.c-types alien.compiler arrays assocs combinators compiler inference.transforms kernel math namespaces parser prettyprint prettyprint.sections quotations sequences strings words cocoa.runtime io macros -memoize ; +memoize debugger ; IN: cocoa.messages : make-sender ( method function -- quot ) @@ -201,8 +201,11 @@ H{ : import-objc-class ( name quot -- ) 2dup unless-defined dupd define-objc-class-word - dup objc-class register-objc-methods - objc-meta-class register-objc-methods ; + [ + dup + objc-class register-objc-methods + objc-meta-class register-objc-methods + ] curry try ; : root-class ( class -- root ) dup objc-class-super-class [ root-class ] [ ] ?if ; diff --git a/extra/combinators/lib/lib-tests.factor b/extra/combinators/lib/lib-tests.factor index 43385b911d..0d76e6f50d 100644 --- a/extra/combinators/lib/lib-tests.factor +++ b/extra/combinators/lib/lib-tests.factor @@ -58,3 +58,5 @@ IN: temporary [ dup array? ] [ dup vector? ] [ dup float? ] } || nip ] unit-test + +[ 1 2 3 4 ] [ { 1 2 3 4 } 4 nfirst ] unit-test diff --git a/extra/combinators/lib/lib.factor b/extra/combinators/lib/lib.factor index 3f49da7cb3..047887bcc8 100644 --- a/extra/combinators/lib/lib.factor +++ b/extra/combinators/lib/lib.factor @@ -67,6 +67,9 @@ MACRO: napply ( n -- ) : map-with2 ( obj obj list quot -- newseq ) 2 map-withn ; inline +MACRO: nfirst ( n -- ) + [ [ swap nth ] curry [ keep ] curry ] map concat [ drop ] compose ; + ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : sigma ( seq quot -- n ) [ rot slip + ] curry 0 swap reduce ; diff --git a/extra/delegate/author.txt b/extra/delegate/author.txt new file mode 100644 index 0000000000..f990dd0ed2 --- /dev/null +++ b/extra/delegate/author.txt @@ -0,0 +1 @@ +Daniel Ehrenberg diff --git a/extra/delegate/delegate-docs.factor b/extra/delegate/delegate-docs.factor new file mode 100644 index 0000000000..5ceeac42bb --- /dev/null +++ b/extra/delegate/delegate-docs.factor @@ -0,0 +1,52 @@ +USING: delegate help.syntax help.markup ; + +HELP: define-protocol +{ $values { "wordlist" "a sequence of words" } { "protocol" "a word for the new protocol" } } +{ $description "Defines a symbol as a protocol." } +{ $notes "Usually, " { $link POSTPONE: PROTOCOL: } " should be used instead. This is only for runtime use." } ; + +HELP: PROTOCOL: +{ $syntax "PROTOCOL: protocol-name words... ;" } +{ $description "Defines an explicit protocol, which can be used as a basis for delegation or mimicry." } ; + +{ define-protocol POSTPONE: PROTOCOL: } related-words + +HELP: define-consult +{ $values { "class" "a class" } { "group" "a protocol, generic word or tuple class" } { "quot" "a quotation" } } +{ $description "Defines a class to consult, using the given quotation, on the generic words contained in the group." } +{ $notes "Usually, " { $link POSTPONE: CONSULT: } " should be used instead. This is only for runtime use." } ; + +HELP: CONSULT: +{ $syntax "CONSULT: group class getter... ;" } +{ $values { "group" "a protocol, generic word or tuple class" } { "class" "a class" } { "getter" "code to get where the method should be forwarded" } } +{ $description "Defines a class to consult, using the given code, on the generic words contained in the group. This means that, when one of the words in the group is called on an object of this class, the quotation will be called, and then the generic word called again. If the getter is empty, this will cause an infinite loop. Consultation overwrites the existing methods, but others can be defined afterwards." } ; + +{ define-consult POSTPONE: CONSULT: } related-words + +HELP: define-mimic +{ $values { "group" "a protocol, generic word or tuple class" } { "mimicker" "a class" } { "mimicked" "a class" } } +{ $description "For the generic words in the group, the given mimicker copies the methods of the mimicked. This only works for the methods that have already been defined when the word is called." } +{ $notes "Usually, " { $link POSTPONE: MIMIC: } " should be used instead. This is only for runtime use." } ; + +HELP: MIMIC: +{ $syntax "MIMIC: group mimicker mimicked" } +{ $values { "group" "a protocol, generic word or tuple class" } { "mimicker" "a class" } { "mimicked" "a class" } } +{ $description "For the generic words in the group, the given mimicker copies the methods of the mimicked. This only works for the methods that have already been defined when the syntax is used. Mimicking overwrites existing methods." } ; + +HELP: group-words +{ $values { "group" "a group" } { "words" "an array of words" } } +{ $description "Given a protocol, generic word or tuple class, this returns the corresponding generic words that this group contains." } ; + +ARTICLE: { "delegate" "intro" } "Delegation module" +"This vocabulary defines methods for consultation and mimicry, independent of the current Factor object system; it is a replacement for Factor's builtin delegation system. Fundamental to the concept of generic word groups, which can be specific protocols, generic words or tuple slot accessors. Fundamentally, a group is a word which has a method for " { $link group-words } ". To define a group as a set of words, use" +{ $subsection POSTPONE: PROTOCOL: } +{ $subsection define-protocol } +"One method of object extension which this vocabulary defines is consultation. This is slightly different from the current Factor concept of delegation, in that instead of delegating for all generic words not implemented, only generic words included in a specific group are consulted. Additionally, instead of using a single hard-coded delegate slot, you can specify any quotation to execute in order to retrieve who to consult. The literal syntax and defining word are" +{ $subsection POSTPONE: CONSULT: } +{ $subsection define-consult } +"Another object extension mechanism is mimicry. This is the copying of methods in a group from one class to another. For certain applications, this is more appropriate than delegation, as it avoids the slicing problem. It is inappropriate for tuple slots, however. The literal syntax and defining word are" +{ $subsection POSTPONE: MIMIC: } +{ $subsection define-mimic } ; + +IN: delegate +ABOUT: { "delegate" "intro" } diff --git a/extra/delegate/delegate-tests.factor b/extra/delegate/delegate-tests.factor new file mode 100644 index 0000000000..01ef33b922 --- /dev/null +++ b/extra/delegate/delegate-tests.factor @@ -0,0 +1,26 @@ +USING: delegate kernel arrays tools.test ; + +TUPLE: hello this that ; +C: hello + +TUPLE: goodbye these those ; +C: goodbye + +GENERIC: foo ( x -- y ) +GENERIC: bar ( a -- b ) +PROTOCOL: baz foo bar ; + +CONSULT: baz goodbye goodbye-these ; +M: hello foo hello-this ; +M: hello bar dup hello? swap hello-that 2array ; + +GENERIC: bing ( c -- d ) +CONSULT: hello goodbye goodbye-these ; +M: hello bing dup hello? swap hello-that 2array ; +MIMIC: bing goodbye hello + +[ 1 { t 0 } ] [ 1 0 [ foo ] keep bar ] unit-test +[ { t 0 } ] [ 1 0 bing ] unit-test +[ 1 ] [ 1 0 f foo ] unit-test +[ { t 0 } ] [ 1 0 f bar ] unit-test +[ { f 0 } ] [ 1 0 f bing ] unit-test diff --git a/extra/delegate/delegate.factor b/extra/delegate/delegate.factor new file mode 100644 index 0000000000..5614296305 --- /dev/null +++ b/extra/delegate/delegate.factor @@ -0,0 +1,73 @@ +! Copyright (C) 2007 Daniel Ehrenberg +! See http://factorcode.org/license.txt for BSD license. +USING: parser generic kernel classes words slots io definitions +sequences sequences.private assocs prettyprint.sections arrays ; +IN: delegate + +: define-protocol ( wordlist protocol -- ) + swap { } like "protocol-words" set-word-prop ; + +: PROTOCOL: + CREATE dup reset-generic dup define-symbol + parse-definition swap define-protocol ; parsing + +PREDICATE: word protocol "protocol-words" word-prop ; + +GENERIC: group-words ( group -- words ) + +M: protocol group-words + "protocol-words" word-prop ; + +M: generic group-words + 1array ; + +M: tuple-class group-words + "slots" word-prop 1 tail ! The first slot is the delegate + ! 1 tail should be removed when the delegate slot is removed + dup [ slot-spec-reader ] map + swap [ slot-spec-writer ] map append ; + +: spin ( x y z -- z y x ) + swap rot ; + +: define-consult-method ( word class quot -- ) + pick add spin define-method ; + +: define-consult ( class group quot -- ) + >r group-words r> + swapd [ define-consult-method ] 2curry each ; + +: CONSULT: + scan-word scan-word parse-definition swapd define-consult ; parsing + +PROTOCOL: sequence-protocol + clone clone-like like new new-resizable nth nth-unsafe + set-nth set-nth-unsafe length immutable set-length lengthen ; + +PROTOCOL: assoc-protocol + at* assoc-size >alist assoc-find set-at + delete-at clear-assoc new-assoc assoc-like ; + +PROTOCOL: stream-protocol + stream-close stream-read1 stream-read stream-read-until + stream-flush stream-write1 stream-write stream-format + stream-nl make-span-stream make-block-stream stream-readln + make-cell-stream stream-write-table set-timeout ; + +PROTOCOL: definition-protocol + where set-where forget uses redefined* + synopsis* definer definition ; + +PROTOCOL: prettyprint-section-protocol + section-fits? indent-section? unindent-first-line? + newline-after? short-section? short-section long-section +
delegate>block add-section ; + +: define-mimic ( group mimicker mimicked -- ) + >r >r group-words r> r> [ + pick "methods" word-prop at dup + [ method-def spin define-method ] [ 3drop ] if + ] 2curry each ; + +: MIMIC: + scan-word scan-word scan-word define-mimic ; parsing diff --git a/extra/delegate/summary.txt b/extra/delegate/summary.txt new file mode 100644 index 0000000000..ef49220ac4 --- /dev/null +++ b/extra/delegate/summary.txt @@ -0,0 +1 @@ +Delegation and mimicking on top of the Factor object system diff --git a/extra/documents/documents.factor b/extra/documents/documents.factor old mode 100644 new mode 100755 index bc4dc412fc..01034e0e3f --- a/extra/documents/documents.factor +++ b/extra/documents/documents.factor @@ -167,6 +167,12 @@ M: char-elt prev-elt M: char-elt next-elt drop [ drop 1 +col ] (next-char) ; +TUPLE: one-char-elt ; + +M: one-char-elt prev-elt 2drop ; + +M: one-char-elt next-elt 2drop ; + : (word-elt) ( loc document quot -- loc ) pick >r >r >r first2 swap r> doc-line r> call diff --git a/extra/editors/editors.factor b/extra/editors/editors.factor index 930a39dfdf..7d95c8ce8a 100644 --- a/extra/editors/editors.factor +++ b/extra/editors/editors.factor @@ -1,21 +1,36 @@ ! Copyright (C) 2005, 2007 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: parser kernel namespaces sequences definitions io.files -inspector continuations tuples tools.crossref io prettyprint -source-files ; +inspector continuations tuples tools.crossref tools.browser +io prettyprint source-files assocs vocabs vocabs.loader ; IN: editors TUPLE: no-edit-hook ; -M: no-edit-hook summary drop "No edit hook is set" ; +M: no-edit-hook summary + drop "You must load one of the below vocabularies before using editor integration:" ; SYMBOL: edit-hook +: available-editors ( -- seq ) + "editors" all-child-vocabs + values concat [ vocab-name ] map ; + +: editor-restarts ( -- alist ) + available-editors + [ "Load " over append swap ] { } map>assoc ; + +: no-edit-hook ( -- ) + \ no-edit-hook construct-empty + editor-restarts throw-restarts + require ; + : edit-location ( file line -- ) - >r ?resource-path r> - edit-hook get dup [ - \ no-edit-hook construct-empty throw - ] if ; + edit-hook get [ + >r >r ?resource-path r> r> call + ] [ + no-edit-hook edit-location + ] if* ; : edit ( defspec -- ) where [ first2 edit-location ] when* ; diff --git a/extra/editors/editpadpro/editpadpro.factor b/extra/editors/editpadpro/editpadpro.factor index b79ac6a594..69a9e2badd 100644 --- a/extra/editors/editpadpro/editpadpro.factor +++ b/extra/editors/editpadpro/editpadpro.factor @@ -1,8 +1,15 @@ USING: definitions kernel parser words sequences math.parser -namespaces editors io.launcher ; +namespaces editors io.launcher windows.shell32 io.files +io.paths strings ; IN: editors.editpadpro +: editpadpro-path + \ editpadpro-path get-global [ + program-files "JGsoft" path+ walk-dir + [ >lower "editpadpro.exe" tail? ] find nip + ] unless* ; + : editpadpro ( file line -- ) - [ "editpadpro.exe /l" % # " \"" % % "\"" % ] "" make run-process ; + [ editpadpro-path % " /l" % # " \"" % % "\"" % ] "" make run-detached ; [ editpadpro ] edit-hook set-global diff --git a/extra/editors/editpadpro/summary.txt b/extra/editors/editpadpro/summary.txt new file mode 100644 index 0000000000..9be02c58b7 --- /dev/null +++ b/extra/editors/editpadpro/summary.txt @@ -0,0 +1 @@ +EditPadPro editor integration diff --git a/extra/editors/editplus/authors.txt b/extra/editors/editplus/authors.txt new file mode 100644 index 0000000000..4eec9c9a08 --- /dev/null +++ b/extra/editors/editplus/authors.txt @@ -0,0 +1 @@ +Aaron Schaefer diff --git a/extra/editors/editplus/editplus.factor b/extra/editors/editplus/editplus.factor new file mode 100755 index 0000000000..bff523b50d --- /dev/null +++ b/extra/editors/editplus/editplus.factor @@ -0,0 +1,15 @@ +USING: editors io.files io.launcher kernel math.parser +namespaces sequences windows.shell32 ; +IN: editors.editplus + +: editplus-path ( -- path ) + \ editplus-path get-global [ + program-files "\\EditPlus 2\\editplus.exe" append + ] unless* ; + +: editplus ( file line -- ) + [ + editplus-path % " -cursor " % # " " % % + ] "" make run-detached ; + +[ editplus ] edit-hook set-global diff --git a/extra/editors/editplus/summary.txt b/extra/editors/editplus/summary.txt new file mode 100644 index 0000000000..9a696c2f0f --- /dev/null +++ b/extra/editors/editplus/summary.txt @@ -0,0 +1 @@ +EditPlus editor integration diff --git a/extra/editors/emacs/summary.txt b/extra/editors/emacs/summary.txt new file mode 100644 index 0000000000..cc15946aab --- /dev/null +++ b/extra/editors/emacs/summary.txt @@ -0,0 +1 @@ +Emacs editor integration diff --git a/extra/editors/emeditor/authors.txt b/extra/editors/emeditor/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/editors/emeditor/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/editors/emeditor/emeditor.factor b/extra/editors/emeditor/emeditor.factor new file mode 100755 index 0000000000..2caa42b480 --- /dev/null +++ b/extra/editors/emeditor/emeditor.factor @@ -0,0 +1,16 @@ +USING: editors hardware-info.windows io.files io.launcher +kernel math.parser namespaces sequences windows.shell32 ; +IN: editors.emeditor + +: emeditor-path ( -- path ) + \ emeditor-path get-global [ + program-files "\\EmEditor\\EmEditor.exe" path+ + ] unless* ; + +: emeditor ( file line -- ) + [ + emeditor-path % " /l " % # + " " % "\"" % % "\"" % + ] "" make run-detached ; + +[ emeditor ] edit-hook set-global diff --git a/extra/editors/emeditor/summary.txt b/extra/editors/emeditor/summary.txt new file mode 100644 index 0000000000..831acc08af --- /dev/null +++ b/extra/editors/emeditor/summary.txt @@ -0,0 +1 @@ +EmEditor integration diff --git a/extra/editors/gvim/gvim.factor b/extra/editors/gvim/gvim.factor index d26bd70209..7a1f939b5c 100644 --- a/extra/editors/gvim/gvim.factor +++ b/extra/editors/gvim/gvim.factor @@ -1,14 +1,18 @@ -USING: kernel math math.parser namespaces editors.vim ; +USING: io.backend io.files kernel math math.parser +namespaces editors.vim sequences system ; IN: editors.gvim TUPLE: gvim ; +HOOK: gvim-path io-backend ( -- path ) + + M: gvim vim-command ( file line -- string ) - [ - "\"" % vim-path get % "\"" % - vim-switches get [ % ] when* - "+" % # " \"" % % "\"" % - ] "" make ; + [ "\"" % gvim-path % "\" \"" % swap % "\" +" % # ] "" make ; + +t vim-detach set-global ! don't block the ui T{ gvim } vim-editor set-global -"gvim" vim-path set-global + +USE-IF: unix? editors.gvim.unix +USE-IF: windows? editors.gvim.windows diff --git a/extra/editors/gvim/summary.txt b/extra/editors/gvim/summary.txt new file mode 100644 index 0000000000..4096b820fc --- /dev/null +++ b/extra/editors/gvim/summary.txt @@ -0,0 +1 @@ +gVim editor integration diff --git a/extra/editors/gvim/unix/unix.factor b/extra/editors/gvim/unix/unix.factor new file mode 100644 index 0000000000..fd295cc9e9 --- /dev/null +++ b/extra/editors/gvim/unix/unix.factor @@ -0,0 +1,7 @@ +USING: editors.gvim io.unix.backend kernel namespaces ; +IN: editors.gvim.unix + +M: unix-io gvim-path + \ gvim-path get-global [ + "gvim" + ] unless* ; diff --git a/extra/editors/gvim/windows/windows.factor b/extra/editors/gvim/windows/windows.factor new file mode 100644 index 0000000000..5a3ea6b67a --- /dev/null +++ b/extra/editors/gvim/windows/windows.factor @@ -0,0 +1,8 @@ +USING: editors.gvim io.files io.windows kernel namespaces +sequences windows.shell32 ; +IN: editors.gvim.windows + +M: windows-io gvim-path + \ gvim-path get-global [ + program-files walk-dir [ "gvim.exe" tail? ] find nip + ] unless* ; diff --git a/extra/editors/notepadpp/authors.txt b/extra/editors/notepadpp/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/editors/notepadpp/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/editors/notepadpp/notepadpp.factor b/extra/editors/notepadpp/notepadpp.factor new file mode 100644 index 0000000000..4f3fde917d --- /dev/null +++ b/extra/editors/notepadpp/notepadpp.factor @@ -0,0 +1,15 @@ +USING: editors io.files io.launcher kernel math.parser +namespaces windows.shell32 ; +IN: editors.notepadpp + +: notepadpp-path + \ notepadpp-path get-global [ + program-files "notepad++\\notepad++.exe" path+ + ] unless* ; + +: notepadpp ( file line -- ) + [ + notepadpp-path % " -n" % # " " % % + ] "" make run-detached ; + +[ notepadpp ] edit-hook set-global diff --git a/extra/editors/notepadpp/summary.txt b/extra/editors/notepadpp/summary.txt new file mode 100644 index 0000000000..8988904216 --- /dev/null +++ b/extra/editors/notepadpp/summary.txt @@ -0,0 +1 @@ +Notepad++ editor integration diff --git a/extra/editors/scite/summary.txt b/extra/editors/scite/summary.txt new file mode 100644 index 0000000000..1088ee7f5a --- /dev/null +++ b/extra/editors/scite/summary.txt @@ -0,0 +1 @@ +SciTE editor integration diff --git a/extra/editors/ted-notepad/authors.txt b/extra/editors/ted-notepad/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/editors/ted-notepad/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/editors/ted-notepad/summary.txt b/extra/editors/ted-notepad/summary.txt new file mode 100644 index 0000000000..c1b8424393 --- /dev/null +++ b/extra/editors/ted-notepad/summary.txt @@ -0,0 +1 @@ +TED Notepad integration diff --git a/extra/editors/ted-notepad/ted-notepad.factor b/extra/editors/ted-notepad/ted-notepad.factor new file mode 100644 index 0000000000..b56ee0a08b --- /dev/null +++ b/extra/editors/ted-notepad/ted-notepad.factor @@ -0,0 +1,16 @@ +USING: editors io.files io.launcher kernel math.parser +namespaces sequences windows.shell32 ; +IN: editors.ted-notepad + +: ted-notepad-path + \ ted-notepad-path get-global [ + program-files "\\TED Notepad\\TedNPad.exe" path+ + ] unless* ; + +: ted-notepad ( file line -- ) + [ + ted-notepad-path % " /l" % # + " " % % + ] "" make run-detached ; + +[ ted-notepad ] edit-hook set-global diff --git a/extra/editors/textmate/summary.txt b/extra/editors/textmate/summary.txt new file mode 100644 index 0000000000..6c573c4829 --- /dev/null +++ b/extra/editors/textmate/summary.txt @@ -0,0 +1 @@ +Textmate editor integration diff --git a/extra/editors/ultraedit/authors.txt b/extra/editors/ultraedit/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/editors/ultraedit/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/editors/ultraedit/summary.txt b/extra/editors/ultraedit/summary.txt new file mode 100644 index 0000000000..fe2ad9c1a9 --- /dev/null +++ b/extra/editors/ultraedit/summary.txt @@ -0,0 +1 @@ +UltraEdit editor integration diff --git a/extra/editors/ultraedit/ultraedit.factor b/extra/editors/ultraedit/ultraedit.factor new file mode 100644 index 0000000000..50c241daea --- /dev/null +++ b/extra/editors/ultraedit/ultraedit.factor @@ -0,0 +1,17 @@ +USING: editors io.files io.launcher kernel math.parser +namespaces sequences windows.shell32 ; +IN: editors.ultraedit + +: ultraedit-path ( -- path ) + \ ultraedit-path get-global [ + program-files + "\\IDM Computer Solutions\\UltraEdit-32\\uedit32.exe" path+ + ] unless* ; + +: ultraedit ( file line -- ) + [ + ultraedit-path % " " % swap % "/" % # "/1" % + ] "" make run-detached ; + + +[ ultraedit ] edit-hook set-global diff --git a/extra/editors/vim/summary.txt b/extra/editors/vim/summary.txt new file mode 100644 index 0000000000..559053219f --- /dev/null +++ b/extra/editors/vim/summary.txt @@ -0,0 +1 @@ +Vim editor integration diff --git a/extra/editors/wordpad/authors.txt b/extra/editors/wordpad/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/editors/wordpad/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/editors/wordpad/summary.txt b/extra/editors/wordpad/summary.txt new file mode 100644 index 0000000000..016c602e75 --- /dev/null +++ b/extra/editors/wordpad/summary.txt @@ -0,0 +1 @@ +Wordpad editor integration diff --git a/extra/editors/wordpad/wordpad.factor b/extra/editors/wordpad/wordpad.factor new file mode 100644 index 0000000000..eb882a9e38 --- /dev/null +++ b/extra/editors/wordpad/wordpad.factor @@ -0,0 +1,15 @@ +USING: editors hardware-info.windows io.launcher kernel +math.parser namespaces sequences windows.shell32 ; +IN: editors.wordpad + +: wordpad-path ( -- path ) + \ wordpad-path get [ + program-files "\\Windows NT\\Accessories\\wordpad.exe" append + ] unless* ; + +: wordpad ( file line -- ) + [ + wordpad-path % drop " " % "\"" % % "\"" % + ] "" make run-detached ; + +[ wordpad ] edit-hook set-global diff --git a/extra/faq/faq.factor b/extra/faq/faq.factor new file mode 100644 index 0000000000..9f39b33dc6 --- /dev/null +++ b/extra/faq/faq.factor @@ -0,0 +1,114 @@ +! Copyright (C) 2007 Daniel Ehrenberg +! See http://factorcode.org/license.txt for BSD license. +USING: xml kernel sequences xml.utilities combinators.lib +math xml.data arrays assocs xml.generator xml.writer namespaces +math.parser io ; +IN: faq + +: find-after ( seq quot -- elem after ) + over >r find r> rot 1+ tail ; inline + +: tag-named? ( tag name -- ? ) + assure-name swap (get-tag) ; + +! Questions +TUPLE: q/a question answer ; +C: q/a + +: li>q/a ( li -- q/a ) + [ "br" tag-named? not ] subset + [ "strong" tag-named? ] find-after + >r tag-children r> ; + +: q/a>li ( q/a -- li ) + [ q/a-question "strong" build-tag* f "br" build-tag* 2array ] keep + q/a-answer append "li" build-tag* ; + +: xml>q/a ( xml -- q/a ) + [ "question" tag-named tag-children ] keep + "answer" tag-named tag-children ; + +: q/a>xml ( q/a -- xml ) + [ q/a-question "question" build-tag* ] keep + q/a-answer "answer" build-tag* + "\n" swap 3array "qa" build-tag* ; + +! Lists of questions +TUPLE: question-list title seq ; +C: question-list + +: xml>question-list ( list -- question-list ) + [ "title" swap at ] keep + tag-children [ tag? ] subset [ xml>q/a ] map + ; + +: question-list>xml ( question-list -- list ) + [ question-list-seq [ q/a>xml "\n" swap 2array ] + map concat "list" build-tag* ] keep + question-list-title [ "title" pick set-at ] when* ; + +: html>question-list ( h3 ol -- question-list ) + >r [ children>string ] [ f ] if* r> + children-tags [ li>q/a ] map ; + +: question-list>h3 ( id question-list -- h3 ) + question-list-title [ + "h3" build-tag + swap number>string "id" pick set-at + ] [ drop f ] if* ; + +: question-list>html ( question-list start id -- h3/f ol ) + -rot >r [ question-list>h3 ] keep + question-list-seq [ q/a>li ] map "ol" build-tag* r> + number>string "start" pick set-at + "margin-left: 5em" "style" pick set-at ; + +! Overall everything +TUPLE: faq header lists ; +C: faq + +: html>faq ( div -- faq ) + unclip swap { "h3" "ol" } [ tags-named ] curry* map + first2 >r f add* r> [ html>question-list ] 2map ; + +: header, ( faq -- ) + dup faq-header , + faq-lists first 1 -1 question-list>html nip , ; + +: br, ( -- ) + "br" contained, nl, ; + +: toc-link, ( question-list number -- ) + number>string "#" swap append "href" swap 2array 1array + "a" swap [ question-list-title , ] tag*, br, ; + +: toc, ( faq -- ) + "div" { { "style" "background-color: #eee; margin-left: 30%; margin-right: 30%; width: auto; padding: 5px; margin-top: 1em; margin-bottom: 1em" } } [ + "strong" [ "The big questions" , ] tag, br, + faq-lists 1 tail dup length [ toc-link, ] 2each + ] tag*, ; + +: faq-sections, ( question-lists -- ) + unclip question-list-seq length 1+ dupd + [ question-list-seq length + ] accumulate nip + 0 -rot [ pick question-list>html [ , nl, ] 2apply 1+ ] 2each drop ; + +: faq>html ( faq -- div ) + "div" [ + dup header, + dup toc, + faq-lists faq-sections, + ] make-xml ; + +: xml>faq ( xml -- faq ) + [ "header" tag-named children>string ] keep + "list" tags-named [ xml>question-list ] map ; + +: faq>xml ( faq -- xml ) + "faq" [ + "header" [ dup faq-header , ] tag, + faq-lists [ question-list>xml , nl, ] each + ] make-xml ; + +: read-write-faq ( xml-stream -- ) + read-xml xml>faq faq>html write-xml ; diff --git a/extra/fjsc/fjsc-tests.factor b/extra/fjsc/fjsc-tests.factor old mode 100644 new mode 100755 index 8dda62faea..1c70c0c325 --- a/extra/fjsc/fjsc-tests.factor +++ b/extra/fjsc/fjsc-tests.factor @@ -4,51 +4,51 @@ USING: kernel tools.test parser-combinators lazy-lists fjsc ; IN: temporary { T{ ast-expression f { T{ ast-number f 55 } T{ ast-identifier f "2abc1" } T{ ast-number f 100 } } } } [ - "55 2abc1 100" 'expression' parse car parse-result-parsed + "55 2abc1 100" 'expression' parse-1 ] unit-test { T{ ast-quotation f { T{ ast-number f 55 } T{ ast-identifier f "2abc1" } T{ ast-number f 100 } } } } [ - "[ 55 2abc1 100 ]" 'quotation' parse car parse-result-parsed + "[ 55 2abc1 100 ]" 'quotation' parse-1 ] unit-test { T{ ast-array f { T{ ast-number f 55 } T{ ast-identifier f "2abc1" } T{ ast-number f 100 } } } } [ - "{ 55 2abc1 100 }" 'array' parse car parse-result-parsed + "{ 55 2abc1 100 }" 'array' parse-1 ] unit-test { T{ ast-stack-effect f { } { "d" "e" "f" } } } [ - "( -- d e f )" 'stack-effect' parse car parse-result-parsed + "( -- d e f )" 'stack-effect' parse-1 ] unit-test { T{ ast-stack-effect f { "a" "b" "c" } { "d" "e" "f" } } } [ - "( a b c -- d e f )" 'stack-effect' parse car parse-result-parsed + "( a b c -- d e f )" 'stack-effect' parse-1 ] unit-test { T{ ast-stack-effect f { "a" "b" "c" } { } } } [ - "( a b c -- )" 'stack-effect' parse car parse-result-parsed + "( a b c -- )" 'stack-effect' parse-1 ] unit-test { T{ ast-stack-effect f { } { } } } [ - "( -- )" 'stack-effect' parse car parse-result-parsed + "( -- )" 'stack-effect' parse-1 ] unit-test { } [ ": foo ( a b -- c d ) abcdefghijklmn 123 ;" 'expression' parse car drop ] unit-test - -{ T{ ast-expression f { T{ ast-string f "abcd" } } } } [ - "\"abcd\"" 'statement' parse car parse-result-parsed -] unit-test + +{ T{ ast-expression f { T{ ast-string f "abcd" } } } } [ + "\"abcd\"" 'statement' parse-1 +] unit-test { T{ ast-expression f { T{ ast-use f "foo" } } } } [ - "USE: foo" 'statement' parse car parse-result-parsed + "USE: foo" 'statement' parse-1 ] unit-test { T{ ast-expression f { T{ ast-in f "foo" } } } } [ - "IN: foo" 'statement' parse car parse-result-parsed + "IN: foo" 'statement' parse-1 ] unit-test { T{ ast-expression f { T{ ast-using f { "foo" "bar" } } } } } [ - "USING: foo bar ;" 'statement' parse car parse-result-parsed + "USING: foo bar ;" 'statement' parse-1 ] unit-test diff --git a/extra/fjsc/fjsc.factor b/extra/fjsc/fjsc.factor old mode 100644 new mode 100755 index c6572f147c..22031afb25 --- a/extra/fjsc/fjsc.factor +++ b/extra/fjsc/fjsc.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2006 Chris Double. All Rights Reserved. ! See http://factorcode.org/license.txt for BSD license. USING: kernel lazy-lists parser-combinators parser-combinators.simple - strings promises sequences math math.parser namespaces words + strings promises sequences math math.parser namespaces words quotations arrays hashtables io io.streams.string assocs ; IN: fjsc @@ -53,11 +53,11 @@ C: ast-hashtable [ CHAR: ] = not ] keep [ CHAR: ;" = not ] keep [ CHAR: " = not ] keep - digit? not + digit? not and and and and and ; -LAZY: 'identifier-ends' ( -- parser ) - [ +LAZY: 'identifier-ends' ( -- parser ) + [ [ blank? not ] keep [ CHAR: " = not ] keep [ CHAR: ;" = not ] keep @@ -67,23 +67,23 @@ LAZY: 'identifier-ends' ( -- parser ) and and and and and ] satisfy ; -LAZY: 'identifier-middle' ( -- parser ) +LAZY: 'identifier-middle' ( -- parser ) [ identifier-middle? ] satisfy ; LAZY: 'identifier' ( -- parser ) - 'identifier-ends' + 'identifier-ends' 'identifier-middle' <&> - 'identifier-ends' <:&> + 'identifier-ends' <:&> [ concat >string f ] <@ ; - + DEFER: 'expression' LAZY: 'effect-name' ( -- parser ) - [ + [ [ blank? not ] keep CHAR: - = not - and + and ] satisfy [ >string ] <@ ; LAZY: 'stack-effect' ( -- parser ) @@ -94,24 +94,24 @@ LAZY: 'stack-effect' ( -- parser ) ")" token sp <& [ first2 ] <@ ; LAZY: 'define' ( -- parser ) - ":" token sp + ":" token sp 'identifier' sp [ ast-identifier-value ] <@ &> 'stack-effect' sp <&> 'expression' <:&> ";" token sp <& [ first3 ] <@ ; LAZY: 'quotation' ( -- parser ) - "[" token sp + "[" token sp 'expression' [ ast-expression-values ] <@ &> "]" token sp <& [ ] <@ ; LAZY: 'array' ( -- parser ) - "{" token sp + "{" token sp 'expression' [ ast-expression-values ] <@ &> "}" token sp <& [ ] <@ ; LAZY: 'word' ( -- parser ) - "\\" token sp + "\\" token sp 'identifier' sp &> [ ast-identifier-value f ] <@ ; LAZY: 'atom' ( -- parser ) @@ -137,7 +137,7 @@ LAZY: 'USING:' ( -- parser ) ";" token sp <& [ ] <@ ; LAZY: 'hashtable' ( -- parser ) - "H{" token sp + "H{" token sp 'expression' [ ast-expression-values ] <@ &> "}" token sp <& [ ] <@ ; @@ -147,14 +147,14 @@ LAZY: 'parsing-word' ( -- parser ) 'IN:' <|> ; LAZY: 'expression' ( -- parser ) - 'comment' - 'parsing-word' sp <|> - 'quotation' sp <|> + 'comment' + 'parsing-word' sp <|> + 'quotation' sp <|> 'define' sp <|> 'array' sp <|> 'hashtable' sp <|> 'word' sp <|> - 'atom' sp <|> + 'atom' sp <|> <*> [ ] <@ ; LAZY: 'statement' ( -- parser ) @@ -163,41 +163,41 @@ LAZY: 'statement' ( -- parser ) GENERIC: (compile) ( ast -- ) GENERIC: (literal) ( ast -- ) -M: ast-number (literal) +M: ast-number (literal) ast-number-value number>string , ; -M: ast-number (compile) - "factor.push_data(" , - (literal) - "," , ; - -M: ast-string (literal) - "\"" , - ast-string-value , - "\"" , ; - -M: ast-string (compile) +M: ast-number (compile) "factor.push_data(" , (literal) "," , ; -M: ast-identifier (literal) +M: ast-string (literal) + "\"" , + ast-string-value , + "\"" , ; + +M: ast-string (compile) + "factor.push_data(" , + (literal) + "," , ; + +M: ast-identifier (literal) dup ast-identifier-vocab [ - "factor.get_word(\"" , + "factor.get_word(\"" , dup ast-identifier-vocab , "\",\"" , - ast-identifier-value , - "\")" , + ast-identifier-value , + "\")" , ] [ - "factor.find_word(\"" , ast-identifier-value , "\")" , + "factor.find_word(\"" , ast-identifier-value , "\")" , ] if ; -M: ast-identifier (compile) +M: ast-identifier (compile) (literal) ".execute(" , ; -M: ast-define (compile) - "factor.define_word(\"" , - dup ast-define-name , +M: ast-define (compile) + "factor.define_word(\"" , + dup ast-define-name , "\",\"source\"," , ast-define-expression (compile) "," , ; @@ -207,7 +207,7 @@ M: ast-define (compile) unclip dup ast-comment? not [ "function() {" , - (compile) + (compile) do-expressions ")}" , ] [ @@ -217,74 +217,74 @@ M: ast-define (compile) drop "factor.cont.next" , ] if ; -M: ast-quotation (literal) +M: ast-quotation (literal) "factor.make_quotation(\"source\"," , ast-quotation-values do-expressions ")" , ; -M: ast-quotation (compile) +M: ast-quotation (compile) "factor.push_data(factor.make_quotation(\"source\"," , ast-quotation-values do-expressions ")," , ; -M: ast-array (literal) - "[" , +M: ast-array (literal) + "[" , ast-array-elements [ "," , ] [ (literal) ] interleave "]" , ; -M: ast-array (compile) +M: ast-array (compile) "factor.push_data(" , (literal) "," , ; -M: ast-hashtable (literal) - "new Hashtable().fromAlist([" , +M: ast-hashtable (literal) + "new Hashtable().fromAlist([" , ast-hashtable-elements [ "," , ] [ (literal) ] interleave "])" , ; -M: ast-hashtable (compile) +M: ast-hashtable (compile) "factor.push_data(" , (literal) "," , ; M: ast-expression (literal) ast-expression-values [ - (literal) + (literal) ] each ; - + M: ast-expression (compile) ast-expression-values do-expressions ; -M: ast-word (literal) +M: ast-word (literal) dup ast-word-vocab [ - "factor.get_word(\"" , + "factor.get_word(\"" , dup ast-word-vocab , "\",\"" , - ast-word-value , - "\")" , + ast-word-value , + "\")" , ] [ - "factor.find_word(\"" , ast-word-value , "\")" , + "factor.find_word(\"" , ast-word-value , "\")" , ] if ; M: ast-word (compile) "factor.push_data(" , (literal) "," , ; - + M: ast-comment (compile) drop ; M: ast-stack-effect (compile) drop ; -M: ast-use (compile) +M: ast-use (compile) "factor.use(\"" , - ast-use-name , + ast-use-name , "\"," , ; -M: ast-in (compile) +M: ast-in (compile) "factor.set_in(\"" , - ast-in-name , + ast-in-name , "\"," , ; -M: ast-using (compile) +M: ast-using (compile) "factor.using([" , ast-using-names [ "," , @@ -308,17 +308,17 @@ M: string (parse-factor-quotation) ( object -- ast ) ; M: quotation (parse-factor-quotation) ( object -- ast ) - [ + [ [ (parse-factor-quotation) , ] each ] { } make ; M: array (parse-factor-quotation) ( object -- ast ) - [ + [ [ (parse-factor-quotation) , ] each ] { } make ; M: hashtable (parse-factor-quotation) ( object -- ast ) - >alist [ + >alist [ [ (parse-factor-quotation) , ] each ] { } make ; @@ -328,33 +328,33 @@ M: wrapper (parse-factor-quotation) ( object -- ast ) GENERIC: fjsc-parse ( object -- ast ) M: string fjsc-parse ( object -- ast ) - 'expression' parse car parse-result-parsed ; + 'expression' parse-1 ; M: quotation fjsc-parse ( object -- ast ) [ - [ (parse-factor-quotation) , ] each + [ (parse-factor-quotation) , ] each ] { } make ; : fjsc-compile ( ast -- string ) [ - [ + [ "(" , - (compile) + (compile) ")" , ] { } make [ write ] each ] string-out ; - + : fjsc-compile* ( string -- string ) - 'statement' parse car parse-result-parsed fjsc-compile ; + 'statement' parse-1 fjsc-compile ; : fc* ( string -- string ) [ - 'statement' parse car parse-result-parsed ast-expression-values do-expressions + 'statement' parse-1 ast-expression-values do-expressions ] { } make [ write ] each ; - + : fjsc-literal ( ast -- string ) [ [ (literal) ] { } make [ write ] each ] string-out ; - + diff --git a/extra/furnace/furnace.factor b/extra/furnace/furnace.factor index f2ce0ddf18..756fa13d1c 100644 --- a/extra/furnace/furnace.factor +++ b/extra/furnace/furnace.factor @@ -5,7 +5,7 @@ USING: kernel vectors io assocs quotations splitting strings continuations tuples classes io.files http http.server.templating http.basic-authentication webapps.callback html html.elements - http.server.responders furnace.validator ; + http.server.responders furnace.validator vocabs ; IN: furnace SYMBOL: default-action @@ -101,36 +101,14 @@ SYMBOL: request-params : service-post ( url -- ) "response" get swap service-request ; -: explode-tuple ( tuple -- ) - dup tuple-slots swap class "slot-names" word-prop - [ set ] 2each ; +: send-resource ( name -- ) + template-path get swap path+ resource-path + stdio get stream-copy ; -SYMBOL: model - -: call-template ( model template -- ) - [ - >r [ dup model set explode-tuple ] when* r> - ".furnace" append resource-path run-template-file - ] with-scope ; - -: render-template ( model template -- ) - template-path get swap path+ call-template ; - -: render-page* ( model body-template head-template -- ) - [ - [ render-template ] [ f rot render-template ] html-document - ] serve-html ; - -: render-titled-page* ( model body-template head-template title -- ) - [ - [ render-template ] swap [ write f rot render-template ] curry html-document - ] serve-html ; - - -: render-page ( model template title -- ) - [ - [ render-template ] simple-html-document - ] serve-html ; +: render-template ( template -- ) + template-path get swap path+ + ".furnace" append resource-path + run-template-file ; : web-app ( name default path -- ) [ @@ -141,3 +119,22 @@ SYMBOL: model [ service-post ] "post" set ! [ service-head ] "head" set ] make-responder ; + +: explode-tuple ( tuple -- ) + dup tuple-slots swap class "slot-names" word-prop + [ set ] 2each ; + +SYMBOL: model + +: with-slots ( model quot -- ) + [ + >r [ dup model set explode-tuple ] when* r> call + ] with-scope ; + +: render-component ( model template -- ) + swap [ render-template ] with-slots ; + +: browse-webapp-source ( vocab -- ) + vocab-link browser-link-href =href a> + "Browse source" write + ; diff --git a/extra/globs/authors.txt b/extra/globs/authors.txt new file mode 100644 index 0000000000..1901f27a24 --- /dev/null +++ b/extra/globs/authors.txt @@ -0,0 +1 @@ +Slava Pestov diff --git a/extra/globs/globs-tests.factor b/extra/globs/globs-tests.factor new file mode 100644 index 0000000000..8021128810 --- /dev/null +++ b/extra/globs/globs-tests.factor @@ -0,0 +1,18 @@ +IN: temporary +USING: tools.test globs ; + +[ f ] [ "abd" "fdf" glob-matches? ] unit-test +[ f ] [ "fdsafas" "?" glob-matches? ] unit-test +[ t ] [ "fdsafas" "*as" glob-matches? ] unit-test +[ t ] [ "fdsafas" "*a*" glob-matches? ] unit-test +[ t ] [ "fdsafas" "*a?" glob-matches? ] unit-test +[ t ] [ "fdsafas" "*?" glob-matches? ] unit-test +[ f ] [ "fdsafas" "*s?" glob-matches? ] unit-test +[ t ] [ "a" "[abc]" glob-matches? ] unit-test +[ f ] [ "a" "[^abc]" glob-matches? ] unit-test +[ t ] [ "d" "[^abc]" glob-matches? ] unit-test +[ f ] [ "foo.java" "*.{xml,txt}" glob-matches? ] unit-test +[ t ] [ "foo.txt" "*.{xml,txt}" glob-matches? ] unit-test +[ t ] [ "foo.xml" "*.{xml,txt}" glob-matches? ] unit-test +[ f ] [ "foo." "*.{,xml,txt}" glob-matches? ] unit-test +[ t ] [ "foo.{" "*.{" glob-matches? ] unit-test diff --git a/extra/globs/globs.factor b/extra/globs/globs.factor new file mode 100755 index 0000000000..901191b51e --- /dev/null +++ b/extra/globs/globs.factor @@ -0,0 +1,38 @@ +! Copyright (C) 2007 Slava Pestov. +! See http://factorcode.org/license.txt for BSD license. +USING: parser-combinators regexp lazy-lists sequences kernel +promises strings ; +IN: globs + + [ >lower token ] <@ ; + +: 'escaped-char' "\\" token any-char-parser &> [ 1token ] <@ ; + +: 'escaped-string' 'string' 'escaped-char' <|> ; + +DEFER: 'term' + +: 'glob' ( -- parser ) + 'term' <*> [ ] <@ ; + +: 'union' ( -- parser ) + 'glob' "," token nonempty-list-of "{" "}" surrounded-by + [ ] <@ ; + +LAZY: 'term' + 'union' + 'character-class' <|> + "?" token [ drop any-char-parser ] <@ <|> + "*" token [ drop any-char-parser <*> ] <@ <|> + 'escaped-string' <|> ; + +PRIVATE> + +: 'glob' just parse-1 just ; + +: glob-matches? ( input glob -- ? ) + >r >lower r> parse nil? not ; diff --git a/extra/globs/summary.txt b/extra/globs/summary.txt new file mode 100644 index 0000000000..e97b9b28f7 --- /dev/null +++ b/extra/globs/summary.txt @@ -0,0 +1 @@ +Unix shell-style glob pattern matching diff --git a/extra/hardware-info/windows/ce/ce.factor b/extra/hardware-info/windows/ce/ce.factor index 1ae908c6ef..42fd9e5343 100644 --- a/extra/hardware-info/windows/ce/ce.factor +++ b/extra/hardware-info/windows/ce/ce.factor @@ -1,7 +1,7 @@ -USING: alien.c-types hardware-info kernel math namespaces windows windows.kernel32 ; +USING: alien.c-types hardware-info hardware-info.windows +kernel math namespaces windows windows.kernel32 ; IN: hardware-info.windows.ce -TUPLE: wince ; T{ wince } os set-global : memory-status ( -- MEMORYSTATUS ) diff --git a/extra/hardware-info/windows/nt/nt.factor b/extra/hardware-info/windows/nt/nt.factor index fafcb58dca..2b2522e6ee 100644 --- a/extra/hardware-info/windows/nt/nt.factor +++ b/extra/hardware-info/windows/nt/nt.factor @@ -1,8 +1,8 @@ -USING: alien alien.c-types hardware-info kernel libc math namespaces +USING: alien alien.c-types hardware-info hardware-info.windows +kernel libc math namespaces windows windows.advapi32 windows.kernel32 ; IN: hardware-info.windows.nt -TUPLE: winnt ; T{ winnt } os set-global : memory-status ( -- MEMORYSTATUSEX ) diff --git a/extra/hardware-info/windows/windows.factor b/extra/hardware-info/windows/windows.factor index bbae541ab4..88e9a8cfb5 100644 --- a/extra/hardware-info/windows/windows.factor +++ b/extra/hardware-info/windows/windows.factor @@ -1,5 +1,6 @@ USING: alien alien.c-types kernel libc math namespaces -windows windows.kernel32 windows.advapi32 hardware-info ; +windows windows.kernel32 windows.advapi32 hardware-info +words ; IN: hardware-info.windows TUPLE: wince ; @@ -53,6 +54,22 @@ M: windows cpus ( -- n ) : sse3? ( -- ? ) PF_SSE3_INSTRUCTIONS_AVAILABLE feature-present? ; +: ( n -- obj ) + "ushort" ; + +: get-directory ( word -- str ) + >r MAX_UNICODE_PATH [ ] keep dupd r> + execute win32-error=0/f alien>u16-string ; inline + +: windows-directory ( -- str ) + \ GetWindowsDirectory get-directory ; + +: system-directory ( -- str ) + \ GetSystemDirectory get-directory ; + +: system-windows-directory ( -- str ) + \ GetSystemWindowsDirectory get-directory ; + USE-IF: wince? hardware-info.windows.ce USE-IF: winnt? hardware-info.windows.nt diff --git a/extra/help/handbook/handbook.factor b/extra/help/handbook/handbook.factor index d1b48d9955..30f8d0f29f 100755 --- a/extra/help/handbook/handbook.factor +++ b/extra/help/handbook/handbook.factor @@ -1,7 +1,7 @@ USING: help help.markup help.syntax help.topics namespaces words sequences classes assocs vocabs kernel arrays prettyprint.backend kernel.private io tools.browser -generic ; +generic math tools.profiler system ui ; IN: help.handbook ARTICLE: "conventions" "Conventions" @@ -222,6 +222,72 @@ ARTICLE: "handbook" "Factor documentation" USING: io.files io.sockets float-arrays inference ; ARTICLE: "changes" "Changes in the latest release" +{ $heading "Factor 0.91" } +{ $subheading "Performance" } +{ $list + { "Continuations are now supported by the static stack effect system. This means that the " { $link infer } " word and the optimizing compiler now both support code which uses continuations." } + { "Many words which previously ran in the interpreter, such as error handling and I/O, are now compiled to optimized machine code." } + { "A non-optimizing, just-in-time compiler replaces the interpreter with no loss in functionality or introspective ability." } + { "The non-optimizing compiler compiles quotations the first time they are called, generating a series of stack pushes and subroutine calls. It offers a 33%-50% performance increase over the interpreter." } + { "The optimizing compiler now performs some more representation inference. Alien pointers are unboxed where possible. This improves performance of the " { $vocab-link "ogg.player" } " Ogg Theora video player." } + { "The queue of sleeping tasks is now a sorted priority queue. This reduces overhead for workloads involving large numbers of sleeping threads (Doug Coleman)" } + { "Improved hash code algorithm for sequences" } + { "New, efficient implementations of " { $link bit? } " and " { $link log2 } " runs in constant time for large bignums" } + { "New " { $link big-random } " word for generating large random numbers quickly" } + { "Improved profiler no longer has to be explicitly enabled and disabled with a full recompile; instead, the " { $link profile } " word can be used at any time, and it dynamically patches words to increment call counts. There is no overhead when the profiler is not in use." } + { "Calls to " { $link member? } " with a literal sequence are now open-coded. If there are four or fewer elements, a series of conditionals are generated; if there are more than four elements, there is a hash dispatch followed by conditionals in each branch." } +} +{ $subheading "IO" } +{ $list + { "More robust Windows CE native I/O" } + { "New " { $link os-envs } " word to get the current set of environment variables" } + { "Redesigned " { $vocab-link "io.launcher" } " supports passing environment variables to the child process" } + { { $link } " implemented on Windows (Doug Coleman)" } + { "Updated " { $vocab-link "io.mmap" } " for new module system, now supports Windows CE (Doug Coleman)" } + { { $vocab-link "io.sniffer" } " - packet sniffer library (Doug Coleman, Elie Chaftari)" } + { { $vocab-link "io.server" } " - improved logging support, logs to a file by default" } + { { $vocab-link "io.files" } " - several new file system manipulation words added" } + { { $vocab-link "tar" } " - tar file extraction in pure Factor (Doug Coleman)" } + { { $vocab-link "unix.linux" } ", " { $vocab-link "raptor" } " - ``Raptor Linux'', a set of alien bindings to low-level Linux features, such as network interface configuration, file system mounting/unmounting, etc, together with experimental boot scripts intended to entirely replace " { $snippet "/sbin/init" } ", " { $snippet "/etc/inittab" } " and " { $snippet "/etc/init.d/" } " (Eduardo Cavazos)." } +} +{ $subheading "Tools" } +{ $list + { "Graphical deploy tool added - see " { $link "ui.tools.deploy" } } + { "The deploy tool now supports Windows" } + { { $vocab-link "network-clipboard" } " - clipboard synchronization with a simple TCP/IP protocol" } +} +{ $subheading "UI" } +{ $list + { { $vocab-link "cairo" } " - updated for new module system, new features (Sampo Vuori)" } + { { $vocab-link "springies" } " - physics simulation UI demo (Eduardo Cavazos)" } + { { $vocab-link "ui.gadgets.buttons" } " - added check box and radio button gadgets" } + { "Double- and triple-click-drag now supported in the editor gadget to select words or lines at a time" } + { "Windows can be closed on request now using " { $link close-window } } + { "New icons (Elie Chaftari)" } +} +{ $subheading "Libraries" } +{ $list + { "The " { $snippet "queues" } " vocabulary has been removed because its functionality is a subset of " { $vocab-link "dlists" } } + { "The " { $vocab-link "webapps.cgi" } " vocabulary implements CGI support for the Factor HTTP server." } + { "The optimizing compiler no longer depends on the number tower and it is possible to bootstrap a minimal image by just passing " { $snippet "-include=compiler" } " to stage 2 bootstrap." } + { { $vocab-link "benchmark.knucleotide" } " - new benchmark (Eric Mertens)" } + { { $vocab-link "channels" } " - concurrent message passing over message channels" } + { { $vocab-link "destructors" } " - deterministic scope-based resource deallocation (Doug Coleman)" } + { { $vocab-link "dlists" } " - various updates (Doug Coleman)" } + { { $vocab-link "editors.emeditor" } " - EmEditor integration (Doug Coleman)" } + { { $vocab-link "editors.editplus" } " - EditPlus integration (Aaron Schaefer)" } + { { $vocab-link "editors.notepadpp" } " - Notepad++ integration (Doug Coleman)" } + { { $vocab-link "editors.ted-notepad" } " - TED Notepad integration (Doug Coleman)" } + { { $vocab-link "editors.ultraedit" } " - UltraEdit integration (Doug Coleman)" } + { { $vocab-link "globs" } " - simple Unix shell-style glob patterns" } + { { $vocab-link "heaps" } " - updated for new module system and cleaned up (Doug Coleman)" } + { { $vocab-link "peg" } " - Parser Expression Grammars, a new appoach to parser construction, similar to parser combinators (Chris Double)" } + { { $vocab-link "regexp" } " - revived from " { $snippet "unmaintained/" } " and completely redesigned (Doug Coleman)" } + { { $vocab-link "rss" } " - add Atom feed generation (Daniel Ehrenberg)" } + { { $vocab-link "tuples.lib" } " - some utility words for working with tuples (Doug Coleman)" } + { { $vocab-link "webapps.pastebin" } " - improved appearance, add Atom feed generation, add syntax highlighting using " { $vocab-link "xmode" } } + { { $vocab-link "webapps.planet" } " - add Atom feed generation" } +} { $heading "Factor 0.90" } { $subheading "Core" } { $list @@ -249,7 +315,7 @@ ARTICLE: "changes" "Changes in the latest release" "Most existing libraries were improved when ported to the new module system; the most notable changes include:" { $list { { $vocab-link "asn1" } ": ASN1 parser and writer. (Elie Chaftari)" } - { { $vocab-link "benchmarks" } ": new set of benchmarks." } + { { $vocab-link "benchmark" } ": new set of benchmarks." } { { $vocab-link "cfdg" } ": Context-free design grammar implementation; see " { $url "http://www.chriscoyne.com/cfdg/" } ". (Eduardo Cavazos)" } { { $vocab-link "cryptlib" } ": Cryptlib library binding. (Elie Chaftari)" } { { $vocab-link "cryptlib.streams" } ": Streams which perform SSL encryption and decryption. (Matthew Willis)" } diff --git a/extra/browser/analyzer/analyzer.factor b/extra/html/parser/analyzer/analyzer.factor old mode 100644 new mode 100755 similarity index 84% rename from extra/browser/analyzer/analyzer.factor rename to extra/html/parser/analyzer/analyzer.factor index 2384252e5a..9303b81055 --- a/extra/browser/analyzer/analyzer.factor +++ b/extra/html/parser/analyzer/analyzer.factor @@ -1,15 +1,23 @@ -USING: assocs browser.parser kernel math sequences strings ; -IN: browser.analyzer +USING: assocs html.parser kernel math sequences strings ; +IN: html.parser.analyzer -: remove-blank-text ( vector -- vector ) +: remove-blank-text ( vector -- vector' ) [ dup tag-name text = [ - tag-text [ blank? not ] all? + tag-text [ blank? ] all? not ] [ drop t ] if ] subset ; +: trim-text ( vector -- vector' ) + [ + dup tag-name text = [ + [ tag-text [ blank? ] trim ] keep + [ set-tag-text ] keep + ] when + ] map ; + : find-by-id ( id vector -- vector ) [ tag-attributes "id" swap at = ] curry* subset ; @@ -79,5 +87,5 @@ IN: browser.analyzer ! clear "/Users/erg/web/hostels.html" contents parse-html "Currency" "name" pick find-first-attribute-key-value ! clear "/Users/erg/web/hostels.html" contents parse-html -! "Currency" "name" pick find-first-attribute-key-value +! "Currency" "name" pick find-first-attribute-key-value ! pick find-between remove-blank-text diff --git a/extra/browser/parser/parser-tests.factor b/extra/html/parser/parser-tests.factor similarity index 97% rename from extra/browser/parser/parser-tests.factor rename to extra/html/parser/parser-tests.factor index b4cd87d542..c490b737d9 100644 --- a/extra/browser/parser/parser-tests.factor +++ b/extra/html/parser/parser-tests.factor @@ -1,4 +1,4 @@ -USING: browser.parser kernel tools.test ; +USING: html.parser kernel tools.test ; IN: temporary [ diff --git a/extra/browser/parser/parser.factor b/extra/html/parser/parser.factor similarity index 94% rename from extra/browser/parser/parser.factor rename to extra/html/parser/parser.factor index 9ef6113e63..7057cfe61e 100644 --- a/extra/browser/parser/parser.factor +++ b/extra/html/parser/parser.factor @@ -1,8 +1,7 @@ -USING: arrays browser.utils hashtables io kernel namespaces -prettyprint quotations +USING: arrays html.parser.utils hashtables io kernel +namespaces prettyprint quotations sequences splitting state-parser strings ; -USE: tools.interpreter -IN: browser.parser +IN: html.parser TUPLE: tag name attributes text matched? closing? ; @@ -121,7 +120,7 @@ SYMBOL: tagstack ] unless ; : parse-attributes ( -- hashtable ) - [ (parse-attributes) ] { } make >hashtable ; + [ (parse-attributes) ] { } make >hashtable ; : (parse-tag) [ diff --git a/extra/browser/printer/printer.factor b/extra/html/parser/printer/printer.factor similarity index 95% rename from extra/browser/printer/printer.factor rename to extra/html/parser/printer/printer.factor index a68d588afb..5ed9ab84c1 100644 --- a/extra/browser/printer/printer.factor +++ b/extra/html/parser/printer/printer.factor @@ -1,9 +1,9 @@ -USING: assocs browser.parser browser.utils combinators +USING: assocs html.parser html.parser.utils combinators continuations hashtables hashtables.private io kernel math namespaces prettyprint quotations sequences splitting state-parser strings ; -IN: browser.printer +IN: html.parser.printer SYMBOL: no-section SYMBOL: html @@ -42,7 +42,7 @@ HOOK: print-closing-named-tag printer ( tag -- ) M: printer print-text-tag ( tag -- ) tag-text write ; -M: printer print-comment-tag ( tag -- ) +M: printer print-comment-tag ( tag -- ) "" write ; @@ -67,7 +67,6 @@ M: printer print-closing-named-tag ( tag -- ) [ swap bl write "=" write ?quote write ] assoc-each ; - M: src-printer print-opening-named-tag ( tag -- ) "<" write @@ -102,7 +101,7 @@ SYMBOL: tablestack [ V{ } clone tablestack set ] with-scope ; - + ! { { 1 2 } { 3 4 } } ! H{ { table-gap { 10 10 } } } [ ! [ [ [ [ . ] with-cell ] each ] with-row ] each diff --git a/extra/browser/utils/utils-tests.factor b/extra/html/parser/utils/utils-tests.factor similarity index 97% rename from extra/browser/utils/utils-tests.factor rename to extra/html/parser/utils/utils-tests.factor index 9ae54c775f..fcac31a6aa 100644 --- a/extra/browser/utils/utils-tests.factor +++ b/extra/html/parser/utils/utils-tests.factor @@ -2,7 +2,7 @@ USING: assocs combinators continuations hashtables hashtables.private io kernel math namespaces prettyprint quotations sequences splitting state-parser strings tools.test ; -USING: browser.utils ; +USING: html.parser.utils ; IN: temporary [ "'Rome'" ] [ "Rome" single-quote ] unit-test diff --git a/extra/browser/utils/utils.factor b/extra/html/parser/utils/utils.factor similarity index 95% rename from extra/browser/utils/utils.factor rename to extra/html/parser/utils/utils.factor index 827c60d11d..febd1716ed 100644 --- a/extra/browser/utils/utils.factor +++ b/extra/html/parser/utils/utils.factor @@ -2,8 +2,8 @@ USING: assocs circular combinators continuations hashtables hashtables.private io kernel math namespaces prettyprint quotations sequences splitting state-parser strings ; -USING: browser.parser ; -IN: browser.utils +USING: html.parser ; +IN: html.parser.utils : string-parse-end? get-next not ; diff --git a/extra/http/http.factor b/extra/http/http.factor index a358c449af..f6ea3d699f 100644 --- a/extra/http/http.factor +++ b/extra/http/http.factor @@ -20,7 +20,7 @@ IN: http dup letter? over LETTER? or over digit? or - swap "/_?." member? or ; foldable + swap "/_-?." member? or ; foldable : url-encode ( str -- str ) [ diff --git a/extra/id3/id3.factor b/extra/id3/id3.factor index f1ef5b7fab..1d76bb0a5b 100644 --- a/extra/id3/id3.factor +++ b/extra/id3/id3.factor @@ -2,7 +2,9 @@ ! See http://factorcode.org/license.txt for BSD license. ! -USING: arrays combinators io io.binary io.files io.utf16 kernel math math.parser namespaces sequences splitting strings assocs ; +USING: arrays combinators io io.binary io.files io.paths +io.utf16 kernel math math.parser namespaces sequences +splitting strings assocs ; IN: id3 @@ -121,18 +123,6 @@ C: extended-header : id3v2 ( filename -- tag/f ) [ read-tag ] with-stream ; -: append-path ( path files -- paths ) - [ path+ ] curry* map ; - -: get-paths ( dir -- paths ) - dup directory keys append-path ; - -: (walk-dir) ( path -- ) - dup directory? [ get-paths dup % [ (walk-dir) ] each ] [ drop ] if ; - -: walk-dir ( path -- seq ) - [ (walk-dir) ] { } make ; - : file? ( path -- ? ) stat 3drop not ; diff --git a/extra/inverse/inverse.factor b/extra/inverse/inverse.factor index 4d85318c1b..583ae610c0 100644 --- a/extra/inverse/inverse.factor +++ b/extra/inverse/inverse.factor @@ -1,18 +1,9 @@ USING: kernel words inspector slots quotations sequences assocs math arrays inference effects shuffle continuations debugger tuples namespaces vectors bit-arrays byte-arrays strings sbufs -math.functions macros ; +math.functions macros combinators.private combinators ; IN: inverse -: (repeat) ( from to quot -- ) - pick pick >= [ - 3drop - ] [ - [ swap >r call 1+ r> ] keep (repeat) - ] if ; inline - -: repeat ( n quot -- ) 0 -rot (repeat) ; inline - TUPLE: fail ; : fail ( -- * ) \ fail construct-empty throw ; M: fail summary drop "Unification failed" ; @@ -27,17 +18,12 @@ M: fail summary drop "Unification failed" ; : define-inverse ( word quot -- ) "inverse" set-word-prop ; : define-math-inverse ( word quot1 quot2 -- ) - 2array "math-inverse" set-word-prop ; + pick 1quotation 3array "math-inverse" set-word-prop ; : define-pop-inverse ( word n quot -- ) >r dupd "pop-length" set-word-prop r> "pop-inverse" set-word-prop ; -DEFER: [undo] - -: make-inverse ( word -- quot ) - word-def [undo] ; - TUPLE: no-inverse word ; : no-inverse ( word -- * ) \ no-inverse construct-empty throw ; M: no-inverse summary @@ -54,10 +40,7 @@ M: no-inverse summary effect-in length 0 = and ; : assure-constant ( constant -- quot ) - dup word? [ - dup constant-word? - [ "Badly formed math inverse" throw ] unless - ] when 1quotation ; + dup word? [ "Badly formed math inverse" throw ] when 1quotation ; : swap-inverse ( math-inverse revquot -- revquot* quot ) next assure-constant rot second [ swap ] swap 3compose ; @@ -68,25 +51,52 @@ M: no-inverse summary : ?word-prop ( word/object name -- value/f ) over word? [ word-prop ] [ 2drop f ] if ; -GENERIC: inverse ( revquot word -- revquot* quot ) - -M: word inverse - dup "inverse" word-prop [ ] - [ dup primitive? [ no-inverse ] [ make-inverse ] if ] ?if ; - : undo-literal ( object -- quot ) [ =/fail ] curry ; +PREDICATE: word normal-inverse "inverse" word-prop ; +PREDICATE: word math-inverse "math-inverse" word-prop ; +PREDICATE: word pop-inverse "pop-length" word-prop ; +UNION: explicit-inverse normal-inverse math-inverse pop-inverse ; + +: inline-word ( word -- ) + { + { [ dup word? not over symbol? or ] [ , ] } + { [ dup explicit-inverse? ] [ , ] } + { [ dup compound? over { if dispatch } member? not and ] + [ word-def [ inline-word ] each ] } + { [ drop t ] [ "Quotation is not invertible" throw ] } + } cond ; + +: math-exp? ( n n word -- ? ) + { + - * / ^ } member? -rot [ number? ] 2apply and and ; + +: (fold-constants) ( quot -- ) + dup length 3 < [ % ] [ + dup first3 3dup math-exp? + [ execute , 3 ] [ 2drop , 1 ] if + tail-slice (fold-constants) + ] if ; + +: fold-constants ( quot -- folded ) + [ (fold-constants) ] [ ] make ; + +: do-inlining ( quot -- inlined-quot ) + [ [ inline-word ] each ] [ ] make fold-constants ; + +GENERIC: inverse ( revquot word -- revquot* quot ) + M: object inverse undo-literal ; M: symbol inverse undo-literal ; -PREDICATE: word math-inverse "math-inverse" word-prop ; +M: normal-inverse inverse + "inverse" word-prop ; + M: math-inverse inverse "math-inverse" word-prop swap next dup \ swap = [ drop swap-inverse ] [ pull-inverse ] if ; -PREDICATE: word pop-inverse "pop-length" word-prop ; M: pop-inverse inverse [ "pop-length" word-prop cut-slice swap ] keep "pop-inverse" word-prop compose call ; @@ -96,11 +106,11 @@ M: pop-inverse inverse [ unclip-slice inverse % (undo) ] if ; : [undo] ( quot -- undo ) - reverse [ (undo) ] [ ] make ; + do-inlining reverse [ (undo) ] [ ] make ; MACRO: undo ( quot -- ) [undo] ; -! Inversions of selected words +! Inverse of selected words \ swap [ swap ] define-inverse \ dup [ [ =/fail ] keep ] define-inverse diff --git a/extra/io/paths/paths.factor b/extra/io/paths/paths.factor new file mode 100644 index 0000000000..3afb110687 --- /dev/null +++ b/extra/io/paths/paths.factor @@ -0,0 +1,24 @@ +USING: assocs io.files kernel namespaces sequences ; +IN: io.paths + +: find-file ( seq str -- path/f ) + [ + [ path+ exists? ] curry find nip + ] keep over [ path+ ] [ drop ] if ; + + + +: walk-dir ( path -- seq ) [ (walk-dir) ] { } make ; diff --git a/extra/io/unix/launcher/launcher-tests.factor b/extra/io/unix/launcher/launcher-tests.factor new file mode 100755 index 0000000000..fec97baa5a --- /dev/null +++ b/extra/io/unix/launcher/launcher-tests.factor @@ -0,0 +1,33 @@ +IN: temporary +USING: io.unix.launcher tools.test ; + +[ "" tokenize-command ] unit-test-fails +[ " " tokenize-command ] unit-test-fails +[ { "a" } ] [ "a" tokenize-command ] unit-test +[ { "abc" } ] [ "abc" tokenize-command ] unit-test +[ { "abc" } ] [ "abc " tokenize-command ] unit-test +[ { "abc" } ] [ " abc" tokenize-command ] unit-test +[ { "abc" "def" } ] [ "abc def" tokenize-command ] unit-test +[ { "abc def" } ] [ "abc\\ def" tokenize-command ] unit-test +[ { "abc\\" "def" } ] [ "abc\\\\ def" tokenize-command ] unit-test +[ { "abc\\ def" } ] [ "'abc\\\\ def'" tokenize-command ] unit-test +[ { "abc\\ def" } ] [ " 'abc\\\\ def'" tokenize-command ] unit-test +[ { "abc\\ def" "hey" } ] [ "'abc\\\\ def' hey" tokenize-command ] unit-test +[ { "abc def" "hey" } ] [ "'abc def' \"hey\"" tokenize-command ] unit-test +[ "'abc def' \"hey" tokenize-command ] unit-test-fails +[ "'abc def" tokenize-command ] unit-test-fails +[ { "abc def" "h\"ey" } ] [ "'abc def' \"h\\\"ey\" " tokenize-command ] unit-test + +[ + { + "Hello world.app/Contents/MacOS/hello-ui" + "-i=boot.macosx-ppc.image" + "-include= math compiler ui" + "-deploy-vocab=hello-ui" + "-output-image=Hello world.app/Contents/Resources/hello-ui.image" + "-no-stack-traces" + "-no-user-init" + } +] [ + "\"Hello world.app/Contents/MacOS/hello-ui\" -i=boot.macosx-ppc.image \"-include= math compiler ui\" -deploy-vocab=hello-ui \"-output-image=Hello world.app/Contents/Resources/hello-ui.image\" -no-stack-traces -no-user-init" tokenize-command +] unit-test diff --git a/extra/io/unix/launcher/launcher.factor b/extra/io/unix/launcher/launcher.factor old mode 100644 new mode 100755 index 0e7ec9ad16..74bced16c4 --- a/extra/io/unix/launcher/launcher.factor +++ b/extra/io/unix/launcher/launcher.factor @@ -2,17 +2,45 @@ ! See http://factorcode.org/license.txt for BSD license. USING: io io.launcher io.unix.backend io.nonblocking sequences kernel namespaces math system alien.c-types -debugger continuations arrays assocs combinators unix.process ; +debugger continuations arrays assocs combinators unix.process +parser-combinators memoize promises strings ; IN: io.unix.launcher ! Search unix first USE: unix -: get-arguments ( -- seq ) - +command+ get - [ "/bin/sh" "-c" rot 3array ] [ +arguments+ get ] if* ; +! Our command line parser. Supported syntax: +! foo bar baz -- simple tokens +! foo\ bar -- escaping the space +! 'foo bar' -- quotation +! "foo bar" -- quotation +LAZY: 'escaped-char' "\\" token any-char-parser &> ; -: assoc>env ( assoc -- env ) [ "=" swap 3append ] { } assoc>map ; +LAZY: 'quoted-char' ( delimiter -- parser' ) + 'escaped-char' + swap [ member? not ] curry satisfy + <|> ; inline + +LAZY: 'quoted' ( delimiter -- parser ) + dup 'quoted-char' swap dup surrounded-by ; + +LAZY: 'unquoted' ( -- parser ) " '\"" 'quoted-char' ; + +LAZY: 'argument' ( -- parser ) + "\"" 'quoted' "'" 'quoted' 'unquoted' <|> <|> + [ >string ] <@ ; + +MEMO: 'arguments' ( -- parser ) + 'argument' " " token nonempty-list-of ; + +: tokenize-command ( command -- arguments ) + 'arguments' just parse-1 ; + +: get-arguments ( -- seq ) + +command+ get [ tokenize-command ] [ +arguments+ get ] if* ; + +: assoc>env ( assoc -- env ) + [ "=" swap 3append ] { } assoc>map ; : (spawn-process) ( -- ) [ diff --git a/extra/io/unix/mmap/mmap.factor b/extra/io/unix/mmap/mmap.factor index d7dcad67d9..5a72a5426a 100644 --- a/extra/io/unix/mmap/mmap.factor +++ b/extra/io/unix/mmap/mmap.factor @@ -13,7 +13,7 @@ IN: io.unix.mmap M: unix-io ( path length -- obj ) swap >r dup PROT_READ PROT_WRITE bitor MAP_FILE MAP_SHARED bitor - r> mmap-open \ mapped-file construct-boa ; + r> mmap-open f mapped-file construct-boa ; M: unix-io (close-mapped-file) ( mmap -- ) [ mapped-file-address ] keep diff --git a/extra/io/windows/ce/files/files.factor b/extra/io/windows/ce/files/files.factor index df5dc65094..c4f5b2ef9e 100755 --- a/extra/io/windows/ce/files/files.factor +++ b/extra/io/windows/ce/files/files.factor @@ -7,7 +7,8 @@ IN: windows.ce.files ! M: windows-ce-io normalize-pathname ( string -- string ) ! dup 1 tail* CHAR: \\ = [ "*" append ] [ "\\*" append ] if ; -M: windows-ce-io CreateFile-flags ( -- DWORD ) FILE_ATTRIBUTE_NORMAL ; +M: windows-ce-io CreateFile-flags ( DWORD -- DWORD ) + FILE_ATTRIBUTE_NORMAL bitor ; M: windows-ce-io FileArgs-overlapped ( port -- f ) drop f ; : finish-read ( port status bytes-ret -- ) diff --git a/extra/io/windows/launcher/launcher.factor b/extra/io/windows/launcher/launcher.factor index 3caa2c7113..136c8197fc 100755 --- a/extra/io/windows/launcher/launcher.factor +++ b/extra/io/windows/launcher/launcher.factor @@ -53,8 +53,11 @@ TUPLE: CreateProcess-args CreateProcess-args-lpProcessInformation } get-slots CreateProcess win32-error=0/f ; +: escape-argument ( str -- newstr ) + [ [ dup CHAR: " = [ CHAR: \\ , ] when , ] each ] "" make ; + : join-arguments ( args -- cmd-line ) - [ "\"" swap "\"" 3append ] map " " join ; + [ "\"" swap escape-argument "\"" 3append ] map " " join ; : app-name/cmd-line ( -- app-name cmd-line ) +command+ get [ @@ -84,9 +87,9 @@ TUPLE: CreateProcess-args pass-environment? [ [ get-environment - [ swap % "=" % % "\0" % ] assoc-each + [ "=" swap 3append string>u16-alien % ] assoc-each "\0" % - ] "" make >c-ushort-array + ] { } make >c-ushort-array over set-CreateProcess-args-lpEnvironment ] when ; diff --git a/extra/io/windows/mmap/mmap.factor b/extra/io/windows/mmap/mmap.factor index ca5d2bbd9a..27587e8340 100755 --- a/extra/io/windows/mmap/mmap.factor +++ b/extra/io/windows/mmap/mmap.factor @@ -62,7 +62,7 @@ M: windows-ce-io with-privileges : mmap-open ( path access-mode create-mode flProtect access -- handle handle address ) { "SeCreateGlobalPrivilege" "SeLockMemoryPrivilege" } [ - >r >r open-file dup f r> 0 0 f + >r >r 0 open-file dup f r> 0 0 f CreateFileMapping [ win32-error=0/f ] keep dup close-later dup diff --git a/extra/io/windows/nt/backend/backend.factor b/extra/io/windows/nt/backend/backend.factor index c475771b5c..0d1f2cec0b 100755 --- a/extra/io/windows/nt/backend/backend.factor +++ b/extra/io/windows/nt/backend/backend.factor @@ -27,7 +27,7 @@ M: windows-nt-io normalize-pathname ( string -- string ) { [ dup ".\\" head? ] [ >r unicode-prefix cwd r> 1 tail 3append ] } - ! c:\\ + ! c:\\foo { [ dup 1 tail ":" head? ] [ >r unicode-prefix r> append ] } ! \\\\?\\c:\\foo { [ dup unicode-prefix head? ] [ ] } @@ -38,7 +38,8 @@ M: windows-nt-io normalize-pathname ( string -- string ) dup first CHAR: \\ = [ CHAR: \\ , ] unless % ] "" make ] } - } cond [ "/\\." member? ] right-trim ; + } cond [ "/\\." member? ] right-trim + dup peek CHAR: : = [ "\\" append ] when ; SYMBOL: io-hash diff --git a/extra/io/windows/nt/files/files.factor b/extra/io/windows/nt/files/files.factor index d53f5fcb40..5eed39224c 100755 --- a/extra/io/windows/nt/files/files.factor +++ b/extra/io/windows/nt/files/files.factor @@ -3,8 +3,8 @@ io.windows.nt io.windows.nt.backend kernel libc math threads windows windows.kernel32 ; IN: io.windows.nt.files -M: windows-nt-io CreateFile-flags ( -- DWORD ) - FILE_FLAG_OVERLAPPED ; +M: windows-nt-io CreateFile-flags ( DWORD -- DWORD ) + FILE_FLAG_OVERLAPPED bitor ; M: windows-nt-io FileArgs-overlapped ( port -- overlapped ) make-overlapped ; diff --git a/extra/io/windows/windows.factor b/extra/io/windows/windows.factor index ac0ede0e06..8dcb138999 100755 --- a/extra/io/windows/windows.factor +++ b/extra/io/windows/windows.factor @@ -4,7 +4,7 @@ USING: alien alien.c-types arrays destructors io io.backend io.buffers io.files io.nonblocking io.sockets io.binary io.sockets.impl windows.errors strings io.streams.duplex kernel math namespaces sequences windows windows.kernel32 -windows.winsock splitting ; +windows.shell32 windows.winsock splitting ; IN: io.windows TUPLE: windows-nt-io ; @@ -23,7 +23,7 @@ TUPLE: win32-file handle ptr overlapped ; : ( in out -- stream ) >r f r> f handle>duplex-stream ; -HOOK: CreateFile-flags io-backend ( -- DWORD ) +HOOK: CreateFile-flags io-backend ( DWORD -- DWORD ) HOOK: FileArgs-overlapped io-backend ( port -- overlapped/f ) HOOK: add-completion io-backend ( port -- ) @@ -31,7 +31,8 @@ M: windows-io normalize-directory ( string -- string ) "\\" ?tail drop "\\*" append ; : share-mode ( -- fixnum ) - FILE_SHARE_READ FILE_SHARE_WRITE bitor ; inline + FILE_SHARE_READ FILE_SHARE_WRITE bitor + FILE_SHARE_DELETE bitor ; foldable M: win32-file init-handle ( handle -- ) drop ; @@ -40,24 +41,25 @@ M: win32-file close-handle ( handle -- ) win32-file-handle CloseHandle drop ; ! Clean up resources (open handle) if add-completion fails -: open-file ( path access-mode create-mode -- handle ) +: open-file ( path access-mode create-mode flags -- handle ) [ - >r share-mode f r> CreateFile-flags f CreateFile + >r >r >r normalize-pathname r> + share-mode f r> r> CreateFile-flags f CreateFile dup invalid-handle? dup close-later dup add-completion ] with-destructors ; : open-pipe-r/w ( path -- handle ) - GENERIC_READ GENERIC_WRITE bitor OPEN_EXISTING open-file ; + GENERIC_READ GENERIC_WRITE bitor OPEN_EXISTING 0 open-file ; : open-read ( path -- handle length ) - normalize-pathname GENERIC_READ OPEN_EXISTING open-file 0 ; + GENERIC_READ OPEN_EXISTING 0 open-file 0 ; : open-write ( path -- handle length ) - normalize-pathname GENERIC_WRITE CREATE_ALWAYS open-file 0 ; + GENERIC_WRITE CREATE_ALWAYS 0 open-file 0 ; : (open-append) ( path -- handle ) - normalize-pathname GENERIC_WRITE OPEN_ALWAYS open-file ; + GENERIC_WRITE OPEN_ALWAYS 0 open-file ; : set-file-pointer ( handle length -- ) dupd d>w/w FILE_BEGIN SetFilePointer @@ -109,12 +111,14 @@ M: windows-io ( path -- stream ) open-append ; M: windows-io rename-file ( from to -- ) - [ normalize-pathname ] 2apply - MoveFile win32-error=0/f ; + [ normalize-pathname ] 2apply MoveFile win32-error=0/f ; M: windows-io delete-file ( path -- ) - normalize-pathname - DeleteFile win32-error=0/f ; + normalize-pathname DeleteFile win32-error=0/f ; + +M: windows-io copy-file ( from to -- ) + dup parent-directory make-directories + [ normalize-pathname ] 2apply 0 CopyFile win32-error=0/f ; M: windows-io make-directory ( path -- ) normalize-pathname diff --git a/extra/jamshred/tunnel/tunnel-tests.factor b/extra/jamshred/tunnel/tunnel-tests.factor index e78ced83e0..2ea8a64bd9 100644 --- a/extra/jamshred/tunnel/tunnel-tests.factor +++ b/extra/jamshred/tunnel/tunnel-tests.factor @@ -12,4 +12,4 @@ IN: temporary [ 3 ] [ T{ oint f { 0 0 -3.25 } } 0 nearest-segment-forward segment-number ] unit-test -[ { 0 0 0 } ] [ T{ oint f { 0 0 -0.25 } } over first nearest-segment oint-location ] unit-test +[ F{ 0 0 0 } ] [ T{ oint f { 0 0 -0.25 } } over first nearest-segment oint-location ] unit-test diff --git a/extra/lint/lint.factor b/extra/lint/lint.factor index bd2be801fd..75f6abb9ae 100644 --- a/extra/lint/lint.factor +++ b/extra/lint/lint.factor @@ -13,7 +13,7 @@ SYMBOL: def-hash-keys 2dup at -rot >r >r ?push r> r> set-at ; : add-word-def ( word quot -- ) - dup quotation? [ + dup callable? [ def-hash get-global set-hash-vector ] [ 2drop @@ -33,6 +33,7 @@ SYMBOL: def-hash-keys { [ drop drop drop ] 3drop } { [ 0 = ] zero? } { [ pop drop ] pop* } + { [ [ ] if ] when } } [ first2 swap add-word-def ] each ; : accessor-words ( -- seq ) @@ -108,13 +109,13 @@ M: object lint ( obj -- seq ) : subseq/member? ( subseq/member seq -- ? ) { [ 2dup start ] [ 2dup member? ] } || 2nip ; -M: quotation lint ( quot -- seq ) +M: callable lint ( quot -- seq ) def-hash-keys get [ swap subseq/member? ] curry* subset ; M: word lint ( word -- seq ) - word-def dup quotation? [ lint ] [ drop f ] if ; + word-def dup callable? [ lint ] [ drop f ] if ; : word-path. ( word -- ) [ word-vocabulary ":" ] keep unparse 3append write nl ; diff --git a/extra/macros/macros.factor b/extra/macros/macros.factor old mode 100644 new mode 100755 index 9c06822463..1c23a1c85e --- a/extra/macros/macros.factor +++ b/extra/macros/macros.factor @@ -19,7 +19,7 @@ IN: macros : MACRO: (:) (MACRO:) ; parsing -PREDICATE: word macro +PREDICATE: compound macro "macro" word-prop >boolean ; M: macro definer drop \ MACRO: \ ; ; diff --git a/extra/multiline/authors.txt b/extra/multiline/authors.txt new file mode 100644 index 0000000000..f990dd0ed2 --- /dev/null +++ b/extra/multiline/authors.txt @@ -0,0 +1 @@ +Daniel Ehrenberg diff --git a/extra/multiline/multiline-docs.factor b/extra/multiline/multiline-docs.factor new file mode 100644 index 0000000000..7e7375cfad --- /dev/null +++ b/extra/multiline/multiline-docs.factor @@ -0,0 +1,21 @@ +USING: help.markup help.syntax multiline ; + +HELP: STRING: +{ $syntax "STRING: name\nfoo\n;" } +{ $description "Forms a multiline string literal, or 'here document' stored in the word called name. A semicolon is used to signify the end, and that semicolon must be on a line by itself, not preceeded or followed by any whitespace. The string will have newlines in between lines but not at the end, unless there is a blank line before the semicolon." } ; + +HELP: <" +{ $syntax "<\" text \">" } +{ $description "This forms a multiline string literal ending in \">. Unlike the " { $link POSTPONE: STRING: } " form, you can end it in the middle of a line. This construct is non-nesting. In the example above, the string would be parsed as \"text\"." } ; + +{ POSTPONE: <" POSTPONE: STRING: } related-words + +HELP: parse-here +{ $values { "str" "a string" } } +{ $description "Parses a multiline string literal, as used by " { $link POSTPONE: STRING: } "." } ; + +HELP: parse-multiline-string +{ $values { "end-text" "a string delineating the end" } { "str" "the parsed string" } } +{ $description "Parses a multiline string literal, as used by " { $link POSTPONE: <" } ". The end-text is the delimiter for the end." } ; + +{ parse-here parse-multiline-string } related-words diff --git a/extra/multiline/multiline-tests.factor b/extra/multiline/multiline-tests.factor new file mode 100644 index 0000000000..a9b9ee2322 --- /dev/null +++ b/extra/multiline/multiline-tests.factor @@ -0,0 +1,12 @@ +USING: multiline tools.test ; + +STRING: test-it +foo +bar + +; + +[ "foo\nbar\n" ] [ test-it ] unit-test +[ "foo\nbar\n" ] [ <" foo +bar + "> ] unit-test diff --git a/extra/multiline/multiline.factor b/extra/multiline/multiline.factor new file mode 100644 index 0000000000..89a6e06053 --- /dev/null +++ b/extra/multiline/multiline.factor @@ -0,0 +1,35 @@ +! Copyright (C) 2007 Daniel Ehrenberg +! See http://factorcode.org/license.txt for BSD license. +USING: namespaces parser kernel sequences words quotations math ; +IN: multiline + +: next-line-text ( -- str ) + lexer get dup next-line line-text ; + +: (parse-here) ( -- ) + next-line-text dup ";" = + [ drop lexer get next-line ] [ % "\n" % (parse-here) ] if ; + +: parse-here ( -- str ) + [ (parse-here) ] "" make 1 head* + lexer get next-line ; + +: STRING: + CREATE dup reset-generic + parse-here 1quotation define-compound ; parsing + +: (parse-multiline-string) ( start-index end-text -- end-index ) + lexer get line-text 2dup start + [ rot dupd >r >r swap subseq % r> r> length + ] [ + rot tail % "\n" % 0 + lexer get next-line swap (parse-multiline-string) + ] if* ; + +: parse-multiline-string ( end-text -- str ) + [ + lexer get lexer-column swap (parse-multiline-string) + lexer get set-lexer-column + ] "" make 1 tail 1 head* ; + +: <" + "\">" parse-multiline-string parsed ; parsing diff --git a/extra/multiline/summary.txt b/extra/multiline/summary.txt new file mode 100644 index 0000000000..9d9c3ea73f --- /dev/null +++ b/extra/multiline/summary.txt @@ -0,0 +1 @@ +Multiline string literals diff --git a/extra/nehe/4/4.factor b/extra/nehe/4/4.factor index 39bf9841fd..b87b4a2308 100644 --- a/extra/nehe/4/4.factor +++ b/extra/nehe/4/4.factor @@ -32,7 +32,7 @@ M: nehe4-gadget draw-gadget* ( gadget -- ) glLoadIdentity -1.5 0.0 -6.0 glTranslatef dup nehe4-gadget-rtri 0.0 1.0 0.0 glRotatef - + GL_TRIANGLES [ 1.0 0.0 0.0 glColor3f 0.0 1.0 0.0 glVertex3f @@ -52,23 +52,23 @@ M: nehe4-gadget draw-gadget* ( gadget -- ) 1.0 1.0 0.0 glVertex3f 1.0 -1.0 0.0 glVertex3f -1.0 -1.0 0.0 glVertex3f - ] do-state + ] do-state dup nehe4-gadget-rtri 0.2 + over set-nehe4-gadget-rtri dup nehe4-gadget-rquad 0.15 - swap set-nehe4-gadget-rquad ; - -: nehe4-update-thread ( gadget -- ) - dup nehe4-gadget-quit? [ - redraw-interval sleep - dup relayout-1 - nehe4-update-thread - ] unless ; + +: nehe4-update-thread ( gadget -- ) + dup nehe4-gadget-quit? [ drop ] [ + redraw-interval sleep + dup relayout-1 + nehe4-update-thread + ] if ; M: nehe4-gadget graft* ( gadget -- ) - [ f swap set-nehe4-gadget-quit? ] keep - [ nehe4-update-thread ] in-thread drop ; + [ f swap set-nehe4-gadget-quit? ] keep + [ nehe4-update-thread ] in-thread drop ; M: nehe4-gadget ungraft* ( gadget -- ) - t swap set-nehe4-gadget-quit? ; + t swap set-nehe4-gadget-quit? ; : run4 ( -- ) "NeHe Tutorial 4" open-window ; diff --git a/extra/pack/pack.factor b/extra/pack/pack.factor index fd39f83a98..c9d05c19d7 100644 --- a/extra/pack/pack.factor +++ b/extra/pack/pack.factor @@ -24,7 +24,7 @@ M: integer b, ( m n -- ) >endian % ; ! for doing native, platform-dependent sized values M: string b, ( n string -- ) heap-size b, ; -: read-native ( string -- ) heap-size read endian> ; +: read-native ( string -- n ) heap-size read endian> ; ! Portable : s8, ( n -- ) 1 b, ; diff --git a/extra/parser-combinators/parser-combinators-docs.factor b/extra/parser-combinators/parser-combinators-docs.factor old mode 100644 new mode 100755 index b3d25e4cd3..7b575e4da9 --- a/extra/parser-combinators/parser-combinators-docs.factor +++ b/extra/parser-combinators/parser-combinators-docs.factor @@ -3,14 +3,23 @@ USING: help.markup help.syntax parser-combinators ; HELP: list-of -{ $values +{ $values { "items" "a parser object" } { "separator" "a parser object" } { "parser" "a parser object" } } -{ $description +{ $description "Return a parser for parsing the repetition of things that are " "separated by a certain symbol. For example, comma separated lists. " "'items' is a parser that can parse the individual elements. 'separator' " - "is a parser for the symbol that separatest them. The result tree of " + "is a parser for the symbol that separatest them. The result tree of " "the resulting parser is an array of the parsed elements." } -{ $example "USE: parser-combinators" "\"1,2,3,4\" 'integer' \",\" token list-of parse car parse-result-parsed ." "{ 1 2 3 4 }" } +{ $example "USE: parser-combinators" "\"1,2,3,4\" 'integer' \",\" token list-of parse-1 ." "{ 1 2 3 4 }" } { $see-also list-of } ; +HELP: any-char-parser +{ $values + { "parser" "a parser object" } } +{ $description + "Return a parser that consumes a single value " + "from the input string. The value consumed is the " + "result of the parse." } +{ $examples +{ $example "USING: lazy-lists parser-combinators ;" "\"foo\" any-char-parser parse-1 ." "102" } } ; diff --git a/extra/parser-combinators/parser-combinators-tests.factor b/extra/parser-combinators/parser-combinators-tests.factor index 59ef383c87..8d55cc5770 100644 --- a/extra/parser-combinators/parser-combinators-tests.factor +++ b/extra/parser-combinators/parser-combinators-tests.factor @@ -149,5 +149,3 @@ IN: scratchpad { { } } [ "234" "1" token <+> parse list>array ] unit-test - - diff --git a/extra/parser-combinators/parser-combinators.factor b/extra/parser-combinators/parser-combinators.factor old mode 100644 new mode 100755 index fa0733f321..4376aed95a --- a/extra/parser-combinators/parser-combinators.factor +++ b/extra/parser-combinators/parser-combinators.factor @@ -1,122 +1,183 @@ ! Copyright (C) 2004 Chris Double. ! See http://factorcode.org/license.txt for BSD license. -USING: lazy-lists promises kernel sequences strings math io -arrays namespaces splitting ; +USING: lazy-lists promises kernel sequences strings math +arrays splitting quotations combinators namespaces ; IN: parser-combinators ! Parser combinator protocol -GENERIC: (parse) ( input parser -- list ) +GENERIC: parse ( input parser -- list ) -M: promise (parse) ( input parser -- list ) - force (parse) ; - -: parse ( input parser -- promise ) - (parse) ; +M: promise parse ( input parser -- list ) + force parse ; TUPLE: parse-result parsed unparsed ; +: parse-1 ( input parser -- result ) + dupd parse dup nil? [ + "Cannot parse " rot append throw + ] [ + nip car parse-result-parsed + ] if ; + C: parse-result -TUPLE: token-parser string ; +: ( parsed unparsed -- list ) + 1list ; -C: token token-parser ( string -- parser ) +: parse-result-parsed-slice ( parse-result -- slice ) + dup parse-result-parsed empty? [ + parse-result-unparsed 0 0 rot + ] [ + dup parse-result-unparsed + dup slice-from [ rot parse-result-parsed length - ] keep + rot slice-seq + ] if ; -M: token-parser (parse) ( input parser -- list ) - token-parser-string swap over ?head-slice [ - 1list - ] [ - 2drop nil - ] if ; +: string= ( str1 str2 ignore-case -- ? ) + [ [ >upper ] 2apply ] when sequence= ; + +: string-head? ( str head ignore-case -- ? ) + pick pick shorter? [ + 3drop f + ] [ + >r [ length head-slice ] keep r> string= + ] if ; + +: ?string-head ( str head ignore-case -- newstr ? ) + >r 2dup r> string-head? + [ length tail-slice t ] [ drop f ] if ; + +TUPLE: token-parser string ignore-case? ; + +C: token-parser + +: token ( string -- parser ) f ; + +: case-insensitive-token ( string -- parser ) t ; + +M: token-parser parse ( input parser -- list ) + dup token-parser-string swap token-parser-ignore-case? + >r tuck r> ?string-head + [ ] [ 2drop nil ] if ; + +: 1token ( n -- parser ) 1string token ; TUPLE: satisfy-parser quot ; C: satisfy satisfy-parser ( quot -- parser ) -M: satisfy-parser (parse) ( input parser -- list ) - #! A parser that succeeds if the predicate, - #! when passed the first character in the input, returns - #! true. - over empty? [ - 2drop nil - ] [ - satisfy-parser-quot >r unclip-slice dup r> call [ - swap 1list +M: satisfy-parser parse ( input parser -- list ) + #! A parser that succeeds if the predicate, + #! when passed the first character in the input, returns + #! true. + over empty? [ + 2drop nil ] [ - 2drop nil - ] if - ] if ; + satisfy-parser-quot >r unclip-slice dup r> call + [ swap ] [ 2drop nil ] if + ] if ; + +LAZY: any-char-parser ( -- parser ) + [ drop t ] satisfy ; TUPLE: epsilon-parser ; C: epsilon epsilon-parser ( -- parser ) -M: epsilon-parser (parse) ( input parser -- list ) - #! A parser that parses the empty string. It - #! does not consume any input and always returns - #! an empty list as the parse tree with the - #! unmodified input. - drop "" swap 1list ; +M: epsilon-parser parse ( input parser -- list ) + #! A parser that parses the empty string. It + #! does not consume any input and always returns + #! an empty list as the parse tree with the + #! unmodified input. + drop "" swap ; TUPLE: succeed-parser result ; C: succeed succeed-parser ( result -- parser ) -M: succeed-parser (parse) ( input parser -- list ) - #! A parser that always returns 'result' as a - #! successful parse with no input consumed. - succeed-parser-result swap 1list ; +M: succeed-parser parse ( input parser -- list ) + #! A parser that always returns 'result' as a + #! successful parse with no input consumed. + succeed-parser-result swap ; TUPLE: fail-parser ; C: fail fail-parser ( -- parser ) -M: fail-parser (parse) ( input parser -- list ) - #! A parser that always fails and returns - #! an empty list of successes. - 2drop nil ; +M: fail-parser parse ( input parser -- list ) + #! A parser that always fails and returns + #! an empty list of successes. + 2drop nil ; + +TUPLE: ensure-parser test ; + +: ensure ( parser -- ensure ) + ensure-parser construct-boa ; + +M: ensure-parser parse ( input parser -- list ) + 2dup ensure-parser-test parse nil? + [ 2drop nil ] [ drop t swap ] if ; + +TUPLE: ensure-not-parser test ; + +: ensure-not ( parser -- ensure ) + ensure-not-parser construct-boa ; + +M: ensure-not-parser parse ( input parser -- list ) + 2dup ensure-not-parser-test parse nil? + [ drop t swap ] [ 2drop nil ] if ; TUPLE: and-parser parsers ; : <&> ( parser1 parser2 -- parser ) - over and-parser? [ - >r and-parser-parsers r> add - ] [ - 2array - ] if \ and-parser construct-boa ; + over and-parser? [ + >r and-parser-parsers r> add + ] [ + 2array + ] if and-parser construct-boa ; + +: ( parsers -- parser ) + dup length 1 = [ first ] [ and-parser construct-boa ] if ; : and-parser-parse ( list p1 -- list ) - swap [ - dup parse-result-unparsed rot parse - [ - >r parse-result-parsed r> - [ parse-result-parsed 2array ] keep - parse-result-unparsed - ] lmap-with - ] lmap-with lconcat ; - -M: and-parser (parse) ( input parser -- list ) - #! Parse 'input' by sequentially combining the - #! two parsers. First parser1 is applied to the - #! input then parser2 is applied to the rest of - #! the input strings from the first parser. - and-parser-parsers unclip swapd parse [ [ and-parser-parse ] reduce ] 2curry promise ; + swap [ + dup parse-result-unparsed rot parse + [ + >r parse-result-parsed r> + [ parse-result-parsed 2array ] keep + parse-result-unparsed + ] lmap-with + ] lmap-with lconcat ; -TUPLE: or-parser p1 p2 ; +M: and-parser parse ( input parser -- list ) + #! Parse 'input' by sequentially combining the + #! two parsers. First parser1 is applied to the + #! input then parser2 is applied to the rest of + #! the input strings from the first parser. + and-parser-parsers unclip swapd parse + [ [ and-parser-parse ] reduce ] 2curry promise ; -C: <|> or-parser ( parser1 parser2 -- parser ) +TUPLE: or-parser parsers ; -M: or-parser (parse) ( input parser1 -- list ) - #! Return the combined list resulting from the parses - #! of parser1 and parser2 being applied to the same - #! input. This implements the choice parsing operator. - [ or-parser-p1 ] keep or-parser-p2 >r dupd parse swap r> parse lappend ; +: ( parsers -- parser ) + dup length 1 = [ first ] [ or-parser construct-boa ] if ; + +: <|> ( parser1 parser2 -- parser ) + 2array ; + +M: or-parser parse ( input parser1 -- list ) + #! Return the combined list resulting from the parses + #! of parser1 and parser2 being applied to the same + #! input. This implements the choice parsing operator. + or-parser-parsers 0 swap seq>list + [ parse ] lmap-with lconcat ; : left-trim-slice ( string -- string ) - #! Return a new string without any leading whitespace - #! from the original string. - dup empty? [ - dup first blank? [ 1 tail-slice left-trim-slice ] when - ] unless ; + #! Return a new string without any leading whitespace + #! from the original string. + dup empty? [ + dup first blank? [ 1 tail-slice left-trim-slice ] when + ] unless ; TUPLE: sp-parser p1 ; @@ -124,131 +185,167 @@ TUPLE: sp-parser p1 ; #! calling the original parser. C: sp sp-parser ( p1 -- parser ) -M: sp-parser (parse) ( input parser -- list ) - #! Skip all leading whitespace from the input then call - #! the parser on the remaining input. - >r left-trim-slice r> sp-parser-p1 parse ; +M: sp-parser parse ( input parser -- list ) + #! Skip all leading whitespace from the input then call + #! the parser on the remaining input. + >r left-trim-slice r> sp-parser-p1 parse ; TUPLE: just-parser p1 ; C: just just-parser ( p1 -- parser ) -M: just-parser (parse) ( input parser -- result ) - #! Calls the given parser on the input removes - #! from the results anything where the remaining - #! input to be parsed is not empty. So ensures a - #! fully parsed input string. - just-parser-p1 parse [ parse-result-unparsed empty? ] lsubset ; +M: just-parser parse ( input parser -- result ) + #! Calls the given parser on the input removes + #! from the results anything where the remaining + #! input to be parsed is not empty. So ensures a + #! fully parsed input string. + just-parser-p1 parse [ parse-result-unparsed empty? ] lsubset ; TUPLE: apply-parser p1 quot ; C: <@ apply-parser ( parser quot -- parser ) -M: apply-parser (parse) ( input parser -- result ) - #! Calls the parser on the input. For each successfull - #! parse the quot is call with the parse result on the stack. - #! The result of that quotation then becomes the new parse result. - #! This allows modification of parse tree results (like - #! converting strings to integers, etc). - [ apply-parser-p1 ] keep apply-parser-quot - -rot parse [ - [ parse-result-parsed swap call ] keep - parse-result-unparsed - ] lmap-with ; +M: apply-parser parse ( input parser -- result ) + #! Calls the parser on the input. For each successful + #! parse the quot is call with the parse result on the stack. + #! The result of that quotation then becomes the new parse result. + #! This allows modification of parse tree results (like + #! converting strings to integers, etc). + [ apply-parser-p1 ] keep apply-parser-quot + -rot parse [ + [ parse-result-parsed swap call ] keep + parse-result-unparsed + ] lmap-with ; TUPLE: some-parser p1 ; C: some some-parser ( p1 -- parser ) -M: some-parser (parse) ( input parser -- result ) - #! Calls the parser on the input, guarantees - #! the parse is complete (the remaining input is empty), - #! picks the first solution and only returns the parse - #! tree since the remaining input is empty. - some-parser-p1 just parse car parse-result-parsed ; - +M: some-parser parse ( input parser -- result ) + #! Calls the parser on the input, guarantees + #! the parse is complete (the remaining input is empty), + #! picks the first solution and only returns the parse + #! tree since the remaining input is empty. + some-parser-p1 just parse-1 ; : <& ( parser1 parser2 -- parser ) - #! Same as <&> except discard the results of the second parser. - <&> [ first ] <@ ; + #! Same as <&> except discard the results of the second parser. + <&> [ first ] <@ ; : &> ( parser1 parser2 -- parser ) - #! Same as <&> except discard the results of the first parser. - <&> [ second ] <@ ; + #! Same as <&> except discard the results of the first parser. + <&> [ second ] <@ ; : <:&> ( parser1 parser2 -- result ) - #! Same as <&> except flatten the result. - <&> [ dup second swap first [ % , ] { } make ] <@ ; + #! Same as <&> except flatten the result. + <&> [ first2 add ] <@ ; : <&:> ( parser1 parser2 -- result ) - #! Same as <&> except flatten the result. - <&> [ dup second swap first [ , % ] { } make ] <@ ; + #! Same as <&> except flatten the result. + <&> [ first2 swap add* ] <@ ; + +: <:&:> ( parser1 parser2 -- result ) + #! Same as <&> except flatten the result. + <&> [ first2 append ] <@ ; LAZY: <*> ( parser -- parser ) - dup <*> <&:> { } succeed <|> ; + dup <*> <&:> { } succeed <|> ; : <+> ( parser -- parser ) - #! Return a parser that accepts one or more occurences of the original - #! parser. - dup <*> <&:> ; + #! Return a parser that accepts one or more occurences of the original + #! parser. + dup <*> <&:> ; LAZY: ( parser -- parser ) - #! Return a parser that optionally uses the parser - #! if that parser would be successfull. - [ 1array ] <@ f succeed <|> ; + #! Return a parser that optionally uses the parser + #! if that parser would be successful. + [ 1array ] <@ f succeed <|> ; TUPLE: only-first-parser p1 ; -LAZY: only-first ( parser -- parser ) - \ only-first-parser construct-boa ; -M: only-first-parser (parse) ( input parser -- list ) - #! Transform a parser into a parser that only yields - #! the first possibility. - only-first-parser-p1 parse 1 swap ltake ; +LAZY: only-first ( parser -- parser ) + only-first-parser construct-boa ; + +M: only-first-parser parse ( input parser -- list ) + #! Transform a parser into a parser that only yields + #! the first possibility. + only-first-parser-p1 parse 1 swap ltake ; LAZY: ( parser -- parser ) - #! Like <*> but only return one possible result - #! containing all matching parses. Does not return - #! partial matches. Useful for efficiency since that's - #! usually the effect you want and cuts down on backtracking - #! required. - <*> only-first ; + #! Like <*> but only return one possible result + #! containing all matching parses. Does not return + #! partial matches. Useful for efficiency since that's + #! usually the effect you want and cuts down on backtracking + #! required. + <*> only-first ; LAZY: ( parser -- parser ) - #! Like <+> but only return one possible result - #! containing all matching parses. Does not return - #! partial matches. Useful for efficiency since that's - #! usually the effect you want and cuts down on backtracking - #! required. - <+> only-first ; + #! Like <+> but only return one possible result + #! containing all matching parses. Does not return + #! partial matches. Useful for efficiency since that's + #! usually the effect you want and cuts down on backtracking + #! required. + <+> only-first ; LAZY: ( parser -- parser ) - #! Like but only return one possible result - #! containing all matching parses. Does not return - #! partial matches. Useful for efficiency since that's - #! usually the effect you want and cuts down on backtracking - #! required. - only-first ; + #! Like but only return one possible result + #! containing all matching parses. Does not return + #! partial matches. Useful for efficiency since that's + #! usually the effect you want and cuts down on backtracking + #! required. + only-first ; -LAZY: <(*)> ( parser -- parser ) - #! Like <*> but take shortest match first. +LAZY: <(?)> ( parser -- parser ) + #! Like but take shortest match first. + f succeed swap [ 1array ] <@ <|> ; + +LAZY: <(*)> ( parser -- parser ) + #! Like <*> but take shortest match first. #! Implementation by Matthew Willis. { } succeed swap dup <(*)> <&:> <|> ; LAZY: <(+)> ( parser -- parser ) - #! Like <+> but take shortest match first. + #! Like <+> but take shortest match first. #! Implementation by Matthew Willis. dup <(*)> <&:> ; -LAZY: pack ( close body open -- parser ) - #! Parse a construct enclosed by two symbols, - #! given a parser for the opening symbol, the - #! closing symbol, and the body. - <& &> ; +: pack ( close body open -- parser ) + #! Parse a construct enclosed by two symbols, + #! given a parser for the opening symbol, the + #! closing symbol, and the body. + <& &> ; -LAZY: list-of ( items separator -- parser ) - #! Given a parser for the separator and for the - #! items themselves, return a parser that parses - #! lists of those items. The parse tree is an - #! array of the parsed items. - over &> <*> <&:> { } succeed <|> ; \ No newline at end of file +: nonempty-list-of ( items separator -- parser ) + [ over &> <*> <&:> ] keep tuck pack ; + +: list-of ( items separator -- parser ) + #! Given a parser for the separator and for the + #! items themselves, return a parser that parses + #! lists of those items. The parse tree is an + #! array of the parsed items. + nonempty-list-of { } succeed <|> ; + +LAZY: surrounded-by ( parser start end -- parser' ) + [ token ] 2apply swapd pack ; + +: flatten* ( obj -- ) + dup array? [ [ flatten* ] each ] [ , ] if ; + +: flatten [ flatten* ] { } make ; + +: exactly-n ( parser n -- parser' ) + swap [ flatten ] <@ ; + +: at-most-n ( parser n -- parser' ) + dup zero? [ + 2drop epsilon + ] [ + 2dup exactly-n + -rot 1- at-most-n <|> + ] if ; + +: at-least-n ( parser n -- parser' ) + dupd exactly-n swap <*> <&> ; + +: from-m-to-n ( parser m n -- parser' ) + >r [ exactly-n ] 2keep r> swap - at-most-n <:&:> ; diff --git a/extra/parser-combinators/replace/replace.factor b/extra/parser-combinators/replace/replace.factor old mode 100644 new mode 100755 index 0d9b7f743a..541bde7ac7 --- a/extra/parser-combinators/replace/replace.factor +++ b/extra/parser-combinators/replace/replace.factor @@ -13,21 +13,21 @@ IN: parser-combinators } cond ; : search ( string parser -- seq ) - 'any-char' [ drop f ] <@ <|> <*> parse dup nil? [ + any-char-parser [ drop f ] <@ <|> <*> parse dup nil? [ drop { } ] [ car parse-result-parsed [ ] subset ] if ; : search* ( string parsers -- seq ) - unclip [ <|> ] reduce 'any-char' [ drop f ] <@ <|> <*> parse dup nil? [ + unclip [ <|> ] reduce any-char-parser [ drop f ] <@ <|> <*> parse dup nil? [ drop { } ] [ car parse-result-parsed [ ] subset ] if ; : (replace) ( string parser -- seq ) - 'any-char' <|> <*> parse car parse-result-parsed ; + any-char-parser <|> <*> parse-1 ; : replace ( string parser -- result ) [ (replace) [ tree-write ] each ] string-out ; diff --git a/extra/parser-combinators/simple/simple-docs.factor b/extra/parser-combinators/simple/simple-docs.factor old mode 100644 new mode 100755 index b85d3ab5bb..52786aceae --- a/extra/parser-combinators/simple/simple-docs.factor +++ b/extra/parser-combinators/simple/simple-docs.factor @@ -3,17 +3,6 @@ USING: help.syntax help.markup parser-combinators parser-combinators.simple ; -HELP: 'any-char' -{ $values - { "parser" "a parser object" } } -{ $description - "Return a parser that consumes a single value " - "from the input string. The value consumed is the " - "result of the parse." } -{ $examples -{ $example "USING: lazy-lists parser-combinators ;" "\"foo\" 'any-char' parse car parse-result-parsed ." "102" } } -{ $see-also 'any-char' 'digit' 'integer' 'string' 'bold' 'italic' comma-list } ; - HELP: 'digit' { $values { "parser" "a parser object" } } @@ -22,8 +11,7 @@ HELP: 'digit' "the input string. The numeric value of the digit " " consumed is the result of the parse." } { $examples -{ $example "USING: lazy-lists parser-combinators ;" "\"123\" 'digit' parse car parse-result-parsed ." "1" } } -{ $see-also 'any-char' 'digit' 'integer' 'string' 'bold' 'italic' comma-list } ; +{ $example "USING: lazy-lists parser-combinators ;" "\"123\" 'digit' parse-1 ." "1" } } ; HELP: 'integer' { $values @@ -33,9 +21,7 @@ HELP: 'integer' "the input string. The numeric value of the integer " " consumed is the result of the parse." } { $examples -{ $example "USING: lazy-lists parser-combinators ;" "\"123\" 'integer' parse car parse-result-parsed ." "123" } } -{ $see-also 'any-char' 'digit' 'integer' 'string' 'bold' 'italic' comma-list } ; - +{ $example "USING: lazy-lists parser-combinators ;" "\"123\" 'integer' parse-1 ." "123" } } ; HELP: 'string' { $values { "parser" "a parser object" } } @@ -44,9 +30,7 @@ HELP: 'string' "quotations from the input string. The string value " " consumed is the result of the parse." } { $examples -{ $example "USING: lazy-lists parser-combinators ;" "\"\\\"foo\\\"\" 'string' parse car parse-result-parsed ." "\"foo\"" } } -{ $see-also 'any-char' 'digit' 'integer' 'string' 'bold' 'italic' comma-list } ; - +{ $example "USING: lazy-lists parser-combinators ;" "\"\\\"foo\\\"\" 'string' parse-1 ." "\"foo\"" } } ; HELP: 'bold' { $values { "parser" "a parser object" } } @@ -55,10 +39,8 @@ HELP: 'bold' "the '*' character from the input string. This is " "commonly used in markup languages to indicate bold " "faced text." } -{ $example "USE: parser-combinators" "\"*foo*\" 'bold' parse car parse-result-parsed ." "\"foo\"" } -{ $example "USE: parser-combinators" "\"*foo*\" 'bold' [ \"\" swap \"\" 3append ] <@ parse car parse-result-parsed ." "\"foo\"" } -{ $see-also 'any-char' 'digit' 'integer' 'string' 'bold' 'italic' comma-list } ; - +{ $example "USE: parser-combinators" "\"*foo*\" 'bold' parse-1 ." "\"foo\"" } +{ $example "USE: parser-combinators" "\"*foo*\" 'bold' [ \"\" swap \"\" 3append ] <@ parse-1 ." "\"foo\"" } ; HELP: 'italic' { $values { "parser" "a parser object" } } @@ -68,10 +50,8 @@ HELP: 'italic' "commonly used in markup languages to indicate italic " "faced text." } { $examples -{ $example "USING: lazy-lists parser-combinators ;" "\"_foo_\" 'italic' parse car parse-result-parsed ." "\"foo\"" } -{ $example "USING: lazy-lists parser-combinators ;" "\"_foo_\" 'italic' [ \"\" swap \"\" 3append ] <@ parse car parse-result-parsed ." "\"foo\"" } } -{ $see-also 'any-char' 'digit' 'integer' 'string' 'bold' 'italic' comma-list } ; - +{ $example "USING: lazy-lists parser-combinators ;" "\"_foo_\" 'italic' parse-1 ." "\"foo\"" } +{ $example "USING: lazy-lists parser-combinators ;" "\"_foo_\" 'italic' [ \"\" swap \"\" 3append ] <@ parse-1 ." "\"foo\"" } } ; HELP: comma-list { $values { "element" "a parser object" } { "parser" "a parser object" } } @@ -80,5 +60,6 @@ HELP: comma-list "'element' should be a parser that can parse the elements. The " "result of the parser is a sequence of the parsed elements." } { $examples -{ $example "USING: lazy-lists parser-combinators ;" "\"1,2,3,4\" 'integer' comma-list parse car parse-result-parsed ." "{ 1 2 3 4 }" } } -{ $see-also 'any-char' 'digit' 'integer' 'string' 'bold' 'italic' comma-list } ; +{ $example "USING: lazy-lits parser-combinators ;" "\"1,2,3,4\" 'integer' comma-list parse-1 ." "{ 1 2 3 4 }" } } ; + +{ $see-also 'digit' 'integer' 'string' 'bold' 'italic' comma-list } related-words diff --git a/extra/parser-combinators/simple/simple.factor b/extra/parser-combinators/simple/simple.factor old mode 100644 new mode 100755 index 955807efa3..c5b84d86c6 --- a/extra/parser-combinators/simple/simple.factor +++ b/extra/parser-combinators/simple/simple.factor @@ -4,9 +4,6 @@ USING: kernel strings math sequences lazy-lists words math.parser promises ; IN: parser-combinators -LAZY: 'any-char' ( -- parser ) - [ drop t ] satisfy ; - : 'digit' ( -- parser ) [ digit? ] satisfy [ digit> ] <@ ; diff --git a/extra/peg/authors.txt b/extra/peg/authors.txt new file mode 100644 index 0000000000..44b06f94bc --- /dev/null +++ b/extra/peg/authors.txt @@ -0,0 +1 @@ +Chris Double diff --git a/extra/peg/ebnf/authors.txt b/extra/peg/ebnf/authors.txt new file mode 100644 index 0000000000..44b06f94bc --- /dev/null +++ b/extra/peg/ebnf/authors.txt @@ -0,0 +1 @@ +Chris Double diff --git a/extra/peg/ebnf/ebnf-tests.factor b/extra/peg/ebnf/ebnf-tests.factor new file mode 100644 index 0000000000..a308b9af52 --- /dev/null +++ b/extra/peg/ebnf/ebnf-tests.factor @@ -0,0 +1,99 @@ +! Copyright (C) 2007 Chris Double. +! See http://factorcode.org/license.txt for BSD license. +! +USING: kernel tools.test peg peg.ebnf ; +IN: temporary + +{ T{ ebnf-non-terminal f "abc" } } [ + "abc" 'non-terminal' parse parse-result-ast +] unit-test + +{ T{ ebnf-terminal f "55" } } [ + "'55'" 'terminal' parse parse-result-ast +] unit-test + +{ + T{ ebnf-rule f + "digit" + V{ + T{ ebnf-choice f + V{ T{ ebnf-terminal f "1" } T{ ebnf-terminal f "2" } } + } + f + } + } +} [ + "digit = '1' | '2'" 'rule' parse parse-result-ast +] unit-test + +{ + T{ ebnf-rule f + "digit" + V{ + T{ ebnf-sequence f + V{ T{ ebnf-terminal f "1" } T{ ebnf-terminal f "2" } } + } + f + } + } +} [ + "digit = '1' '2'" 'rule' parse parse-result-ast +] unit-test + +{ + T{ ebnf-choice f + V{ + T{ ebnf-sequence f + V{ T{ ebnf-non-terminal f "one" } T{ ebnf-non-terminal f "two" } } + } + T{ ebnf-non-terminal f "three" } + } + } +} [ + "one two | three" 'choice' parse parse-result-ast +] unit-test + +{ + T{ ebnf-sequence f + V{ + T{ ebnf-non-terminal f "one" } + T{ ebnf-choice f + V{ T{ ebnf-non-terminal f "two" } T{ ebnf-non-terminal f "three" } } + } + } + } +} [ + "one (two | three)" 'choice' parse parse-result-ast +] unit-test + +{ + T{ ebnf-sequence f + V{ + T{ ebnf-non-terminal f "one" } + T{ ebnf-repeat0 f + T{ ebnf-sequence f + V{ + T{ ebnf-choice f + V{ T{ ebnf-non-terminal f "two" } T{ ebnf-non-terminal f "three" } } + } + T{ ebnf-non-terminal f "four" } + } + } + } + } + } +} [ + "one {(two | three) four}" 'choice' parse parse-result-ast +] unit-test + +{ + T{ ebnf-sequence f + V{ + T{ ebnf-non-terminal f "one" } + T{ ebnf-optional f T{ ebnf-non-terminal f "two" } } + T{ ebnf-non-terminal f "three" } + } + } +} [ + "one [ two ] three" 'choice' parse parse-result-ast +] unit-test diff --git a/extra/peg/ebnf/ebnf.factor b/extra/peg/ebnf/ebnf.factor new file mode 100644 index 0000000000..e55ee9d852 --- /dev/null +++ b/extra/peg/ebnf/ebnf.factor @@ -0,0 +1,184 @@ +! Copyright (C) 2007 Chris Double. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel parser words arrays strings math.parser sequences + quotations vectors namespaces math assocs continuations peg ; +IN: peg.ebnf + +TUPLE: ebnf-non-terminal symbol ; +TUPLE: ebnf-terminal symbol ; +TUPLE: ebnf-choice options ; +TUPLE: ebnf-sequence elements ; +TUPLE: ebnf-repeat0 group ; +TUPLE: ebnf-optional elements ; +TUPLE: ebnf-rule symbol elements ; +TUPLE: ebnf-action word ; +TUPLE: ebnf rules ; + +C: ebnf-non-terminal +C: ebnf-terminal +C: ebnf-choice +C: ebnf-sequence +C: ebnf-repeat0 +C: ebnf-optional +C: ebnf-rule +C: ebnf-action +C: ebnf + +SYMBOL: parsers +SYMBOL: non-terminals +SYMBOL: last-parser + +: reset-parser-generation ( -- ) + V{ } clone parsers set + H{ } clone non-terminals set + f last-parser set ; + +: store-parser ( parser -- number ) + parsers get [ push ] keep length 1- ; + +: get-parser ( index -- parser ) + parsers get nth ; + +: non-terminal-index ( name -- number ) + dup non-terminals get at [ + nip + ] [ + f store-parser [ swap non-terminals get set-at ] keep + ] if* ; + +GENERIC: (generate-parser) ( ast -- id ) + +: generate-parser ( ast -- id ) + (generate-parser) dup last-parser set ; + +M: ebnf-terminal (generate-parser) ( ast -- id ) + ebnf-terminal-symbol token sp store-parser ; + +M: ebnf-non-terminal (generate-parser) ( ast -- id ) + [ + ebnf-non-terminal-symbol dup non-terminal-index , + parsers get , \ nth , [ search ] [ 2drop f ] recover , \ or , + ] [ ] make delay sp store-parser ; + +M: ebnf-choice (generate-parser) ( ast -- id ) + ebnf-choice-options [ + generate-parser get-parser + ] map choice store-parser ; + +M: ebnf-sequence (generate-parser) ( ast -- id ) + ebnf-sequence-elements [ + generate-parser get-parser + ] map seq store-parser ; + +M: ebnf-repeat0 (generate-parser) ( ast -- id ) + ebnf-repeat0-group generate-parser get-parser repeat0 store-parser ; + +M: ebnf-optional (generate-parser) ( ast -- id ) + ebnf-optional-elements generate-parser get-parser optional store-parser ; + +M: ebnf-rule (generate-parser) ( ast -- id ) + dup ebnf-rule-symbol non-terminal-index swap + ebnf-rule-elements generate-parser get-parser ! nt-id body + swap [ parsers get set-nth ] keep ; + +M: ebnf-action (generate-parser) ( ast -- id ) + ebnf-action-word search 1quotation + last-parser get get-parser swap action store-parser ; + +M: vector (generate-parser) ( ast -- id ) + [ generate-parser ] map peek ; + +M: f (generate-parser) ( ast -- id ) + drop last-parser get ; + +M: ebnf (generate-parser) ( ast -- id ) + ebnf-rules [ + generate-parser + ] map peek ; + +DEFER: 'rhs' + +: 'non-terminal' ( -- parser ) + CHAR: a CHAR: z range repeat1 [ >string ] action ; + +: 'terminal' ( -- parser ) + "'" token hide [ CHAR: ' = not ] satisfy repeat1 "'" token hide 3array seq [ first >string ] action ; + +: 'element' ( -- parser ) + 'non-terminal' 'terminal' 2array choice ; + +DEFER: 'choice' + +: 'group' ( -- parser ) + "(" token sp hide + [ 'choice' sp ] delay + ")" token sp hide + 3array seq [ first ] action ; + +: 'repeat0' ( -- parser ) + "{" token sp hide + [ 'choice' sp ] delay + "}" token sp hide + 3array seq [ first ] action ; + +: 'optional' ( -- parser ) + "[" token sp hide + [ 'choice' sp ] delay + "]" token sp hide + 3array seq [ first ] action ; + +: 'sequence' ( -- parser ) + [ + 'element' sp , + 'group' sp , + 'repeat0' sp , + 'optional' sp , + ] { } make choice + repeat1 [ + dup length 1 = [ first ] [ ] if + ] action ; + +: 'choice' ( -- parser ) + 'sequence' sp "|" token sp list-of [ + dup length 1 = [ first ] [ ] if + ] action ; + +: 'action' ( -- parser ) + "=>" token hide + [ blank? ] satisfy ensure-not [ drop t ] satisfy 2array seq [ first ] action repeat1 [ >string ] action sp + 2array seq [ first ] action ; + +: 'rhs' ( -- parser ) + 'choice' 'action' sp optional 2array seq ; + +: 'rule' ( -- parser ) + 'non-terminal' [ ebnf-non-terminal-symbol ] action + "=" token sp hide + 'rhs' + 3array seq [ first2 ] action ; + +: 'ebnf' ( -- parser ) + 'rule' sp "." token sp hide list-of [ ] action ; + +: ebnf>quot ( string -- quot ) + 'ebnf' parse [ + parse-result-ast [ + reset-parser-generation + generate-parser drop + [ + non-terminals get + [ + get-parser [ + swap , \ in , \ get , \ create , + 1quotation , \ define-compound , + ] [ + drop + ] if* + ] assoc-each + ] [ ] make + ] with-scope + ] [ + f + ] if* ; + +: " parse-tokens " " join ebnf>quot call ; parsing \ No newline at end of file diff --git a/extra/peg/ebnf/summary.txt b/extra/peg/ebnf/summary.txt new file mode 100644 index 0000000000..473cf4f3a2 --- /dev/null +++ b/extra/peg/ebnf/summary.txt @@ -0,0 +1 @@ +Grammar for parsing EBNF diff --git a/extra/peg/peg-docs.factor b/extra/peg/peg-docs.factor new file mode 100644 index 0000000000..63b9d44310 --- /dev/null +++ b/extra/peg/peg-docs.factor @@ -0,0 +1,150 @@ +! Copyright (C) 2007 Chris Double. +! See http://factorcode.org/license.txt for BSD license. +USING: help.markup help.syntax peg ; + +HELP: parse +{ $values + { "string" "a string" } + { "parse" "a parser" } + { "result" "a or f" } +} +{ $description + "Given the input string, parse it using the given parser. The result is a object if " + "the parse was successful, otherwise it is f." } ; + +HELP: token +{ $values + { "string" "a string" } + { "parser" "a parser" } +} +{ $description + "Returns a parser that matches the given string." } ; + +HELP: satisfy +{ $values + { "quot" "a quotation" } + { "parser" "a parser" } +} +{ $description + "Returns a parser that calls the quotation on the first character of the input string, " + "succeeding if that quotation returns true. The AST is the character from the string." } ; + +HELP: range +{ $values + { "min" "a character" } + { "max" "a character" } + { "parser" "a parser" } +} +{ $description + "Returns a parser that matches a single character that lies within the range of characters given, inclusive." } +{ $example ": digit ( -- parser ) CHAR: 0 CHAR: 9 range ;" } ; + +HELP: seq +{ $values + { "seq" "a sequence of parsers" } + { "parser" "a parser" } +} +{ $description + "Returns a parser that calls all parsers in the given sequence, in order. The parser succeeds if " + "all the parsers succeed, otherwise it fails. The AST produced is a sequence of the AST produced by " + "the individual parsers." } ; + +HELP: choice +{ $values + { "seq" "a sequence of parsers" } + { "parser" "a parser" } +} +{ $description + "Returns a parser that will try all the parsers in the sequence, in order, until one succeeds. " + "The resulting AST is that produced by the successful parser." } ; + +HELP: repeat0 +{ $values + { "p1" "a parser" } + { "p2" "a parser" } +} +{ $description + "Returns a parser that parses 0 or more instances of the 'p1' parser. The AST produced is " + "an array of the AST produced by the 'p1' parser. An empty array indicates 0 instances were " + "parsed." } ; + +HELP: repeat1 +{ $values + { "p1" "a parser" } + { "p2" "a parser" } +} +{ $description + "Returns a parser that parses 1 or more instances of the 'p1' parser. The AST produced is " + "an array of the AST produced by the 'p1' parser." } ; + +HELP: optional +{ $values + { "p1" "a parser" } + { "p2" "a parser" } +} +{ $description + "Returns a parser that parses 0 or 1 instances of the 'p1' parser. The AST produced is " + "'f' if 0 instances are parsed the AST produced is 'f', otherwise it is the AST produced by 'p1'." } ; + +HELP: ensure +{ $values + { "p1" "a parser" } + { "p2" "a parser" } +} +{ $description + "Returns a parser that succeeds if the 'p1' parser succeeds but does not add anything to the " + "AST and does not move the location in the input string. This can be used for lookahead and " + "disambiguation, along with the " { $link ensure-not } " word." } +{ $example "\"0\" token ensure octal-parser" } ; + +HELP: ensure-not +{ $values + { "p1" "a parser" } + { "p2" "a parser" } +} +{ $description + "Returns a parser that succeeds if the 'p1' parser fails but does not add anything to the " + "AST and does not move the location in the input string. This can be used for lookahead and " + "disambiguation, along with the " { $link ensure } " word." } +{ $example "\"+\" token \"=\" token ensure-not \"+=\" token 3array seq" } ; + +HELP: action +{ $values + { "p1" "a parser" } + { "quot" "a quotation with stack effect ( ast -- ast )" } +} +{ $description + "Returns a parser that calls the 'p1' parser and applies the quotation to the AST resulting " + "from that parse. The result of the quotation is then used as the final AST. This can be used " + "for manipulating the parse tree to produce a AST better suited for the task at hand rather than " + "the default AST." } +{ $example "CHAR: 0 CHAR: 9 range [ to-digit ] action" } ; + +HELP: sp +{ $values + { "p1" "a parser" } + { "parser" "a parser" } +} +{ $description + "Returns a parser that calls the original parser 'p1' after stripping any whitespace " + " from the left of the input string." } ; + +HELP: hide +{ $values + { "p1" "a parser" } + { "parser" "a parser" } +} +{ $description + "Returns a parser that succeeds if the original parser succeeds, but does not " + "put any result in the AST. Useful for ignoring 'syntax' in the AST." } +{ $example "\"[\" token hide number \"]\" token hide 3array seq" } ; + +HELP: delay +{ $values + { "quot" "a quotation with stack effect ( -- parser )" } + { "parser" "a parser" } +} +{ $description + "Delays the construction of a parser until it is actually required to parse. This " + "allows for calling a parser that results in a recursive call to itself. The quotation " + "should return the constructed parser." } ; \ No newline at end of file diff --git a/extra/peg/peg-tests.factor b/extra/peg/peg-tests.factor new file mode 100644 index 0000000000..6a8d7429f3 --- /dev/null +++ b/extra/peg/peg-tests.factor @@ -0,0 +1,164 @@ +! Copyright (C) 2007 Chris Double. +! See http://factorcode.org/license.txt for BSD license. +! +USING: kernel tools.test strings namespaces arrays sequences peg peg.private ; +IN: temporary + +{ 0 1 2 } [ + 0 next-id set-global get-next-id get-next-id get-next-id +] unit-test + +{ f } [ + "endbegin" "begin" token parse +] unit-test + +{ "begin" "end" } [ + "beginend" "begin" token parse + { parse-result-ast parse-result-remaining } get-slots + >string +] unit-test + +{ f } [ + "" CHAR: a CHAR: z range parse +] unit-test + +{ f } [ + "1bcd" CHAR: a CHAR: z range parse +] unit-test + +{ CHAR: a } [ + "abcd" CHAR: a CHAR: z range parse parse-result-ast +] unit-test + +{ CHAR: z } [ + "zbcd" CHAR: a CHAR: z range parse parse-result-ast +] unit-test + +{ f } [ + "bad" "a" token "b" token 2array seq parse +] unit-test + +{ V{ "g" "o" } } [ + "good" "g" token "o" token 2array seq parse parse-result-ast +] unit-test + +{ "a" } [ + "abcd" "a" token "b" token 2array choice parse parse-result-ast +] unit-test + +{ "b" } [ + "bbcd" "a" token "b" token 2array choice parse parse-result-ast +] unit-test + +{ f } [ + "cbcd" "a" token "b" token 2array choice parse +] unit-test + +{ f } [ + "" "a" token "b" token 2array choice parse +] unit-test + +{ 0 } [ + "" "a" token repeat0 parse parse-result-ast length +] unit-test + +{ 0 } [ + "b" "a" token repeat0 parse parse-result-ast length +] unit-test + +{ V{ "a" "a" "a" } } [ + "aaab" "a" token repeat0 parse parse-result-ast +] unit-test + +{ f } [ + "" "a" token repeat1 parse +] unit-test + +{ f } [ + "b" "a" token repeat1 parse +] unit-test + +{ V{ "a" "a" "a" } } [ + "aaab" "a" token repeat1 parse parse-result-ast +] unit-test + +{ V{ "a" "b" } } [ + "ab" "a" token optional "b" token 2array seq parse parse-result-ast +] unit-test + +{ V{ f "b" } } [ + "b" "a" token optional "b" token 2array seq parse parse-result-ast +] unit-test + +{ f } [ + "cb" "a" token optional "b" token 2array seq parse +] unit-test + +{ V{ CHAR: a CHAR: b } } [ + "ab" "a" token ensure CHAR: a CHAR: z range dup 3array seq parse parse-result-ast +] unit-test + +{ f } [ + "bb" "a" token ensure CHAR: a CHAR: z range 2array seq parse +] unit-test + +{ t } [ + "a+b" + "a" token "+" token dup ensure-not 2array seq "++" token 2array choice "b" token 3array seq + parse [ t ] [ f ] if +] unit-test + +{ t } [ + "a++b" + "a" token "+" token dup ensure-not 2array seq "++" token 2array choice "b" token 3array seq + parse [ t ] [ f ] if +] unit-test + +{ t } [ + "a+b" + "a" token "+" token "++" token 2array choice "b" token 3array seq + parse [ t ] [ f ] if +] unit-test + +{ f } [ + "a++b" + "a" token "+" token "++" token 2array choice "b" token 3array seq + parse [ t ] [ f ] if +] unit-test + +{ 1 } [ + "a" "a" token [ drop 1 ] action parse parse-result-ast +] unit-test + +{ V{ 1 1 } } [ + "aa" "a" token [ drop 1 ] action dup 2array seq parse parse-result-ast +] unit-test + +{ f } [ + "b" "a" token [ drop 1 ] action parse +] unit-test + +{ f } [ + "b" [ CHAR: a = ] satisfy parse +] unit-test + +{ CHAR: a } [ + "a" [ CHAR: a = ] satisfy parse parse-result-ast +] unit-test + +{ "a" } [ + " a" "a" token sp parse parse-result-ast +] unit-test + +{ "a" } [ + "a" "a" token sp parse parse-result-ast +] unit-test + +{ V{ "a" } } [ + "[a]" "[" token hide "a" token "]" token hide 3array seq parse parse-result-ast +] unit-test + +{ f } [ + "a]" "[" token hide "a" token "]" token hide 3array seq parse +] unit-test + diff --git a/extra/peg/peg.factor b/extra/peg/peg.factor new file mode 100644 index 0000000000..7fa1fb90e5 --- /dev/null +++ b/extra/peg/peg.factor @@ -0,0 +1,267 @@ +! Copyright (C) 2007 Chris Double. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel sequences strings namespaces math assocs shuffle + vectors arrays combinators.lib memoize ; +IN: peg + +TUPLE: parse-result remaining ast ; + +GENERIC: (parse) ( state parser -- result ) + + ( remaining ast -- parse-result ) + parse-result construct-boa ; + +SYMBOL: next-id + +: get-next-id ( -- number ) + next-id get-global 0 or dup 1+ next-id set-global ; + +TUPLE: parser id ; + +: init-parser ( parser -- parser ) + get-next-id parser construct-boa over set-delegate ; + +: from ( slice-or-string -- index ) + dup slice? [ slice-from ] [ drop 0 ] if ; + +: get-cached ( input parser -- result ) + [ from ] dip parser-id packrat-cache get at at* [ + drop not-in-cache + ] unless ; + +: put-cached ( result input parser -- ) + parser-id dup packrat-cache get at [ + nip + ] [ + H{ } clone dup >r swap packrat-cache get set-at r> + ] if* + [ from ] dip set-at ; + +PRIVATE> + +: parse ( input parser -- result ) + packrat-cache get [ + 2dup get-cached dup not-in-cache? [ +! "cache missed: " write over parser-id number>string write " - " write nl ! pick . + drop + #! Protect against left recursion blowing the callstack + #! by storing a failed parse in the cache. + [ f ] dipd [ put-cached ] 2keep + [ (parse) dup ] 2keep put-cached + ] [ +! "cache hit: " write over parser-id number>string write " - " write nl ! pick . + 2nip + ] if + ] [ + (parse) + ] if ; + +: packrat-parse ( input parser -- result ) + H{ } clone packrat-cache [ parse ] with-variable ; + +r length tail-slice r> + ] [ + 2drop f + ] if ; + +TUPLE: satisfy-parser quot ; + +M: satisfy-parser (parse) ( state parser -- result ) + over empty? [ + 2drop f + ] [ + satisfy-parser-quot [ unclip-slice dup ] dip call [ + + ] [ + 2drop f + ] if + ] if ; + +TUPLE: range-parser min max ; + +M: range-parser (parse) ( state parser -- result ) + over empty? [ + 2drop f + ] [ + 0 pick nth dup rot + { range-parser-min range-parser-max } get-slots between? [ + [ 1 tail-slice ] dip + ] [ + 2drop f + ] if + ] if ; + +TUPLE: seq-parser parsers ; + +: do-seq-parser ( result parser -- result ) + [ dup parse-result-remaining ] dip parse [ + [ parse-result-remaining swap set-parse-result-remaining ] 2keep + parse-result-ast dup ignore = [ drop ] [ swap [ parse-result-ast push ] keep ] if + ] [ + drop f + ] if* ; + +: (seq-parser) ( result parsers -- result ) + dup empty? not pick and [ + unclip swap [ do-seq-parser ] dip (seq-parser) + ] [ + drop + ] if ; + +M: seq-parser (parse) ( state parser -- result ) + seq-parser-parsers [ V{ } clone ] dip (seq-parser) ; + +TUPLE: choice-parser parsers ; + +: (choice-parser) ( state parsers -- result ) + dup empty? [ + 2drop f + ] [ + unclip pick swap parse [ + 2nip + ] [ + (choice-parser) + ] if* + ] if ; + +M: choice-parser (parse) ( state parser -- result ) + choice-parser-parsers (choice-parser) ; + +TUPLE: repeat0-parser p1 ; + +: (repeat-parser) ( parser result -- result ) + 2dup parse-result-remaining swap parse [ + [ parse-result-remaining swap set-parse-result-remaining ] 2keep + parse-result-ast swap [ parse-result-ast push ] keep + (repeat-parser) + ] [ + nip + ] if* ; + +: clone-result ( result -- result ) + { parse-result-remaining parse-result-ast } + get-slots 1vector ; + +M: repeat0-parser (parse) ( state parser -- result ) + repeat0-parser-p1 2dup parse [ + nipd clone-result (repeat-parser) + ] [ + drop V{ } clone + ] if* ; + +TUPLE: repeat1-parser p1 ; + +M: repeat1-parser (parse) ( state parser -- result ) + repeat1-parser-p1 tuck parse dup [ clone-result (repeat-parser) ] [ nip ] if ; + +TUPLE: optional-parser p1 ; + +M: optional-parser (parse) ( state parser -- result ) + dupd optional-parser-p1 parse swap f or ; + +TUPLE: ensure-parser p1 ; + +M: ensure-parser (parse) ( state parser -- result ) + dupd ensure-parser-p1 parse [ + ignore + ] [ + drop f + ] if ; + +TUPLE: ensure-not-parser p1 ; + +M: ensure-not-parser (parse) ( state parser -- result ) + dupd ensure-not-parser-p1 parse [ + drop f + ] [ + ignore + ] if ; + +TUPLE: action-parser p1 quot ; + +M: action-parser (parse) ( state parser -- result ) + tuck action-parser-p1 parse dup [ + dup parse-result-ast rot action-parser-quot call + swap [ set-parse-result-ast ] keep + ] [ + nip + ] if ; + +: left-trim-slice ( string -- string ) + #! Return a new string without any leading whitespace + #! from the original string. + dup empty? [ + dup first blank? [ 1 tail-slice left-trim-slice ] when + ] unless ; + +TUPLE: sp-parser p1 ; + +M: sp-parser (parse) ( state parser -- result ) + [ left-trim-slice ] dip sp-parser-p1 parse ; + +TUPLE: delay-parser quot ; + +M: delay-parser (parse) ( state parser -- result ) + delay-parser-quot call parse ; + +PRIVATE> + +MEMO: token ( string -- parser ) + token-parser construct-boa init-parser ; + +: satisfy ( quot -- parser ) + satisfy-parser construct-boa init-parser ; + +MEMO: range ( min max -- parser ) + range-parser construct-boa init-parser ; + +: seq ( seq -- parser ) + seq-parser construct-boa init-parser ; + +: choice ( seq -- parser ) + choice-parser construct-boa init-parser ; + +MEMO: repeat0 ( parser -- parser ) + repeat0-parser construct-boa init-parser ; + +MEMO: repeat1 ( parser -- parser ) + repeat1-parser construct-boa init-parser ; + +MEMO: optional ( parser -- parser ) + optional-parser construct-boa init-parser ; + +MEMO: ensure ( parser -- parser ) + ensure-parser construct-boa init-parser ; + +MEMO: ensure-not ( parser -- parser ) + ensure-not-parser construct-boa init-parser ; + +: action ( parser quot -- parser ) + action-parser construct-boa init-parser ; + +MEMO: sp ( parser -- parser ) + sp-parser construct-boa init-parser ; + +MEMO: hide ( parser -- parser ) + [ drop ignore ] action ; + +MEMO: delay ( parser -- parser ) + delay-parser construct-boa init-parser ; + +MEMO: list-of ( items separator -- parser ) + hide over 2array seq repeat0 [ concat ] action 2array seq [ unclip 1vector swap first append ] action ; diff --git a/extra/peg/pl0/authors.txt b/extra/peg/pl0/authors.txt new file mode 100644 index 0000000000..44b06f94bc --- /dev/null +++ b/extra/peg/pl0/authors.txt @@ -0,0 +1 @@ +Chris Double diff --git a/extra/peg/pl0/pl0-tests.factor b/extra/peg/pl0/pl0-tests.factor new file mode 100644 index 0000000000..cec7b24cd0 --- /dev/null +++ b/extra/peg/pl0/pl0-tests.factor @@ -0,0 +1,13 @@ +! Copyright (C) 2007 Chris Double. +! See http://factorcode.org/license.txt for BSD license. +! +USING: kernel tools.test peg peg.pl0 ; +IN: temporary + +{ "abc" } [ + "abc" ident parse parse-result-ast +] unit-test + +{ 55 } [ + "55abc" number parse parse-result-ast +] unit-test diff --git a/extra/peg/pl0/pl0.factor b/extra/peg/pl0/pl0.factor new file mode 100644 index 0000000000..b6b030f56c --- /dev/null +++ b/extra/peg/pl0/pl0.factor @@ -0,0 +1,29 @@ +! Copyright (C) 2007 Chris Double. +! See http://factorcode.org/license.txt for BSD license. +USING: kernel arrays strings math.parser sequences peg peg.ebnf memoize ; +IN: peg.pl0 + +#! Grammar for PL/0 based on http://en.wikipedia.org/wiki/PL/0 +MEMO: ident ( -- parser ) + CHAR: a CHAR: z range + CHAR: A CHAR: Z range 2array choice repeat1 + [ >string ] action ; + +MEMO: number ( -- parser ) + CHAR: 0 CHAR: 9 range repeat1 [ string>number ] action ; + +=' | '>') expression . +expression = ['+' | '-'] term {('+' | '-') term } . +term = factor {('*' | '/') factor } . +factor = ident | number | '(' expression ')' +EBNF> diff --git a/extra/peg/pl0/summary.txt b/extra/peg/pl0/summary.txt new file mode 100644 index 0000000000..59a20cf8c4 --- /dev/null +++ b/extra/peg/pl0/summary.txt @@ -0,0 +1 @@ +Grammar for PL/0 Language diff --git a/extra/peg/summary.txt b/extra/peg/summary.txt new file mode 100644 index 0000000000..324a544036 --- /dev/null +++ b/extra/peg/summary.txt @@ -0,0 +1 @@ +Parsing Expression Grammar and Packrat Parser diff --git a/extra/prolog/authors.txt b/extra/prolog/authors.txt new file mode 100644 index 0000000000..194cb22416 --- /dev/null +++ b/extra/prolog/authors.txt @@ -0,0 +1 @@ +Gavin Harrison diff --git a/extra/prolog/prolog.factor b/extra/prolog/prolog.factor new file mode 100644 index 0000000000..0a6a513b97 --- /dev/null +++ b/extra/prolog/prolog.factor @@ -0,0 +1,84 @@ +! Copyright (C) 2007 Gavin Harrison +! See http://factorcode.org/license.txt for BSD license. + +USING: kernel sequences arrays vectors namespaces math strings + combinators continuations quotations io assocs ; + +IN: prolog + +SYMBOL: pldb +SYMBOL: plchoice + +: init-pl ( -- ) V{ } clone pldb set V{ } clone plchoice set ; + +: reset-choice ( -- ) V{ } clone plchoice set ; +: remove-choice ( -- ) plchoice get pop drop ; +: add-choice ( continuation -- ) + dup continuation? [ plchoice get push ] [ drop ] if ; +: last-choice ( -- ) plchoice get pop continue ; + +: rules ( -- vector ) pldb get ; +: rule ( n -- rule ) dup rules length >= [ drop "No." ] [ rules nth ] if ; + +: var? ( pl-obj -- ? ) + dup string? [ 0 swap nth LETTER? ] [ drop f ] if ; +: const? ( pl-obj -- ? ) var? not ; + +: check-arity ( pat fact -- pattern fact ? ) 2dup [ length ] 2apply = ; +: check-elements ( pat fact -- ? ) [ over var? [ 2drop t ] [ = ] if ] 2all? ; +: (double-bound) ( key value assoc -- ? ) + pick over at* [ pick = >r 3drop r> ] [ drop swapd set-at t ] if ; +: single-bound? ( pat-d pat-f -- ? ) + H{ } clone [ (double-bound) ] curry 2all? ; +: match-pattern ( pat fact -- ? ) + check-arity [ 2dup check-elements -rot single-bound? and ] [ 2drop f ] if ; +: good-result? ( pat fact -- pat fact ? ) + 2dup dup "No." = [ 2drop t ] [ match-pattern ] if ; + +: add-rule ( name pat body -- ) 3array rules dup length swap set-nth ; + +: (lookup-rule) ( name num -- pat-f rules ) + dup rule dup "No." = >r 0 swap nth swapd dupd = swapd r> or + [ dup rule [ ] callcc0 add-choice ] when + dup number? [ 1+ (lookup-rule) ] [ 2nip ] if ; + +: add-bindings ( pat-d pat-f binds -- binds ) + clone + [ over var? over const? or + [ 2drop ] [ rot dup >r set-at r> ] if + ] 2reduce ; +: init-binds ( pat-d pat-f -- binds ) V{ } clone add-bindings >alist ; + +: replace-if-bound ( binds elt -- binds elt' ) + over 2dup key? [ at ] [ drop ] if ; +: deep-replace ( binds seq -- binds seq' ) + [ dup var? [ replace-if-bound ] + [ dup array? [ dupd deep-replace nip ] when ] if + ] map ; + +: backtrace? ( result -- ) + dup "No." = [ remove-choice last-choice ] + [ [ last-choice ] unless ] if ; + +: resolve-rule ( pat-d pat-f rule-body -- binds ) + >r 2dup init-binds r> [ deep-replace >quotation call dup backtrace? + dup t = [ drop ] when ] each ; + +: rule>pattern ( rule -- pattern ) 1 swap nth ; +: rule>body ( rule -- body ) 2 swap nth ; + +: binds>fact ( pat-d pat-f binds -- fact ) + [ 2dup key? [ at ] [ drop ] if ] curry map good-result? + [ nip ] [ last-choice ] if ; + +: lookup-rule ( name pat -- fact ) + swap 0 (lookup-rule) dup "No." = + [ nip ] + [ dup rule>pattern swapd check-arity + [ rot rule>body resolve-rule dup -roll binds>fact nip ] [ last-choice ] if + ] if ; + +: binding-resolve ( binds name pat -- binds ) + tuck lookup-rule dup backtrace? swap rot add-bindings ; + +: is ( binds val var -- binds ) rot [ set-at ] keep ; diff --git a/extra/prolog/summary.txt b/extra/prolog/summary.txt new file mode 100644 index 0000000000..48ad1f312e --- /dev/null +++ b/extra/prolog/summary.txt @@ -0,0 +1 @@ +Implementation of an embedded prolog for factor diff --git a/extra/prolog/tags.txt b/extra/prolog/tags.txt new file mode 100644 index 0000000000..458345b533 --- /dev/null +++ b/extra/prolog/tags.txt @@ -0,0 +1 @@ +prolog diff --git a/extra/random-tester/databank/databank.factor b/extra/random-tester/databank/databank.factor new file mode 100644 index 0000000000..45ee779372 --- /dev/null +++ b/extra/random-tester/databank/databank.factor @@ -0,0 +1,11 @@ +USING: kernel math.constants ; +IN: random-tester.databank + +: databank ( -- array ) + { + ! V{ } H{ } V{ 3 } { 3 } { } "" "asdf" + pi 1/0. -1/0. 0/0. [ ] + f t "" 0 0.0 3.14 2 -3 -7 20 3/4 -3/4 1.2/3 3.5 + C{ 2 2 } C{ 1/0. 1/0. } + } ; + diff --git a/extra/random-tester/random-tester.factor b/extra/random-tester/random-tester.factor new file mode 100644 index 0000000000..f8aa0f29b5 --- /dev/null +++ b/extra/random-tester/random-tester.factor @@ -0,0 +1,45 @@ +USING: compiler continuations io kernel math namespaces +prettyprint quotations random sequences vectors ; +USING: random-tester.databank random-tester.safe-words ; +IN: random-tester + +SYMBOL: errored +SYMBOL: before +SYMBOL: after +SYMBOL: quot +TUPLE: random-tester-error ; + +: setup-test ( #data #code -- data... quot ) + #! Variable stack effect + >r [ databank random ] times r> + [ drop \ safe-words get random ] map >quotation ; + +: test-compiler ! ( data... quot -- ... ) + errored off + dup quot set + datastack clone >vector dup pop* before set + [ call ] catch drop + datastack clone after set + clear + before get [ ] each + quot get [ compile-1 ] [ errored on ] recover ; + +: do-test ! ( data... quot -- ) + .s flush test-compiler + errored get [ + datastack after get 2dup = [ + 2drop + ] [ + [ . ] each + "--" print + [ . ] each + quot get . + random-tester-error construct-empty throw + ] if + ] unless clear ; + +: random-test1 ( #data #code -- ) + setup-test do-test ; + +: random-test2 ( -- ) + 3 2 setup-test do-test ; diff --git a/unmaintained/random-tester/random.factor b/extra/random-tester/random/random.factor old mode 100644 new mode 100755 similarity index 60% rename from unmaintained/random-tester/random.factor rename to extra/random-tester/random/random.factor index da9a5c26d8..163de69a59 --- a/unmaintained/random-tester/random.factor +++ b/extra/random-tester/random/random.factor @@ -1,22 +1,12 @@ -USING: kernel math sequences namespaces errors hashtables words -arrays parser compiler syntax io tools prettyprint optimizer -inference ; +USING: kernel math sequences namespaces hashtables words +arrays parser compiler syntax io prettyprint optimizer +random math.constants math.functions layouts random-tester.utils ; IN: random-tester ! Tweak me : max-length 15 ; inline : max-value 1000000000 ; inline -: 10% ( -- bool ) 10 random 8 > ; -: 20% ( -- bool ) 10 random 7 > ; -: 30% ( -- bool ) 10 random 6 > ; -: 40% ( -- bool ) 10 random 5 > ; -: 50% ( -- bool ) 10 random 4 > ; -: 60% ( -- bool ) 10 random 3 > ; -: 70% ( -- bool ) 10 random 2 > ; -: 80% ( -- bool ) 10 random 1 > ; -: 90% ( -- bool ) 10 random 0 > ; - ! varying bit-length random number : random-bits ( n -- int ) random 2 swap ^ random ; @@ -28,35 +18,32 @@ IN: random-tester : random-string [ max-length random [ max-value random , ] times ] "" make ; -SYMBOL: special-integers +: special-integers ( -- seq ) \ special-integers get ; [ { -1 0 1 } % most-negative-fixnum , most-positive-fixnum , first-bignum , ] { } make \ special-integers set-global -: special-integers ( -- seq ) \ special-integers get ; -SYMBOL: special-floats +: special-floats ( -- seq ) \ special-floats get ; [ { 0.0 -0.0 } % e , pi , 1./0. , -1./0. , 0./0. , epsilon , epsilon neg , ] { } make \ special-floats set-global -: special-floats ( -- seq ) \ special-floats get ; -SYMBOL: special-complexes +: special-complexes ( -- seq ) \ special-complexes get ; [ - { -1 0 1 i -i } % + { -1 0 1 C{ 0 1 } C{ 0 -1 } } % e , e neg , pi , pi neg , 0 pi rect> , 0 pi neg rect> , pi neg 0 rect> , pi pi rect> , pi pi neg rect> , pi neg pi rect> , pi neg pi neg rect> , e neg e neg rect> , e e rect> , ] { } make \ special-complexes set-global -: special-complexes ( -- seq ) \ special-complexes get ; : random-fixnum ( -- fixnum ) - most-positive-fixnum random 1+ coin-flip [ neg 1- ] when >fixnum ; + most-positive-fixnum random 1+ 50% [ neg 1- ] when >fixnum ; : random-bignum ( -- bignum ) - 400 random-bits first-bignum + coin-flip [ neg ] when ; + 400 random-bits first-bignum + 50% [ neg ] when ; : random-integer ( -- n ) - coin-flip [ + 50% [ random-fixnum ] [ - coin-flip [ random-bignum ] [ special-integers random ] if + 50% [ random-bignum ] [ special-integers get random ] if ] if ; : random-positive-integer ( -- int ) @@ -67,12 +54,12 @@ SYMBOL: special-complexes ] if ; : random-ratio ( -- ratio ) - 1000000000 dup [ random ] 2apply 1+ / coin-flip [ neg ] when dup [ drop random-ratio ] unless 10% [ drop 0 ] when ; + 1000000000 dup [ random ] 2apply 1+ / 50% [ neg ] when dup [ drop random-ratio ] unless 10% [ drop 0 ] when ; : random-float ( -- float ) - coin-flip [ random-ratio ] [ special-floats random ] if - coin-flip - [ .0000000000000000001 /f ] [ coin-flip [ .00000000000000001 * ] when ] if + 50% [ random-ratio ] [ special-floats get random ] if + 50% + [ .0000000000000000001 /f ] [ 50% [ .00000000000000001 * ] when ] if >float ; : random-number ( -- number ) diff --git a/extra/random-tester/safe-words/safe-words.factor b/extra/random-tester/safe-words/safe-words.factor new file mode 100644 index 0000000000..9bc87a9c5a --- /dev/null +++ b/extra/random-tester/safe-words/safe-words.factor @@ -0,0 +1,117 @@ +USING: kernel namespaces sequences sorting vocabs ; +USING: arrays assocs generic hashtables math math.intervals math.parser math.functions refs shuffle vectors words ; +IN: random-tester.safe-words + +: ?-words + { + delegate + + /f + + bits>float bits>double + float>bits double>bits + + >bignum >boolean >fixnum >float + + array? integer? complex? value-ref? ref? key-ref? + interval? number? + wrapper? tuple? + [-1,1]? between? bignum? both? either? eq? equal? even? fixnum? float? fp-nan? hashtable? interval-contains? interval-subset? interval? key-ref? key? number? odd? pair? power-of-2? ratio? rational? real? subassoc? valid-digits? zero? assoc? curry? vector? callstack? ! clear 3.14 [ assoc? ] compile-1 + 2^ not + ! arrays + resize-array + ! assocs + (assoc-stack) + new-assoc + assoc-like + + all-integers? (all-integers?) ! hangs? + assoc-push-if + + (clone) assoc-clone-like ! SYMBOL: foo foo dup (clone) = + } ; + +: bignum-words + { + next-power-of-2 (next-power-of-2) + times + hashcode hashcode* + } ; + +: initialization-words + { + init-namespaces + } ; + +: stack-words + { + dup + drop 2drop 3drop + roll -roll 2swap + + >r r> + } ; + +: method-words + { + method-def + forget-word + } ; + +: stateful-words + { + counter + gensym + } ; + +: foo-words + { + set-retainstack + retainstack callstack + datastack + callstack>array + } ; + +: exit-words + { + call-clear die + } ; + +: bad-words ( -- array ) + [ + ?-words % + bignum-words % + initialization-words % + stack-words % + method-words % + stateful-words % + exit-words % + foo-words % + ] { } make ; + +: safe-words ( -- array ) + bad-words { + "alists" "arrays" "assocs" ! "bit-arrays" "byte-arrays" + ! "classes" "combinators" "compiler" "continuations" + ! "core-foundation" "definitions" "documents" + ! "float-arrays" "generic" "graphs" "growable" + "hashtables" ! io.* + "kernel" "math" + "math.bitfields" "math.complex" "math.constants" "math.floats" + "math.functions" "math.integers" "math.intervals" "math.libm" + "math.parser" "math.ratios" "math.vectors" + ! "namespaces" "quotations" "sbufs" + ! "queues" "strings" "sequences" + "vectors" + ! "words" + } [ words ] map concat seq-diff natural-sort ; + +safe-words \ safe-words set-global + +! foo dup (clone) = . +! foo dup clone = . +! f [ byte-array>bignum assoc-clone-like ] compile-1 +! 2 3.14 [ construct-empty number= ] compile-1 +! 3.14 [ assoc? ] compile-1 +! -3 [ ] 2 [ byte-array>bignum denominator ] compile-1 + diff --git a/extra/random-tester/utils/utils.factor b/extra/random-tester/utils/utils.factor new file mode 100644 index 0000000000..a025bbf45f --- /dev/null +++ b/extra/random-tester/utils/utils.factor @@ -0,0 +1,34 @@ +USING: arrays assocs combinators.lib continuations kernel +math math.functions memoize namespaces quotations random sequences +sequences.private shuffle ; +IN: random-tester.utils + +: %chance ( n -- ? ) + 100 random > ; + +: 10% ( -- ? ) 10 %chance ; +: 20% ( -- ? ) 20 %chance ; +: 30% ( -- ? ) 30 %chance ; +: 40% ( -- ? ) 40 %chance ; +: 50% ( -- ? ) 50 %chance ; +: 60% ( -- ? ) 60 %chance ; +: 70% ( -- ? ) 70 %chance ; +: 80% ( -- ? ) 80 %chance ; +: 90% ( -- ? ) 90 %chance ; + +: call-if ( quot ? -- ) swap when ; inline + +: with-10% ( quot -- ) 10% call-if ; inline +: with-20% ( quot -- ) 20% call-if ; inline +: with-30% ( quot -- ) 30% call-if ; inline +: with-40% ( quot -- ) 40% call-if ; inline +: with-50% ( quot -- ) 50% call-if ; inline +: with-60% ( quot -- ) 60% call-if ; inline +: with-70% ( quot -- ) 70% call-if ; inline +: with-80% ( quot -- ) 80% call-if ; inline +: with-90% ( quot -- ) 90% call-if ; inline + +: random-key keys random ; +: random-value [ random-key ] keep at ; + +: do-one ( seq -- ) random call ; inline diff --git a/extra/raptor/config.factor b/extra/raptor/config.factor index d06d8e3db0..29e26d4381 100644 --- a/extra/raptor/config.factor +++ b/extra/raptor/config.factor @@ -1,5 +1,7 @@ -USING: namespaces unix.linux.if unix.linux.ifreq unix.linux.route ; +USING: namespaces threads + unix.process unix.linux.if unix.linux.ifreq unix.linux.route + raptor.cron ; IN: raptor @@ -24,21 +26,40 @@ IN: raptor configure-route ] networking-hook set-global +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! Filesystems +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +"/dev/hda1" root-device set-global + +{ "/dev/hda5" } swap-devices set-global + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! boot-hook ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ + start-wait-loop ! rcS.d "mountvirtfs" start-service - "hostname.sh" start-service + + ! "hostname.sh" start-service + "narodnik" set-hostname + "keymap.sh" start-service "linux-restricted-modules-common" start-service "udev" start-service "mountdevsubfs" start-service "module-init-tools" start-service "procps.sh" start-service - "checkroot.sh" start-service + + ! "checkroot.sh" start-service + + activate-swap + mount-root + "mtab" start-service "checkfs.sh" start-service "mountall.sh" start-service @@ -76,11 +97,17 @@ IN: raptor "rmnologin" start-service schedule-cron-jobs - start-listeners - start-gettys - + + [ [ "/dev/tty2" tty-listener ] forever ] in-thread + [ [ "/dev/tty3" tty-listener ] forever ] in-thread + [ [ "/dev/tty4" tty-listener ] forever ] in-thread + [ [ "/dev/tty5" getty ] forever ] in-thread + [ [ "/dev/tty6" getty ] forever ] in-thread + ] boot-hook set-global +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! reboot-hook ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ @@ -108,6 +135,8 @@ IN: raptor "reboot" stop-service ] reboot-hook set-global +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! shutdown-hook ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ diff --git a/extra/raptor/cron/cron.factor b/extra/raptor/cron/cron.factor index f004ba30d5..8158a03286 100644 --- a/extra/raptor/cron/cron.factor +++ b/extra/raptor/cron/cron.factor @@ -1,5 +1,6 @@ -USING: kernel threads sequences calendar combinators.cleave combinators.lib ; +USING: kernel namespaces threads sequences calendar + combinators.cleave combinators.lib ; IN: raptor.cron @@ -46,3 +47,16 @@ C: when : schedule ( when quot -- ) [ recurring-job ] curry curry in-thread ; +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +SYMBOL: cron-jobs-hourly +SYMBOL: cron-jobs-daily +SYMBOL: cron-jobs-weekly +SYMBOL: cron-jobs-monthly + +: schedule-cron-jobs ( -- ) + { 17 } f f f f [ cron-jobs-hourly get call ] schedule + { 25 } { 6 } f f f [ cron-jobs-daily get call ] schedule + { 47 } { 6 } f f { 7 } [ cron-jobs-weekly get call ] schedule + { 52 } { 6 } { 1 } f f [ cron-jobs-monthly get call ] schedule ; + diff --git a/extra/raptor/cronjobs.factor b/extra/raptor/cronjobs.factor index 394c213162..91263a31d9 100644 --- a/extra/raptor/cronjobs.factor +++ b/extra/raptor/cronjobs.factor @@ -1,47 +1,38 @@ -USING: kernel threads arrays sequences combinators.cleave raptor raptor.cron ; +USING: kernel namespaces threads arrays sequences combinators.cleave + raptor raptor.cron ; IN: raptor ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: fork-exec-args-wait ( args -- ) [ first ] [ ] bi fork-exec-wait ; +: run-script ( path -- ) 1array [ fork-exec-args-wait ] curry in-thread ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: cron-hourly ( -- ) ; - -: cron-daily ( -- ) - { "/etc/cron.daily/apt" - "/etc/cron.daily/aptitude" - "/etc/cron.daily/bsdmainutils" - "/etc/cron.daily/find.notslocate" - "/etc/cron.daily/logrotate" - "/etc/cron.daily/man-db" - "/etc/cron.daily/ntp-server" - "/etc/cron.daily/slocate" - "/etc/cron.daily/standard" - "/etc/cron.daily/sysklogd" - "/etc/cron.daily/tetex-bin" } - [ 1array [ fork-exec-args-wait ] in-thread drop ] each ; +[ + "/etc/cron.daily/apt" run-script + "/etc/cron.daily/aptitude" run-script + "/etc/cron.daily/bsdmainutils" run-script + "/etc/cron.daily/find.notslocate" run-script + "/etc/cron.daily/logrotate" run-script + "/etc/cron.daily/man-db" run-script + "/etc/cron.daily/ntp-server" run-script + "/etc/cron.daily/slocate" run-script + "/etc/cron.daily/standard" run-script + "/etc/cron.daily/sysklogd" run-script + "/etc/cron.daily/tetex-bin" run-script +] cron-jobs-daily set-global -: cron-weekly ( -- ) - { "/etc/cron.weekly/cvs" - "/etc/cron.weekly/man-db" - "/etc/cron.weekly/ntp-server" - "/etc/cron.weekly/popularity-contest" - "/etc/cron.weekly/sysklogd" } - [ 1array [ fork-exec-args-wait ] in-thread drop ] each ; +[ + "/etc/cron.weekly/cvs" run-script + "/etc/cron.weekly/man-db" run-script + "/etc/cron.weekly/ntp-server" run-script + "/etc/cron.weekly/popularity-contest" run-script + "/etc/cron.weekly/sysklogd" run-script +] cron-jobs-weekly set-global -: cron-monthly ( -- ) - { "/etc/cron.monthly/scrollkeeper" - "/etc/cron.monthly/standard" } - [ 1array [ fork-exec-args-wait ] in-thread drop ] each ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: schedule-cron-jobs ( -- ) - { 17 } f f f f [ cron-hourly ] schedule - { 25 } { 6 } f f f [ cron-daily ] schedule - { 47 } { 6 } f f { 7 } [ cron-weekly ] schedule - { 52 } { 6 } { 1 } f f [ cron-monthly ] schedule ; \ No newline at end of file +[ + "/etc/cron.monthly/scrollkeeper" run-script + "/etc/cron.monthly/standard" run-script +] cron-jobs-monthly set-global \ No newline at end of file diff --git a/extra/raptor/raptor.factor b/extra/raptor/raptor.factor index b0b9c05895..ef5359c313 100644 --- a/extra/raptor/raptor.factor +++ b/extra/raptor/raptor.factor @@ -1,5 +1,6 @@ -USING: kernel parser namespaces threads unix.process combinators.cleave ; +USING: kernel parser namespaces threads sequences unix unix.process + combinators.cleave bake ; IN: raptor @@ -10,29 +11,31 @@ SYMBOL: reboot-hook SYMBOL: shutdown-hook SYMBOL: networking-hook +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + : reload-raptor-config ( -- ) "/etc/raptor/config.factor" run-file "/etc/raptor/cronjobs.factor" run-file ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -USING: sequences unix ; +: fork-exec-wait ( pathname args -- ) + fork dup 0 = [ drop exec drop ] [ 2nip wait-for-pid drop ] if ; + +: fork-exec-args-wait ( args -- ) [ first ] [ ] bi fork-exec-wait ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +: forever ( quot -- ) [ call ] [ forever ] bi ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : start-service ( name -- ) "/etc/init.d/" swap " start" 3append system drop ; : stop-service ( name -- ) "/etc/init.d/" swap " stop" 3append system drop ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: fork-exec-wait ( pathname args -- ) - fork dup 0 = [ drop exec drop ] [ 2nip wait-for-pid ] if ; - -! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -: respawn ( pathname args -- ) [ fork-exec-wait ] [ respawn ] 2bi ; - -: start-gettys ( -- ) - [ "/sbin/getty" { "getty" "38400" "tty5" } respawn ] in-thread - [ "/sbin/getty" { "getty" "38400" "tty6" } respawn ] in-thread ; +: getty ( tty -- ) `{ "/sbin/getty" "38400" , } fork-exec-args-wait ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -40,23 +43,31 @@ USING: io io.files io.streams.lines io.streams.plain io.streams.duplex listener ; : tty-listener ( tty -- ) - [ ] - [ ] - bi [ listener ] with-stream ; + [ ] [ ] bi + [ listener ] with-stream ; -: forever ( quot -- ) [ call ] [ forever ] bi ; +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -: start-listeners ( -- ) - [ [ "/dev/tty2" tty-listener ] forever ] in-thread - [ [ "/dev/tty3" tty-listener ] forever ] in-thread - [ [ "/dev/tty4" tty-listener ] forever ] in-thread ; +USING: unix.linux.swap unix.linux.fs ; + +SYMBOL: root-device +SYMBOL: swap-devices + +: activate-swap ( -- ) swap-devices get [ 0 swapon drop ] each ; + +: mount-root ( -- ) root-device get "/" "ext3" MS_REMOUNT f mount drop ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : start-networking ( -- ) networking-hook get call ; +: set-hostname ( name -- ) `{ "/bin/hostname" , } fork-exec-args-wait ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + : boot ( -- ) boot-hook get call ; : reboot ( -- ) reboot-hook get call ; : shutdown ( -- ) shutdown-hook get call ; MAIN: boot + diff --git a/extra/raptor/readme-0.1.1 b/extra/raptor/readme-0.1.1 index 303fb416c4..bb5d4c0ff8 100644 --- a/extra/raptor/readme-0.1.1 +++ b/extra/raptor/readme-0.1.1 @@ -8,9 +8,22 @@ Raptor Linux is a mod of Ubuntu 6.06 (Dapper Drake) This is unlikely to work on another version of Ubuntu, much less another Linux distribution. +*** Features *** + + * /sbin/init is replaced with Factor + * Virtual terminals managed by Factor + * Listeners run on virtual terminals + * Native support for static ip networking + * Crontab replacement + *** Install *** + # mkdir -v /etc/raptor + + # cp -v /scratch/factor/extra/raptor/{config,cronjobs}.factor /etc/raptor + ( scratchpad ) USE: raptor + ( scratchpad ) reload-raptor-config ( scratchpad ) save # mv -v /sbin/{init,init.orig} @@ -19,10 +32,6 @@ another Linux distribution. # cp -v /scratch/factor/factor.image /sbin/init.image - # mkdir -v /etc/raptor - - # cp -v /scratch/factor/extra/raptor/config.factor /etc/raptor/config.factor - *** Static IP networking *** If you use a static IP in your network then Factor can take care of diff --git a/extra/regexp/regexp-tests.factor b/extra/regexp/regexp-tests.factor new file mode 100755 index 0000000000..823e7c7f36 --- /dev/null +++ b/extra/regexp/regexp-tests.factor @@ -0,0 +1,224 @@ +USING: regexp tools.test kernel ; +IN: regexp-tests + +[ f ] [ "b" "a*" f matches? ] unit-test +[ t ] [ "" "a*" f matches? ] unit-test +[ t ] [ "a" "a*" f matches? ] unit-test +[ t ] [ "aaaaaaa" "a*" f matches? ] unit-test +[ f ] [ "ab" "a*" f matches? ] unit-test + +[ t ] [ "abc" "abc" f matches? ] unit-test +[ t ] [ "a" "a|b|c" f matches? ] unit-test +[ t ] [ "b" "a|b|c" f matches? ] unit-test +[ t ] [ "c" "a|b|c" f matches? ] unit-test +[ f ] [ "c" "d|e|f" f matches? ] unit-test + +[ f ] [ "aa" "a|b|c" f matches? ] unit-test +[ f ] [ "bb" "a|b|c" f matches? ] unit-test +[ f ] [ "cc" "a|b|c" f matches? ] unit-test +[ f ] [ "cc" "d|e|f" f matches? ] unit-test + +[ f ] [ "" "a+" f matches? ] unit-test +[ t ] [ "a" "a+" f matches? ] unit-test +[ t ] [ "aa" "a+" f matches? ] unit-test + +[ t ] [ "" "a?" f matches? ] unit-test +[ t ] [ "a" "a?" f matches? ] unit-test +[ f ] [ "aa" "a?" f matches? ] unit-test + +[ f ] [ "" "." f matches? ] unit-test +[ t ] [ "a" "." f matches? ] unit-test +[ t ] [ "." "." f matches? ] unit-test +! [ f ] [ "\n" "." f matches? ] unit-test + +[ f ] [ "" ".+" f matches? ] unit-test +[ t ] [ "a" ".+" f matches? ] unit-test +[ t ] [ "ab" ".+" f matches? ] unit-test + +[ t ] [ "" "a|b*|c+|d?" f matches? ] unit-test +[ t ] [ "a" "a|b*|c+|d?" f matches? ] unit-test +[ t ] [ "c" "a|b*|c+|d?" f matches? ] unit-test +[ t ] [ "cc" "a|b*|c+|d?" f matches? ] unit-test +[ f ] [ "ccd" "a|b*|c+|d?" f matches? ] unit-test +[ t ] [ "d" "a|b*|c+|d?" f matches? ] unit-test + +[ t ] [ "foo" "foo|bar" f matches? ] unit-test +[ t ] [ "bar" "foo|bar" f matches? ] unit-test +[ f ] [ "foobar" "foo|bar" f matches? ] unit-test + +[ f ] [ "" "(a)" f matches? ] unit-test +[ t ] [ "a" "(a)" f matches? ] unit-test +[ f ] [ "aa" "(a)" f matches? ] unit-test +[ t ] [ "aa" "(a*)" f matches? ] unit-test + +[ f ] [ "aababaaabbac" "(a|b)+" f matches? ] unit-test +[ t ] [ "ababaaabba" "(a|b)+" f matches? ] unit-test + +[ f ] [ "" "a{1}" f matches? ] unit-test +[ t ] [ "a" "a{1}" f matches? ] unit-test +[ f ] [ "aa" "a{1}" f matches? ] unit-test + +[ f ] [ "a" "a{2,}" f matches? ] unit-test +[ t ] [ "aaa" "a{2,}" f matches? ] unit-test +[ t ] [ "aaaa" "a{2,}" f matches? ] unit-test +[ t ] [ "aaaaa" "a{2,}" f matches? ] unit-test + +[ t ] [ "" "a{,2}" f matches? ] unit-test +[ t ] [ "a" "a{,2}" f matches? ] unit-test +[ t ] [ "aa" "a{,2}" f matches? ] unit-test +[ f ] [ "aaa" "a{,2}" f matches? ] unit-test +[ f ] [ "aaaa" "a{,2}" f matches? ] unit-test +[ f ] [ "aaaaa" "a{,2}" f matches? ] unit-test + +[ f ] [ "" "a{1,3}" f matches? ] unit-test +[ t ] [ "a" "a{1,3}" f matches? ] unit-test +[ t ] [ "aa" "a{1,3}" f matches? ] unit-test +[ t ] [ "aaa" "a{1,3}" f matches? ] unit-test +[ f ] [ "aaaa" "a{1,3}" f matches? ] unit-test + +[ f ] [ "" "[a]" f matches? ] unit-test +[ t ] [ "a" "[a]" f matches? ] unit-test +[ t ] [ "a" "[abc]" f matches? ] unit-test +[ f ] [ "b" "[a]" f matches? ] unit-test +[ f ] [ "d" "[abc]" f matches? ] unit-test +[ t ] [ "ab" "[abc]{1,2}" f matches? ] unit-test +[ f ] [ "abc" "[abc]{1,2}" f matches? ] unit-test + +[ f ] [ "" "[^a]" f matches? ] unit-test +[ f ] [ "a" "[^a]" f matches? ] unit-test +[ f ] [ "a" "[^abc]" f matches? ] unit-test +[ t ] [ "b" "[^a]" f matches? ] unit-test +[ t ] [ "d" "[^abc]" f matches? ] unit-test +[ f ] [ "ab" "[^abc]{1,2}" f matches? ] unit-test +[ f ] [ "abc" "[^abc]{1,2}" f matches? ] unit-test + +[ t ] [ "]" "[]]" f matches? ] unit-test +[ f ] [ "]" "[^]]" f matches? ] unit-test + +! [ "^" "[^]" f matches? ] unit-test-fails +[ t ] [ "^" "[]^]" f matches? ] unit-test +[ t ] [ "]" "[]^]" f matches? ] unit-test + +[ t ] [ "[" "[[]" f matches? ] unit-test +[ f ] [ "^" "[^^]" f matches? ] unit-test +[ t ] [ "a" "[^^]" f matches? ] unit-test + +[ t ] [ "-" "[-]" f matches? ] unit-test +[ f ] [ "a" "[-]" f matches? ] unit-test +[ f ] [ "-" "[^-]" f matches? ] unit-test +[ t ] [ "a" "[^-]" f matches? ] unit-test + +[ t ] [ "-" "[-a]" f matches? ] unit-test +[ t ] [ "a" "[-a]" f matches? ] unit-test +[ t ] [ "-" "[a-]" f matches? ] unit-test +[ t ] [ "a" "[a-]" f matches? ] unit-test +[ f ] [ "b" "[a-]" f matches? ] unit-test +[ f ] [ "-" "[^-]" f matches? ] unit-test +[ t ] [ "a" "[^-]" f matches? ] unit-test + +[ f ] [ "-" "[a-c]" f matches? ] unit-test +[ t ] [ "-" "[^a-c]" f matches? ] unit-test +[ t ] [ "b" "[a-c]" f matches? ] unit-test +[ f ] [ "b" "[^a-c]" f matches? ] unit-test + +[ t ] [ "-" "[a-c-]" f matches? ] unit-test +[ f ] [ "-" "[^a-c-]" f matches? ] unit-test + +[ t ] [ "\\" "[\\\\]" f matches? ] unit-test +[ f ] [ "a" "[\\\\]" f matches? ] unit-test +[ f ] [ "\\" "[^\\\\]" f matches? ] unit-test +[ t ] [ "a" "[^\\\\]" f matches? ] unit-test + +[ t ] [ "0" "[\\d]" f matches? ] unit-test +[ f ] [ "a" "[\\d]" f matches? ] unit-test +[ f ] [ "0" "[^\\d]" f matches? ] unit-test +[ t ] [ "a" "[^\\d]" f matches? ] unit-test + +[ t ] [ "a" "[a-z]{1,}|[A-Z]{2,4}|b*|c|(f|g)*" f matches? ] unit-test +[ t ] [ "a" "[a-z]{1,2}|[A-Z]{3,3}|b*|c|(f|g)*" f matches? ] unit-test +[ t ] [ "a" "[a-z]{1,2}|[A-Z]{3,3}" f matches? ] unit-test + +[ t ] [ "1000" "\\d{4,6}" f matches? ] unit-test +[ t ] [ "1000" "[0-9]{4,6}" f matches? ] unit-test + +[ t ] [ "abc" "\\p{Lower}{3}" f matches? ] unit-test +[ f ] [ "ABC" "\\p{Lower}{3}" f matches? ] unit-test +[ t ] [ "ABC" "\\p{Upper}{3}" f matches? ] unit-test +[ f ] [ "abc" "\\p{Upper}{3}" f matches? ] unit-test + +[ f ] [ "abc" "[\\p{Upper}]{3}" f matches? ] unit-test +[ t ] [ "ABC" "[\\p{Upper}]{3}" f matches? ] unit-test + +[ t ] [ "" "\\Q\\E" f matches? ] unit-test +[ f ] [ "a" "\\Q\\E" f matches? ] unit-test +[ t ] [ "|*+" "\\Q|*+\\E" f matches? ] unit-test +[ f ] [ "abc" "\\Q|*+\\E" f matches? ] unit-test + +[ t ] [ "S" "\\0123" f matches? ] unit-test +[ t ] [ "SXY" "\\0123XY" f matches? ] unit-test +[ t ] [ "x" "\\x78" f matches? ] unit-test +[ f ] [ "y" "\\x78" f matches? ] unit-test +[ t ] [ "x" "\\u0078" f matches? ] unit-test +[ f ] [ "y" "\\u0078" f matches? ] unit-test + +[ t ] [ "ab" "a+b" f matches? ] unit-test +[ f ] [ "b" "a+b" f matches? ] unit-test +[ t ] [ "aab" "a+b" f matches? ] unit-test +[ f ] [ "abb" "a+b" f matches? ] unit-test + +[ t ] [ "abbbb" "ab*" f matches? ] unit-test +[ t ] [ "a" "ab*" f matches? ] unit-test +[ f ] [ "abab" "ab*" f matches? ] unit-test + +[ f ] [ "x" "\\." f matches? ] unit-test +[ t ] [ "." "\\." f matches? ] unit-test + +[ t ] [ "aaaab" "a+ab" f matches? ] unit-test +[ f ] [ "aaaxb" "a+ab" f matches? ] unit-test +[ t ] [ "aaacb" "a+cb" f matches? ] unit-test +[ f ] [ "aaaab" "a++ab" f matches? ] unit-test +[ t ] [ "aaacb" "a++cb" f matches? ] unit-test + +[ 3 ] [ "aaacb" "a*" f match-head ] unit-test +[ 1 ] [ "aaacb" "a+?" f match-head ] unit-test +[ 2 ] [ "aaacb" "aa?" f match-head ] unit-test +[ 1 ] [ "aaacb" "aa??" f match-head ] unit-test +[ 3 ] [ "aacb" "aa?c" f match-head ] unit-test +[ 3 ] [ "aacb" "aa??c" f match-head ] unit-test + +[ t ] [ "aaa" "AAA" t matches? ] unit-test +[ f ] [ "aax" "AAA" t matches? ] unit-test +[ t ] [ "aaa" "A*" t matches? ] unit-test +[ f ] [ "aaba" "A*" t matches? ] unit-test +[ t ] [ "b" "[AB]" t matches? ] unit-test +[ f ] [ "c" "[AB]" t matches? ] unit-test +[ t ] [ "c" "[A-Z]" t matches? ] unit-test +[ f ] [ "3" "[A-Z]" t matches? ] unit-test + +[ ] [ + "(0[lL]?|[1-9]\\d{0,9}(\\d{0,9}[lL])?|0[xX]\\p{XDigit}{1,8}(\\p{XDigit}{0,8}[lL])?|0[0-7]{1,11}([0-7]{0,11}[lL])?|([0-9]+\\.[0-9]*|\\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?|[0-9]+([eE][+-]?[0-9]+[fFdD]?|([eE][+-]?[0-9]+)?[fFdD]))" + f drop +] unit-test + +[ t ] [ "fxxbar" "(?!foo).{3}bar" f matches? ] unit-test +[ f ] [ "foobar" "(?!foo).{3}bar" f matches? ] unit-test + +[ 3 ] [ "foobar" "foo(?=bar)" f match-head ] unit-test +[ f ] [ "foobxr" "foo(?=bar)" f match-head ] unit-test + +[ f ] [ "foobxr" "foo\\z" f match-head ] unit-test +[ 3 ] [ "foo" "foo\\z" f match-head ] unit-test + +[ 3 ] [ "foo bar" "foo\\b" f match-head ] unit-test +[ f ] [ "fooxbar" "foo\\b" f matches? ] unit-test +[ t ] [ "foo" "foo\\b" f matches? ] unit-test +[ t ] [ "foo bar" "foo\\b bar" f matches? ] unit-test +[ f ] [ "fooxbar" "foo\\bxbar" f matches? ] unit-test +[ f ] [ "foo" "foo\\bbar" f matches? ] unit-test + +[ f ] [ "foo bar" "foo\\B" f matches? ] unit-test +[ 3 ] [ "fooxbar" "foo\\B" f match-head ] unit-test +[ t ] [ "foo" "foo\\B" f matches? ] unit-test +[ f ] [ "foo bar" "foo\\B bar" f matches? ] unit-test +[ t ] [ "fooxbar" "foo\\Bxbar" f matches? ] unit-test +[ f ] [ "foo" "foo\\Bbar" f matches? ] unit-test diff --git a/extra/regexp/regexp.factor b/extra/regexp/regexp.factor new file mode 100755 index 0000000000..c4b60e76e4 --- /dev/null +++ b/extra/regexp/regexp.factor @@ -0,0 +1,330 @@ +USING: arrays combinators kernel lazy-lists math math.parser +namespaces parser parser-combinators parser-combinators.simple +promises quotations sequences combinators.lib strings +assocs prettyprint.backend memoize ; +USE: io +IN: regexp + +upper [ swap ch>upper = ] ] [ [ = ] ] if + curry ; + +: char-between?-quot ( ch1 ch2 -- quot ) + ignore-case? get + [ [ ch>upper ] 2apply [ >r >r ch>upper r> r> between? ] ] + [ [ between? ] ] + if 2curry ; + +: or-predicates ( quots -- quot ) + [ \ dup add* ] map [ [ t ] ] f short-circuit \ nip add ; + +: <@literal [ nip ] curry <@ ; + +: <@delay [ curry ] curry <@ ; + +PRIVATE> + +: ascii? ( n -- ? ) + 0 HEX: 7f between? ; + +: octal-digit? ( n -- ? ) + CHAR: 0 CHAR: 7 between? ; + +: decimal-digit? ( n -- ? ) + CHAR: 0 CHAR: 9 between? ; + +: hex-digit? ( n -- ? ) + dup decimal-digit? + over CHAR: a CHAR: f between? or + swap CHAR: A CHAR: F between? or ; + +: control-char? ( n -- ? ) + dup 0 HEX: 1f between? + swap HEX: 7f = or ; + +: punct? ( n -- ? ) + "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" member? ; + +: c-identifier-char? ( ch -- ? ) + dup alpha? swap CHAR: _ = or ; + +: java-blank? ( n -- ? ) + { + CHAR: \s + CHAR: \t CHAR: \n CHAR: \r + HEX: c HEX: 7 HEX: 1b + } member? ; + +: java-printable? ( n -- ? ) + dup alpha? swap punct? or ; + +: 'ordinary-char' ( -- parser ) + [ "\\^*+?|(){}[$" member? not ] satisfy + [ char=-quot ] <@ ; + +: 'octal-digit' ( -- parser ) [ octal-digit? ] satisfy ; + +: 'octal' ( -- parser ) + "0" token 'octal-digit' 1 3 from-m-to-n &> + [ oct> ] <@ ; + +: 'hex-digit' ( -- parser ) [ hex-digit? ] satisfy ; + +: 'hex' ( -- parser ) + "x" token 'hex-digit' 2 exactly-n &> + "u" token 'hex-digit' 4 exactly-n &> <|> + [ hex> ] <@ ; + +: satisfy-tokens ( assoc -- parser ) + [ >r token r> <@literal ] { } assoc>map ; + +: 'simple-escape-char' ( -- parser ) + { + { "\\" CHAR: \\ } + { "t" CHAR: \t } + { "n" CHAR: \n } + { "r" CHAR: \r } + { "f" HEX: c } + { "a" HEX: 7 } + { "e" HEX: 1b } + } [ char=-quot ] assoc-map satisfy-tokens ; + +: 'predefined-char-class' ( -- parser ) + { + { "d" [ digit? ] } + { "D" [ digit? not ] } + { "s" [ java-blank? ] } + { "S" [ java-blank? not ] } + { "w" [ c-identifier-char? ] } + { "W" [ c-identifier-char? not ] } + } satisfy-tokens ; + +: 'posix-character-class' ( -- parser ) + { + { "Lower" [ letter? ] } + { "Upper" [ LETTER? ] } + { "ASCII" [ ascii? ] } + { "Alpha" [ Letter? ] } + { "Digit" [ digit? ] } + { "Alnum" [ alpha? ] } + { "Punct" [ punct? ] } + { "Graph" [ java-printable? ] } + { "Print" [ java-printable? ] } + { "Blank" [ " \t" member? ] } + { "Cntrl" [ control-char? ] } + { "XDigit" [ hex-digit? ] } + { "Space" [ java-blank? ] } + } satisfy-tokens "p{" "}" surrounded-by ; + +: 'simple-escape' ( -- parser ) + 'octal' + 'hex' <|> + "c" token [ LETTER? ] satisfy &> <|> + any-char-parser <|> + [ char=-quot ] <@ ; + +: 'escape' ( -- parser ) + "\\" token + 'simple-escape-char' + 'predefined-char-class' <|> + 'posix-character-class' <|> + 'simple-escape' <|> &> ; + +: 'any-char' + "." token [ drop t ] <@literal ; + +: 'char' + 'any-char' 'escape' 'ordinary-char' <|> <|> [ satisfy ] <@ ; + +DEFER: 'regexp' + +TUPLE: group-result str ; + +C: group-result + +: 'non-capturing-group' ( -- parser ) + "?:" token 'regexp' &> ; + +: 'positive-lookahead-group' ( -- parser ) + "?=" token 'regexp' &> [ ensure ] <@ ; + +: 'negative-lookahead-group' ( -- parser ) + "?!" token 'regexp' &> [ ensure-not ] <@ ; + +: 'simple-group' ( -- parser ) + 'regexp' [ [ ] <@ ] <@ ; + +: 'group' ( -- parser ) + 'non-capturing-group' + 'positive-lookahead-group' + 'negative-lookahead-group' + 'simple-group' <|> <|> <|> + "(" ")" surrounded-by ; + +: 'range' ( -- parser ) + any-char-parser "-" token <& any-char-parser <&> + [ first2 char-between?-quot ] <@ ; + +: 'character-class-term' ( -- parser ) + 'range' + 'escape' <|> + [ "\\]" member? not ] satisfy [ char=-quot ] <@ <|> ; + +: 'positive-character-class' ( -- parser ) + "]" token [ CHAR: ] = ] <@literal 'character-class-term' <*> <&:> + 'character-class-term' <+> <|> + [ or-predicates ] <@ ; + +: 'negative-character-class' ( -- parser ) + "^" token 'positive-character-class' &> + [ [ not ] append ] <@ ; + +: 'character-class' ( -- parser ) + 'negative-character-class' 'positive-character-class' <|> + "[" "]" surrounded-by [ satisfy ] <@ ; + +: 'escaped-seq' ( -- parser ) + any-char-parser <*> + [ ignore-case? get ] <@ + "\\Q" "\\E" surrounded-by ; + +: 'break' ( quot -- parser ) + satisfy ensure epsilon just <|> ; + +: 'break-escape' ( -- parser ) + "$" token [ "\r\n" member? ] 'break' <@literal + "\\b" token [ blank? ] 'break' <@literal <|> + "\\B" token [ blank? not ] 'break' <@literal <|> + "\\z" token epsilon just <@literal <|> ; + +: 'simple' ( -- parser ) + 'escaped-seq' + 'break-escape' <|> + 'group' <|> + 'character-class' <|> + 'char' <|> ; + +: 'exactly-n' ( -- parser ) + 'integer' [ exactly-n ] <@delay ; + +: 'at-least-n' ( -- parser ) + 'integer' "," token <& [ at-least-n ] <@delay ; + +: 'at-most-n' ( -- parser ) + "," token 'integer' &> [ at-most-n ] <@delay ; + +: 'from-m-to-n' ( -- parser ) + 'integer' "," token <& 'integer' <&> [ first2 from-m-to-n ] <@delay ; + +: 'greedy-interval' ( -- parser ) + 'exactly-n' 'at-least-n' <|> 'at-most-n' <|> 'from-m-to-n' <|> ; + +: 'interval' ( -- parser ) + 'greedy-interval' + 'greedy-interval' "?" token <& [ "reluctant {}" print ] <@ <|> + 'greedy-interval' "+" token <& [ "possessive {}" print ] <@ <|> + "{" "}" surrounded-by ; + +: 'repetition' ( -- parser ) + ! Posessive + "*+" token [ ] <@literal + "++" token [ ] <@literal <|> + "?+" token [ ] <@literal <|> + ! Reluctant + "*?" token [ <(*)> ] <@literal <|> + "+?" token [ <(+)> ] <@literal <|> + "??" token [ <(?)> ] <@literal <|> + ! Greedy + "*" token [ <*> ] <@literal <|> + "+" token [ <+> ] <@literal <|> + "?" token [ ] <@literal <|> ; + +: 'dummy' ( -- parser ) + epsilon [ ] <@literal ; + +MEMO: 'term' ( -- parser ) + 'simple' + 'repetition' 'interval' 'dummy' <|> <|> <&> [ first2 call ] <@ + [ ] <@ ; + +LAZY: 'regexp' ( -- parser ) + 'term' "|" token nonempty-list-of [ ] <@ ; +! "^" token 'term' "|" token nonempty-list-of [ ] <@ +! &> [ "caret" print ] <@ <|> +! 'term' "|" token nonempty-list-of [ ] <@ +! "$" token <& [ "dollar" print ] <@ <|> +! "^" token 'term' "|" token nonempty-list-of [ ] <@ &> +! "$" token [ "caret dollar" print ] <@ <& <|> ; + +TUPLE: regexp source parser ignore-case? ; + +: ( string ignore-case? -- regexp ) + [ + ignore-case? [ + dup 'regexp' just parse-1 + ] with-variable + ] keep regexp construct-boa ; + +: do-ignore-case ( string regexp -- string regexp ) + dup regexp-ignore-case? [ >r >upper r> ] when ; + +: matches? ( string regexp -- ? ) + do-ignore-case regexp-parser just parse nil? not ; + +: match-head ( string regexp -- end ) + do-ignore-case regexp-parser parse dup nil? + [ drop f ] [ car parse-result-unparsed slice-from ] if ; + +! Literal syntax for regexps +: parse-options ( string -- ? ) + #! Lame + { + { "" [ f ] } + { "i" [ t ] } + } case ; + +: parse-regexp ( accum end -- accum ) + lexer get dup skip-blank [ + [ index* dup 1+ swap ] 2keep swapd subseq swap + ] change-column + lexer get (parse-token) parse-options parsed ; + +: R! CHAR: ! parse-regexp ; parsing +: R" CHAR: " parse-regexp ; parsing +: R# CHAR: # parse-regexp ; parsing +: R' CHAR: ' parse-regexp ; parsing +: R( CHAR: ) parse-regexp ; parsing +: R/ CHAR: / parse-regexp ; parsing +: R@ CHAR: @ parse-regexp ; parsing +: R[ CHAR: ] parse-regexp ; parsing +: R` CHAR: ` parse-regexp ; parsing +: R{ CHAR: } parse-regexp ; parsing +: R| CHAR: | parse-regexp ; parsing + +: find-regexp-syntax ( string -- prefix suffix ) + { + { "R/ " "/" } + { "R! " "!" } + { "R\" " "\"" } + { "R# " "#" } + { "R' " "'" } + { "R( " ")" } + { "R@ " "@" } + { "R[ " "]" } + { "R` " "`" } + { "R{ " "}" } + { "R| " "|" } + } swap [ subseq? not nip ] curry assoc-find drop ; + +M: regexp pprint* + [ + dup regexp-source + dup find-regexp-syntax swap % swap % % + dup regexp-ignore-case? [ "i" % ] when + ] "" make + swap present-text ; diff --git a/extra/rss/rss-tests.factor b/extra/rss/rss-tests.factor index 643c2ecf51..18aa8440b9 100644 --- a/extra/rss/rss-tests.factor +++ b/extra/rss/rss-tests.factor @@ -1,5 +1,9 @@ -USING: rss io.files tools.test ; -IN: temporary +USING: rss io kernel io.files tools.test ; + +: load-news-file ( filename -- feed ) + #! Load an news syndication file and process it, returning + #! it as an feed tuple. + read-feed ; [ T{ feed @@ -34,4 +38,3 @@ IN: temporary } } } ] [ "extra/rss/atom.xml" resource-path load-news-file ] unit-test -[ " & & hi" ] [ " & & hi" &>& ] unit-test diff --git a/extra/rss/rss.factor b/extra/rss/rss.factor index b0fdc65adb..cfb1c903e8 100644 --- a/extra/rss/rss.factor +++ b/extra/rss/rss.factor @@ -1,23 +1,16 @@ -! Copyright (C) 2006 Chris Double. +! Copyright (C) 2006 Chris Double, Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. IN: rss -! USING: kernel http-client xml xml-utils xml-data errors io strings -! sequences xml-writer parser-combinators lazy-lists entities ; -USING: xml.utilities kernel promises parser-combinators assocs - parser-combinators.replace strings sequences xml.data xml.writer +USING: xml.utilities kernel assocs + strings sequences xml.data xml.writer io.streams.string combinators xml xml.entities io.files io - http.client ; + http.client namespaces xml.generator hashtables ; : ?children>string ( tag/f -- string/f ) [ children>string ] [ f ] if* ; -LAZY: '&' ( -- parser ) - "&" token - [ blank? ] satisfy &> - [ "&" swap add ] <@ ; - -: &>& ( string -- string ) - '&' replace ; +: any-tag-named ( tag names -- tag-inside ) + f -rot [ tag-named nip dup ] curry* find 2drop ; TUPLE: feed title link entries ; @@ -27,71 +20,91 @@ TUPLE: entry title link description pub-date ; C: entry +: rss1.0-entry ( tag -- entry ) + [ "title" tag-named children>string ] keep + [ "link" tag-named children>string ] keep + [ "description" tag-named children>string ] keep + f "date" "http://purl.org/dc/elements/1.1/" + tag-named ?children>string + ; + : rss1.0 ( xml -- feed ) [ "channel" tag-named [ "title" tag-named children>string ] keep "link" tag-named children>string ] keep - "item" tags-named [ - [ "title" tag-named children>string ] keep - [ "link" tag-named children>string ] keep - [ "description" tag-named children>string ] keep - f "date" "http://purl.org/dc/elements/1.1/" - tag-named ?children>string - - ] map ; + "item" tags-named [ rss1.0-entry ] map ; + +: rss2.0-entry ( tag -- entry ) + [ "title" tag-named children>string ] keep + [ "link" tag-named ] keep + [ "guid" tag-named dupd ? children>string ] keep + [ "description" tag-named children>string ] keep + "pubDate" tag-named children>string ; : rss2.0 ( xml -- feed ) "channel" tag-named [ "title" tag-named children>string ] keep [ "link" tag-named children>string ] keep - "item" tags-named [ - [ "title" tag-named children>string ] keep - [ "link" tag-named ] keep - [ "guid" tag-named dupd ? children>string ] keep - [ "description" tag-named children>string ] keep - "pubDate" tag-named children>string - ] map ; + "item" tags-named [ rss2.0-entry ] map ; + +: atom1.0-entry ( tag -- entry ) + [ "title" tag-named children>string ] keep + [ "link" tag-named "href" swap at ] keep + [ + { "content" "summary" } any-tag-named + dup tag-children [ string? not ] contains? + [ tag-children [ write-chunk ] string-out ] + [ children>string ] if + ] keep + { "published" "updated" "issued" "modified" } any-tag-named + children>string ; : atom1.0 ( xml -- feed ) [ "title" tag-named children>string ] keep [ "link" tag-named "href" swap at ] keep - "entry" tags-named [ - [ "title" tag-named children>string ] keep - [ "link" tag-named "href" swap at ] keep - [ - dup "content" tag-named - [ nip ] [ "summary" tag-named ] if* - dup tag-children [ tag? ] contains? - [ tag-children [ write-chunk ] string-out ] - [ children>string ] if - ] keep - dup "published" tag-named - [ nip ] [ "updated" tag-named ] if* - children>string - ] map ; + "entry" tags-named [ atom1.0-entry ] map ; -: feed ( xml -- feed ) +: xml>feed ( xml -- feed ) dup name-tag { { "RDF" [ rss1.0 ] } { "rss" [ rss2.0 ] } { "feed" [ atom1.0 ] } } case ; -: read-feed ( string -- feed ) - ! &>& ! this will be uncommented when parser-combinators are fixed - [ string>xml ] with-html-entities feed ; +: read-feed ( stream -- feed ) + [ read-xml ] with-html-entities xml>feed ; -: load-news-file ( filename -- feed ) - #! Load an news syndication file and process it, returning - #! it as an feed tuple. - [ contents read-feed ] keep stream-close ; - -: news-get ( url -- feed ) +: download-feed ( url -- feed ) #! Retrieve an news syndication file, return as a feed tuple. - http-get rot 200 = [ + http-get-stream rot 200 = [ nip read-feed ] [ 2drop "Error retrieving newsfeed file" throw ] if ; + +! Atom generation +: simple-tag, ( content name -- ) + [ , ] tag, ; + +: simple-tag*, ( content name attrs -- ) + [ , ] tag*, ; + +: entry, ( entry -- ) + "entry" [ + dup entry-title "title" { { "type" "html" } } simple-tag*, + "link" over entry-link "href" associate contained*, + dup entry-pub-date "published" simple-tag, + entry-description [ "content" { { "type" "html" } } simple-tag*, ] when* + ] tag, ; + +: feed>xml ( feed -- xml ) + "feed" { { "xmlns" "http://www.w3.org/2005/Atom" } } [ + dup feed-title "title" simple-tag, + "link" over feed-link "href" associate contained*, + feed-entries [ entry, ] each + ] make-xml* ; + +: write-feed ( feed -- ) + feed>xml write-xml ; diff --git a/extra/sequences/lib/lib-tests.factor b/extra/sequences/lib/lib-tests.factor index c170a0d20a..72cf9ad9c4 100644 --- a/extra/sequences/lib/lib-tests.factor +++ b/extra/sequences/lib/lib-tests.factor @@ -1,5 +1,5 @@ USING: arrays kernel sequences sequences.lib math -math.functions tools.test ; +math.functions tools.test strings ; [ 4 ] [ { 1 2 } [ sq ] [ * ] map-reduce ] unit-test [ 36 ] [ { 2 3 } [ sq ] [ * ] map-reduce ] unit-test @@ -39,3 +39,10 @@ math.functions tools.test ; [ 2 ] [ V{ 10 20 30 } [ delete-random drop ] keep length ] unit-test [ V{ } [ delete-random drop ] keep length ] unit-test-fails + +[ { 1 9 25 } ] [ { 1 3 5 6 } [ sq ] [ even? ] map-until ] unit-test +[ { 2 4 } ] [ { 2 4 1 3 } [ even? ] take-while ] unit-test + +[ { { 0 0 } { 1 0 } { 0 1 } { 1 1 } } ] [ 2 2 exact-strings ] unit-test +[ t ] [ "ab" 4 strings [ >string ] map "abab" swap member? ] unit-test +[ { { } { 1 } { 2 } { 1 2 } } ] [ { 1 2 } power-set ] unit-test diff --git a/extra/sequences/lib/lib.factor b/extra/sequences/lib/lib.factor index 33cfe80fcc..f5adccf445 100644 --- a/extra/sequences/lib/lib.factor +++ b/extra/sequences/lib/lib.factor @@ -1,5 +1,5 @@ -USING: combinators.lib kernel sequences math namespaces -random sequences.private shuffle ; +USING: combinators.lib kernel sequences math namespaces assocs +random sequences.private shuffle math.functions mirrors ; IN: sequences.lib ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -62,3 +62,45 @@ IN: sequences.lib : delete-random ( seq -- value ) [ length random ] keep [ nth ] 2keep delete-nth ; + +: (map-until) ( quot pred -- quot ) + [ dup ] swap 3compose + [ [ drop t ] [ , f ] if ] compose [ find 2drop ] curry ; + +: map-until ( seq quot pred -- newseq ) + (map-until) { } make ; + +: take-while ( seq quot -- newseq ) + [ not ] compose + [ find drop [ head-slice ] when* ] curry + [ dup ] swap compose keep like ; + +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + + +: exact-strings ( alphabet length -- seqs ) + >r dup length r> exact-number-strings map-alphabet ; + +: strings ( alphabet length -- seqs ) + >r dup length r> number-strings map-alphabet ; + +: nths ( nths seq -- subseq ) + ! nths is a sequence of ones and zeroes + >r [ length ] keep [ nth 1 = ] curry subset r> + [ nth ] curry { } map-as ; + +: power-set ( seq -- subsets ) + 2 over length exact-number-strings swap [ nths ] curry map ; diff --git a/extra/shuffle/shuffle.factor b/extra/shuffle/shuffle.factor index b2523eddd2..b0fdd952d5 100644 --- a/extra/shuffle/shuffle.factor +++ b/extra/shuffle/shuffle.factor @@ -29,4 +29,6 @@ MACRO: ntuck ( n -- ) 2 + [ dup , -nrot ] bake ; : 4dup ( a b c d -- a b c d a b c d ) 4 ndup ; inline +: 4drop ( a b c d -- ) 3drop drop ; inline + : tuckd ( x y z -- z x y z ) 2 ntuck ; inline diff --git a/extra/shufflers/shufflers.factor b/extra/shufflers/shufflers.factor index e0c5141029..95567da2ef 100644 --- a/extra/shufflers/shufflers.factor +++ b/extra/shufflers/shufflers.factor @@ -1,25 +1,14 @@ USING: kernel sequences words math math.functions arrays shuffle quotations parser math.parser strings namespaces -splitting effects ; +splitting effects sequences.lib ; IN: shufflers : shuffle>string ( names shuffle -- string ) swap [ [ nth ] curry map ] curry map first2 "-" swap 3append >string ; -: translate ( n alphabet out-len -- seq ) - [ drop /mod ] curry* map nip ; - -: (combinations) ( alphabet out-len -- seq[seq] ) - [ ^ ] 2keep [ translate ] 2curry map ; - -: combinations ( n max-out -- seq[seq] ) - ! This returns a seq of length O(n^m) - ! where and m is max-out - 1+ [ (combinations) ] curry* map concat ; - : make-shuffles ( max-out max-in -- shuffles ) - [ 1+ dup rot combinations [ 2array ] curry* map ] + [ 1+ dup rot strings [ 2array ] curry* map ] curry* map concat ; : shuffle>quot ( shuffle -- quot ) diff --git a/extra/sqlite/sqlite-docs.factor b/extra/sqlite/sqlite-docs.factor index 416601d415..7bdec6efa4 100644 --- a/extra/sqlite/sqlite-docs.factor +++ b/extra/sqlite/sqlite-docs.factor @@ -1,6 +1,7 @@ ! Copyright (C) 2006 Chris Double. ! See http://factorcode.org/license.txt for BSD license. USING: help sqlite help.syntax help.markup ; +IN: sqlite HELP: sqlite-open { $values { "filename" "path to sqlite database" } diff --git a/extra/sqlite/tuple-db/tuple-db-docs.factor b/extra/sqlite/tuple-db/tuple-db-docs.factor index c960b5ba2b..795836fa56 100644 --- a/extra/sqlite/tuple-db/tuple-db-docs.factor +++ b/extra/sqlite/tuple-db/tuple-db-docs.factor @@ -1,10 +1,11 @@ ! Copyright (C) 2006 Chris Double. ! See http://factorcode.org/license.txt for BSD license. USING: help sqlite sqlite.tuple-db help.syntax help.markup ; +IN: sqlite.tuple-db ARTICLE: { "sqlite" "tuple-db-loading" } "Loading" -"The quickest way to get up and running with this library is to load it as a module:" -{ $code "\"libs/sqlite\" require\nUSE: sqlite\nUSE: tuple-db\n" } +"The quickest way to get up and running with this library is to use the vocabulary:" +{ $code "USING: sqlite sqlite.tuple-db ;\n" } "Some simple tests can be run to check that everything is working ok:" { $code "\"libs/sqlite\" test-module" } ; @@ -126,3 +127,5 @@ HELP: delete-tuple } { $description "Delete this tuple instance from the database. The tuple must have previously been obtained from the database, or inserted into it. It must have a delegate of 'persistent' with the key field set (which is done by the find and insert operations)." } { $see-also { "sqlite" "tuple-db" } insert-tuple update-tuple find-tuples delete-tuple save-tuple } ; + +ABOUT: { "sqlite" "tuple-db" } \ No newline at end of file diff --git a/extra/store/store-tests.factor b/extra/store/store-tests.factor index 97b39bcffd..6f33d66101 100644 --- a/extra/store/store-tests.factor +++ b/extra/store/store-tests.factor @@ -4,8 +4,6 @@ IN: temporary SYMBOL: store SYMBOL: foo -SYMBOL: bar - : the-store ( -- path ) "store-test.store" resource-path ; @@ -14,28 +12,24 @@ SYMBOL: bar [ the-store delete-file ] catch drop ; : load-the-store ( -- ) - the-store load-store store set ; + the-store load-store store set-global ; : save-the-store ( -- ) - store get save-store ; + store save-store ; delete-the-store -the-store load-store store set +load-the-store -[ f ] [ foo store get store-data at ] unit-test +[ f ] [ foo store get-persistent ] unit-test -[ ] [ 100 foo store get store-variable ] unit-test +USE: prettyprint +store get-global store-data . + +[ ] [ 100 foo store set-persistent ] unit-test [ ] [ save-the-store ] unit-test -[ 100 ] [ foo store get store-data at ] unit-test - -1000 foo set - -[ ] [ save-the-store ] unit-test - -[ ] [ load-the-store ] unit-test - -[ 1000 ] [ foo store get store-data at ] unit-test +[ 100 ] [ foo store get-persistent ] unit-test delete-the-store +f store set-global diff --git a/extra/store/store.factor b/extra/store/store.factor index 38f078b2a8..46b1a09568 100644 --- a/extra/store/store.factor +++ b/extra/store/store.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2006, 2007 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: assocs io io.files kernel namespaces serialize ; +USING: assocs io io.files kernel namespaces serialize init ; IN: store TUPLE: store path data ; @@ -8,25 +8,26 @@ TUPLE: store path data ; C: store : save-store ( store -- ) - [ store-data ] keep store-path [ - [ - dup - [ >r drop [ get ] keep r> set-at ] curry assoc-each - ] keep serialize - ] with-stream ; + get-global dup store-data swap store-path + [ serialize ] with-stream ; : load-store ( path -- store ) dup exists? [ - dup [ - deserialize - ] with-stream + dup [ deserialize ] with-stream ] [ H{ } clone ] if ; -: store-variable ( default variable store -- ) - store-data 2dup at* [ - rot set-global 2drop - ] [ - drop >r 2dup set-global r> set-at - ] if ; +: define-store ( path id -- ) + over >r + [ >r resource-path load-store r> set-global ] 2curry + r> add-init-hook ; + +: get-persistent ( key store -- value ) + get-global store-data at ; + +: set-persistent ( value key store -- ) + [ get-global store-data set-at ] keep save-store ; + +: init-persistent ( value key store -- ) + 2dup get-persistent [ 3drop ] [ set-persistent ] if ; diff --git a/extra/tools/annotations/annotations.factor b/extra/tools/annotations/annotations.factor index d24d60cef6..e97f292416 100644 --- a/extra/tools/annotations/annotations.factor +++ b/extra/tools/annotations/annotations.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2005, 2007 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: kernel words parser io inspector quotations sequences -prettyprint continuations ; +prettyprint continuations effects ; IN: tools.annotations : annotate ( word quot -- ) @@ -9,17 +9,29 @@ IN: tools.annotations swap define-compound do-parse-hook ; inline -: entering ( str -- ) "! Entering: " write print .s flush ; +: entering ( str -- ) + "/-- Entering: " write dup . + stack-effect [ + >r datastack r> effect-in length tail* stack. + ] [ + .s + ] if* "\\--" print flush ; -: leaving ( str -- ) "! Leaving: " write print .s flush ; +: leaving ( str -- ) + "/-- Leaving: " write dup . + stack-effect [ + >r datastack r> effect-out length tail* stack. + ] [ + .s + ] if* "\\--" print flush ; -: (watch) ( str def -- def ) +: (watch) ( word def -- def ) over [ entering ] curry rot [ leaving ] curry swapd 3append ; : watch ( word -- ) - dup word-name swap [ (watch) ] annotate ; + dup [ (watch) ] annotate ; : breakpoint ( word -- ) [ \ break add* ] annotate ; diff --git a/extra/tools/browser/browser-docs.factor b/extra/tools/browser/browser-docs.factor index 61ad58f5b3..db0e5942f5 100644 --- a/extra/tools/browser/browser-docs.factor +++ b/extra/tools/browser/browser-docs.factor @@ -1,6 +1,10 @@ USING: help.markup help.syntax io strings ; IN: tools.browser +ARTICLE: "vocab-index" "Vocabulary index" +{ $tags,authors } +{ $describe-vocab "" } ; + ARTICLE: "tools.browser" "Vocabulary browser" "Getting and setting vocabulary meta-data:" { $subsection vocab-summary } diff --git a/extra/tools/browser/browser.factor b/extra/tools/browser/browser.factor index 5342022b54..97d3c968cb 100644 --- a/extra/tools/browser/browser.factor +++ b/extra/tools/browser/browser.factor @@ -303,10 +303,6 @@ C: vocab-author "Authors" $heading all-authors authors. ; -ARTICLE: "vocab-index" "Vocabulary index" -{ $tags,authors } -{ $describe-vocab "" } ; - M: vocab-spec article-title vocab-name " vocabulary" append ; M: vocab-spec article-name vocab-name ; diff --git a/extra/tools/deploy/deploy.factor b/extra/tools/deploy/deploy.factor index 7c0dabc458..dafe44dfad 100755 --- a/extra/tools/deploy/deploy.factor +++ b/extra/tools/deploy/deploy.factor @@ -26,12 +26,8 @@ IN: tools.deploy [ (copy-lines) ] [ stream-close ] [ ] cleanup ; : stage2 ( vm flags -- ) - [ - "\"" % swap % "\" -i=" % - boot-image-name % - [ " " % % ] each - ] "" make - dup print + >r "-i=" boot-image-name append 2array r> append dup . + dup duplex-stream-out stream-close copy-lines ; @@ -48,11 +44,11 @@ IN: tools.deploy : deploy-command-line ( vm image vocab config -- vm flags ) [ - "\"-include=" swap profile-string "\"" 3append , + "-include=" swap profile-string append , "-deploy-vocab=" swap append , - "\"-output-image=" swap "\"" 3append , + "-output-image=" swap append , "-no-stack-traces" , diff --git a/extra/tools/deploy/macosx/macosx.factor b/extra/tools/deploy/macosx/macosx.factor index d59665488a..7624fbeb9c 100755 --- a/extra/tools/deploy/macosx/macosx.factor +++ b/extra/tools/deploy/macosx/macosx.factor @@ -1,18 +1,17 @@ ! Copyright (C) 2007 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: io io.files io.launcher kernel namespaces sequences -system cocoa.plists cocoa.application tools.deploy -tools.deploy.config assocs hashtables prettyprint ; +system tools.deploy tools.deploy.config assocs hashtables +prettyprint io.unix.backend cocoa cocoa.plists +cocoa.application cocoa.classes qualified ; +QUALIFIED: unix IN: tools.deploy.macosx : touch ( path -- ) - "touch \"" swap "\"" 3append run-process ; + { "touch" } swap add run-process ; : rm ( path -- ) - "rm -rf \"" swap "\"" 3append run-process ; - -: chmod ( path perms -- ) - [ "chmod " % % " \"" % % "\"" % ] "" make run-process ; + { "rm" "-rf" } swap add run-process ; : bundle-dir ( -- dir ) vm parent-directory parent-directory ; @@ -21,10 +20,13 @@ IN: tools.deploy.macosx bundle-dir over path+ -rot >r "Contents" path+ r> path+ copy-directory ; +: chmod ( path perms -- ) + unix:chmod io-error ; + : copy-vm ( executable bundle-name -- vm ) "Contents/MacOS/" path+ swap path+ vm swap [ copy-file ] keep - [ "755" chmod ] keep ; + [ OCT: 755 chmod ] keep ; : copy-fonts ( name -- ) "fonts/" resource-path @@ -63,6 +65,12 @@ TUPLE: macosx-deploy-implementation ; T{ macosx-deploy-implementation } deploy-implementation set-global +: show-in-finder ( path -- ) + NSWorkspace + -> sharedWorkspace + over rot parent-directory + -> selectFile:inFileViewerRootedAtPath: drop ; + M: macosx-deploy-implementation deploy ( vocab -- ) ".app deploy tool" assert.app "." resource-path cd @@ -70,5 +78,6 @@ M: macosx-deploy-implementation deploy ( vocab -- ) bundle-name rm [ bundle-name create-app-dir ] keep [ bundle-name deploy.app-image ] keep - namespace - ] bind deploy* ; + namespace deploy* + bundle-name show-in-finder + ] bind ; diff --git a/extra/tools/deploy/shaker/shaker.factor b/extra/tools/deploy/shaker/shaker.factor index 3e1aa3ab53..7b6d3fdbb5 100755 --- a/extra/tools/deploy/shaker/shaker.factor +++ b/extra/tools/deploy/shaker/shaker.factor @@ -111,6 +111,10 @@ SYMBOL: deploy-vocab builtins , strip-io? [ io-backend , ] unless + deploy-compiler? get [ + "callbacks" "alien.compiler" lookup , + ] when + strip-dictionary? [ { dictionary diff --git a/extra/tools/test/ui/ui.factor b/extra/tools/test/ui/ui.factor index 6dcf9da4b5..0376e7f4c7 100755 --- a/extra/tools/test/ui/ui.factor +++ b/extra/tools/test/ui/ui.factor @@ -1,5 +1,5 @@ USING: dlists ui.gadgets kernel ui namespaces io.streams.string -io ui.private ; +io ; IN: tools.test.ui ! We can't print to stdio here because that might be a pane diff --git a/extra/ui/cocoa/cocoa.factor b/extra/ui/cocoa/cocoa.factor index 52722a2fab..1e46544180 100755 --- a/extra/ui/cocoa/cocoa.factor +++ b/extra/ui/cocoa/cocoa.factor @@ -5,7 +5,7 @@ kernel memory namespaces cocoa.messages cocoa.runtime cocoa.subclassing cocoa.pasteboard cocoa.types cocoa.windows cocoa.classes cocoa.application sequences system ui ui.backend ui.clipboards ui.gadgets ui.gadgets.worlds ui.cocoa.views -core-foundation ; +core-foundation threads ; IN: ui.cocoa TUPLE: cocoa-ui-backend ; @@ -19,7 +19,7 @@ SYMBOL: stop-after-last-window? : event-loop ( -- ) event-loop? [ [ - [ NSApp do-events ui-step ] ui-try + [ NSApp do-events ui-step 10 sleep ] ui-try ] with-autorelease-pool event-loop ] when ; @@ -60,11 +60,19 @@ M: cocoa-ui-backend set-title ( string world -- ) drop ] if ; -M: cocoa-ui-backend (open-world-window) ( world -- ) +M: cocoa-ui-backend (open-window) ( world -- ) dup gadget-window dup auto-position world-handle second f -> makeKeyAndOrderFront: ; +M: cocoa-ui-backend (close-window) ( handle -- ) + first unregister-window ; + +M: cocoa-ui-backend close-window ( gadget -- ) + find-world [ + world-handle second f -> performClose: + ] when* ; + M: cocoa-ui-backend raise-window ( world -- ) world-handle [ second dup f -> orderFront: -> makeKeyWindow diff --git a/extra/ui/cocoa/views/views.factor b/extra/ui/cocoa/views/views.factor index 31d6c89f8c..feac09ffc4 100644 --- a/extra/ui/cocoa/views/views.factor +++ b/extra/ui/cocoa/views/views.factor @@ -3,7 +3,8 @@ USING: alien arrays assocs cocoa kernel math cocoa.messages cocoa.subclassing cocoa.classes cocoa.views cocoa.application cocoa.pasteboard cocoa.types cocoa.windows sequences ui -ui.gadgets ui.gadgets.worlds ui.gestures core-foundation ; +ui.gadgets ui.gadgets.worlds ui.gestures core-foundation +threads ; IN: ui.cocoa.views : send-mouse-moved ( view event -- ) @@ -313,8 +314,6 @@ CLASS: { { "dealloc" "void" { "id" "SEL" } [ drop - dup window stop-world - dup unregister-window dup remove-observer SUPER-> dealloc ] @@ -347,6 +346,12 @@ CLASS: { forget-rollover 2nip -> object -> contentView window unfocus-world ] +} + +{ "windowShouldClose:" "bool" { "id" "SEL" "id" } + [ + 2nip -> contentView window ungraft t + ] } ; : install-window-delegate ( window -- ) diff --git a/extra/ui/gadgets/editors/editors-tests.factor b/extra/ui/gadgets/editors/editors-tests.factor index 6966e9639f..6be0423e95 100755 --- a/extra/ui/gadgets/editors/editors-tests.factor +++ b/extra/ui/gadgets/editors/editors-tests.factor @@ -1,5 +1,5 @@ USING: ui.gadgets.editors tools.test kernel io io.streams.plain -definitions namespaces ui.gadgets ui.private +definitions namespaces ui.gadgets ui.gadgets.grids prettyprint documents ui.gestures tools.test.inference tools.test.ui models ; diff --git a/extra/ui/gadgets/editors/editors.factor b/extra/ui/gadgets/editors/editors.factor index 65758ab54c..84cc01cdb6 100755 --- a/extra/ui/gadgets/editors/editors.factor +++ b/extra/ui/gadgets/editors/editors.factor @@ -4,7 +4,7 @@ USING: arrays documents ui.clipboards ui.commands ui.gadgets ui.gadgets.borders ui.gadgets.buttons ui.gadgets.labels ui.gadgets.scrollers ui.gadgets.theme ui.render ui.gestures io kernel math models namespaces opengl opengl.gl sequences strings -io.styles math.vectors sorting colors combinators ; +io.styles math.vectors sorting colors combinators assocs ; IN: ui.gadgets.editors TUPLE: editor @@ -94,8 +94,11 @@ M: editor ungraft* rot editor-line x>offset , ] { } make ; +: clicked-loc ( editor -- loc ) + [ hand-rel ] keep point>loc ; + : click-loc ( editor model -- ) - >r [ hand-rel ] keep point>loc r> set-model ; + >r clicked-loc r> set-model ; : focus-editor ( editor -- ) t over set-editor-focused? relayout-1 ; @@ -244,11 +247,37 @@ M: editor user-input* M: editor gadget-text* editor-string % ; -: start-selection ( editor -- ) - dup editor-caret click-loc ; - : extend-selection ( editor -- ) - dup request-focus start-selection ; + dup request-focus dup editor-caret click-loc ; + +: mouse-elt ( -- elelement ) + hand-click# get { + { 2 T{ one-word-elt } } + { 3 T{ one-line-elt } } + } at T{ one-char-elt } or ; + +: drag-direction? ( loc editor -- ? ) + editor-mark* <=> 0 < ; + +: drag-selection-caret ( loc editor element -- loc ) + >r [ drag-direction? ] 2keep + gadget-model + r> prev/next-elt ? ; + +: drag-selection-mark ( loc editor element -- loc ) + >r [ drag-direction? not ] 2keep + nip dup editor-mark* swap gadget-model + r> prev/next-elt ? ; + +: drag-caret&mark ( editor -- caret mark ) + dup clicked-loc swap mouse-elt + [ drag-selection-caret ] 3keep + drag-selection-mark ; + +: drag-selection ( editor -- ) + dup drag-caret&mark + pick editor-mark set-model + swap editor-caret set-model ; : editor-cut ( editor clipboard -- ) dupd gadget-copy remove-selection ; @@ -296,17 +325,10 @@ M: editor gadget-text* editor-string % ; dup T{ one-word-elt } select-elt ] unless gadget-selection ; -: (position-caret) ( editor -- ) - dup extend-selection - dup editor-mark click-loc ; - : position-caret ( editor -- ) - hand-click# get { - { 1 [ (position-caret) ] } - { 2 [ T{ one-word-elt } select-elt ] } - { 3 [ T{ one-line-elt } select-elt ] } - [ 2drop ] - } case ; + mouse-elt dup T{ one-char-elt } = + [ drop dup extend-selection dup editor-mark click-loc ] + [ select-elt ] if ; : insert-newline "\n" swap user-input ; @@ -408,7 +430,7 @@ editor "caret-motion" f { editor "selection" f { { T{ button-down f { S+ } } extend-selection } - { T{ drag } start-selection } + { T{ drag } drag-selection } { T{ gain-focus } focus-editor } { T{ lose-focus } unfocus-editor } { T{ delete-action } remove-selection } diff --git a/extra/ui/gadgets/gadgets-tests.factor b/extra/ui/gadgets/gadgets-tests.factor index 6c651fa248..48bb3718cb 100755 --- a/extra/ui/gadgets/gadgets-tests.factor +++ b/extra/ui/gadgets/gadgets-tests.factor @@ -2,7 +2,7 @@ IN: temporary USING: ui.gadgets ui.gadgets.packs ui.gadgets.worlds tools.test namespaces models kernel tools.test.inference dlists math math.parser ui sequences hashtables assocs io arrays -prettyprint io.streams.string ui.private ; +prettyprint io.streams.string ; [ T{ rect f { 10 10 } { 20 20 } } ] [ diff --git a/extra/ui/gadgets/incremental/incremental.factor b/extra/ui/gadgets/incremental/incremental.factor index a5c7431d36..c90b955eb7 100755 --- a/extra/ui/gadgets/incremental/incremental.factor +++ b/extra/ui/gadgets/incremental/incremental.factor @@ -40,13 +40,13 @@ M: incremental pref-dim* swap set-rect-loc ; : prefer-incremental ( gadget -- ) - dup forget-pref-dim dup pref-dim over set-rect-dim - layout ; + dup forget-pref-dim dup pref-dim swap set-rect-dim ; : add-incremental ( gadget incremental -- ) not-in-layout 2dup (add-gadget) over prefer-incremental + over layout-later 2dup incremental-loc tuck update-cursor dup prefer-incremental diff --git a/extra/ui/gadgets/scrollers/scrollers-tests.factor b/extra/ui/gadgets/scrollers/scrollers-tests.factor index 7d0dd0158f..a53cf1fb0e 100755 --- a/extra/ui/gadgets/scrollers/scrollers-tests.factor +++ b/extra/ui/gadgets/scrollers/scrollers-tests.factor @@ -1,5 +1,5 @@ IN: temporary -USING: ui.gadgets ui.gadgets.scrollers ui.private +USING: ui.gadgets ui.gadgets.scrollers namespaces tools.test kernel models ui.gadgets.viewports ui.gadgets.labels ui.gadgets.grids ui.gadgets.frames ui.gadgets.sliders math math.vectors arrays sequences diff --git a/extra/ui/gestures/gestures.factor b/extra/ui/gestures/gestures.factor old mode 100644 new mode 100755 index 0e337c538a..3d1e7baf7f --- a/extra/ui/gestures/gestures.factor +++ b/extra/ui/gestures/gestures.factor @@ -2,7 +2,7 @@ ! See http://factorcode.org/license.txt for BSD license. USING: arrays assocs kernel math models namespaces sequences words strings system hashtables math.parser -math.vectors tuples classes ui.gadgets timers ; +math.vectors tuples classes ui.gadgets timers combinators.lib ; IN: ui.gestures : set-gestures ( class hash -- ) "gestures" set-word-prop ; @@ -176,9 +176,22 @@ drag-timer construct-empty drag-timer set-global : hand-click-rel ( gadget -- loc ) hand-click-loc get-global swap screen-loc v- ; +: multi-click-timeout? ( -- ? ) + millis hand-last-time get - double-click-timeout get <= ; + +: multi-click-button? ( button -- button ? ) + dup hand-last-button get = ; + +: multi-click-position? ( -- ? ) + hand-loc get hand-click-loc get v- norm 10 <= ; + : multi-click? ( button -- ? ) - millis hand-last-time get - double-click-timeout get <= - swap hand-last-button get = and ; + { + [ multi-click-timeout? ] + [ multi-click-button? ] + [ multi-click-position? ] + [ multi-click-position? ] + } && nip ; : update-click# ( button -- ) global [ diff --git a/extra/ui/tools/browser/browser-tests.factor b/extra/ui/tools/browser/browser-tests.factor index 00c8e5489c..5a343919e7 100755 --- a/extra/ui/tools/browser/browser-tests.factor +++ b/extra/ui/tools/browser/browser-tests.factor @@ -1,6 +1,6 @@ IN: temporary USING: tools.test tools.test.ui ui.tools.browser -tools.test.inference ui.private ; +tools.test.inference ; { 0 1 } [ ] unit-test-effect [ ] [ [ ] with-grafted-gadget ] unit-test diff --git a/extra/ui/tools/debugger/debugger.factor b/extra/ui/tools/debugger/debugger.factor index 0e7addb157..a7c173799a 100644 --- a/extra/ui/tools/debugger/debugger.factor +++ b/extra/ui/tools/debugger/debugger.factor @@ -52,7 +52,7 @@ debugger "gestures" f { \ :help H{ { +nullary+ t } { +listener+ t } } define-command -\ :edit H{ { +nullary+ t } } define-command +\ :edit H{ { +nullary+ t } { +listener+ t } } define-command debugger "toolbar" f { { T{ key-down f f "s" } com-traceback } diff --git a/extra/ui/tools/deploy/deploy.factor b/extra/ui/tools/deploy/deploy.factor index c4b41e119f..e7d9161079 100755 --- a/extra/ui/tools/deploy/deploy.factor +++ b/extra/ui/tools/deploy/deploy.factor @@ -77,7 +77,8 @@ TUPLE: deploy-gadget vocab settings ; : com-deploy ( gadget -- ) dup com-save - find-deploy-vocab [ deploy ] curry call-listener ; + dup find-deploy-vocab [ deploy ] curry call-listener + close-window ; : com-help ( -- ) "ui-deploy" help-window ; @@ -86,7 +87,11 @@ TUPLE: deploy-gadget vocab settings ; { +nullary+ t } } define-command +: com-close ( gadget -- ) + close-window ; + deploy-gadget "toolbar" f { + { f com-close } { f com-help } { f com-revert } { f com-save } diff --git a/extra/ui/tools/listener/listener-tests.factor b/extra/ui/tools/listener/listener-tests.factor index 62bd350e71..4e59fd63ee 100755 --- a/extra/ui/tools/listener/listener-tests.factor +++ b/extra/ui/tools/listener/listener-tests.factor @@ -1,7 +1,7 @@ USING: continuations documents ui.tools.interactor ui.tools.listener hashtables kernel namespaces parser sequences timers tools.test ui.commands ui.gadgets ui.gadgets.editors -ui.gadgets.panes vocabs words tools.test.ui ui.private ; +ui.gadgets.panes vocabs words tools.test.ui ; IN: temporary timers [ init-timers ] unless diff --git a/extra/ui/tools/operations/operations.factor b/extra/ui/tools/operations/operations.factor index d2d7685f45..b7a59f5c28 100755 --- a/extra/ui/tools/operations/operations.factor +++ b/extra/ui/tools/operations/operations.factor @@ -64,6 +64,7 @@ V{ } clone operations set-global { +keyboard+ T{ key-down f { C+ } "E" } } { +primary+ t } { +secondary+ t } + { +listener+ t } } define-operation UNION: definition word method-spec link ; @@ -72,6 +73,7 @@ UNION: editable-definition definition vocab vocab-link ; [ editable-definition? ] \ edit H{ { +keyboard+ T{ key-down f { C+ } "E" } } + { +listener+ t } } define-operation UNION: reloadable-definition definition pathname ; diff --git a/extra/ui/tools/search/search-tests.factor b/extra/ui/tools/search/search-tests.factor index ed110e19d6..47ae786f59 100755 --- a/extra/ui/tools/search/search-tests.factor +++ b/extra/ui/tools/search/search-tests.factor @@ -1,6 +1,6 @@ USING: assocs ui.tools.search help.topics io.files io.styles kernel namespaces sequences source-files threads timers -tools.test ui.gadgets ui.gestures ui.private vocabs +tools.test ui.gadgets ui.gestures vocabs vocabs.loader words tools.test.ui debugger ; IN: temporary diff --git a/extra/ui/tools/tools-tests.factor b/extra/ui/tools/tools-tests.factor index eb30b198d6..919d1705af 100755 --- a/extra/ui/tools/tools-tests.factor +++ b/extra/ui/tools/tools-tests.factor @@ -2,7 +2,7 @@ USING: ui.tools ui.tools.interactor ui.tools.listener ui.tools.search ui.tools.workspace kernel models namespaces sequences timers tools.test ui.gadgets ui.gadgets.buttons ui.gadgets.labelled ui.gadgets.presentations -ui.gadgets.scrollers vocabs tools.test.ui ui ui.private ; +ui.gadgets.scrollers vocabs tools.test.ui ui ; IN: temporary [ diff --git a/extra/ui/tools/tools.factor b/extra/ui/tools/tools.factor index 4184591cec..8e2eeaa0ba 100755 --- a/extra/ui/tools/tools.factor +++ b/extra/ui/tools/tools.factor @@ -67,11 +67,11 @@ M: workspace model-changed : com-profiler profiler-gadget select-tool ; workspace "tool-switching" f { - { T{ key-down f f "F2" } com-listener } - { T{ key-down f f "F3" } com-browser } - { T{ key-down f f "F4" } com-inspector } - { T{ key-down f f "F5" } com-walker } - { T{ key-down f f "F6" } com-profiler } + { T{ key-down f { A+ } "1" } com-listener } + { T{ key-down f { A+ } "2" } com-browser } + { T{ key-down f { A+ } "3" } com-inspector } + { T{ key-down f { A+ } "4" } com-walker } + { T{ key-down f { A+ } "5" } com-profiler } } define-command-map \ workspace-window @@ -86,8 +86,8 @@ H{ { +nullary+ t } { +listener+ t } } define-command workspace "workflow" f { { T{ key-down f { C+ } "n" } workspace-window } { T{ key-down f f "ESC" } hide-popup } - { T{ key-down f f "F8" } refresh-all } - { T{ key-down f { A+ } "F8" } test-changes } + { T{ key-down f f "F2" } refresh-all } + { T{ key-down f { A+ } "F2" } test-changes } } define-command-map [ diff --git a/extra/ui/tools/walker/walker-tests.factor b/extra/ui/tools/walker/walker-tests.factor index b37c38c6ed..eea6d78f22 100755 --- a/extra/ui/tools/walker/walker-tests.factor +++ b/extra/ui/tools/walker/walker-tests.factor @@ -1,6 +1,6 @@ USING: arrays continuations ui.tools.listener ui.tools.walker ui.tools.workspace inspector kernel namespaces sequences threads -listener tools.test ui ui.gadgets ui.gadgets.worlds ui.private +listener tools.test ui ui.gadgets ui.gadgets.worlds ui.gadgets.packs vectors ui.tools tools.interpreter tools.interpreter.debug tools.test.inference tools.test.ui ; IN: temporary diff --git a/extra/ui/tools/workspace/workspace.factor b/extra/ui/tools/workspace/workspace.factor index 79857fa2e6..b8c41e17cc 100755 --- a/extra/ui/tools/workspace/workspace.factor +++ b/extra/ui/tools/workspace/workspace.factor @@ -2,11 +2,10 @@ ! See http://factorcode.org/license.txt for BSD license. USING: classes continuations help help.topics kernel models sequences ui ui.backend ui.tools.debugger ui.gadgets -ui.gadgets.books ui.gadgets.buttons -ui.gadgets.labelled ui.gadgets.panes ui.gadgets.scrollers -ui.gadgets.tracks ui.gadgets.worlds ui.gadgets.presentations -ui.gadgets.status-bar ui.commands ui.gestures assocs arrays -namespaces ; +ui.gadgets.books ui.gadgets.buttons ui.gadgets.labelled +ui.gadgets.panes ui.gadgets.scrollers ui.gadgets.tracks +ui.gadgets.worlds ui.gadgets.presentations ui.gadgets.status-bar +ui.commands ui.gestures assocs arrays namespaces ; IN: ui.tools.workspace TUPLE: workspace book listener popup ; diff --git a/extra/ui/ui.factor b/extra/ui/ui.factor index 0e1b82ab9b..09c06035b8 100755 --- a/extra/ui/ui.factor +++ b/extra/ui/ui.factor @@ -4,7 +4,7 @@ USING: arrays assocs io kernel math models namespaces prettyprint dlists sequences threads sequences words timers debugger ui.gadgets ui.gadgets.worlds ui.gadgets.tracks ui.gestures ui.backend ui.render continuations init -combinators ; +combinators hashtables ; IN: ui ! Assoc mapping aliens to gadgets @@ -28,8 +28,6 @@ SYMBOL: windows : unregister-window ( handle -- ) windows global [ [ first = not ] curry* subset ] change-at ; - - -: open-world-window ( world -- ) - dup pref-dim over set-gadget-dim dup relayout graft ; - -: open-window ( gadget title -- ) - >r [ 1 track, ] { 0 1 } make-track r> - f open-world-window ; - -: close-window ( gadget -- ) - find-world [ ungraft ] when* ; - : find-window ( quot -- world ) windows get values [ gadget-child swap call ] curry* find-last nip ; inline @@ -90,8 +76,6 @@ SYMBOL: ui-hook \ layout-queue set-global V{ } clone windows set-global ; - - : ui-step ( -- ) [ do-timers notify-queued layout-queued redraw-worlds - 10 sleep ] assert-depth ; +: open-world-window ( world -- ) + dup pref-dim over set-gadget-dim dup relayout graft ui-step ; + +: open-window ( gadget title -- ) + >r [ 1 track, ] { 0 1 } make-track r> + f open-world-window ; + +HOOK: close-window ui-backend ( gadget -- ) + +M: object close-window + find-world [ ungraft ] when* ; + : start-ui ( -- ) init-timers restore-windows? [ diff --git a/extra/ui/windows/windows.factor b/extra/ui/windows/windows.factor index 3ce745970d..9311a1b2a6 100755 --- a/extra/ui/windows/windows.factor +++ b/extra/ui/windows/windows.factor @@ -4,8 +4,8 @@ USING: alien alien.c-types arrays assocs ui ui.gadgets ui.backend ui.clipboards ui.gadgets.worlds ui.gestures io kernel math math.vectors namespaces prettyprint sequences strings vectors words windows.kernel32 windows.gdi32 windows.user32 -windows.opengl32 windows.messages windows.types windows.nt -windows threads timers libc combinators continuations +windows.opengl32 windows.messages windows.types +windows.nt windows threads timers libc combinators continuations command-line shuffle opengl ui.render ; IN: ui.windows @@ -94,8 +94,7 @@ SYMBOL: mouse-captured 3drop window draw-world ; : handle-wm-size ( hWnd uMsg wParam lParam -- ) - [ lo-word ] keep hi-word make-RECT get-RECT-dimensions 2array - 2nip + [ lo-word ] keep hi-word make-RECT get-RECT-dimensions 2array 2nip dup { 0 0 } = [ 2drop ] [ swap window set-gadget-dim ui-step ] if ; : wm-keydown-codes ( -- key ) @@ -211,6 +210,9 @@ SYMBOL: hWnd hWnd get window-focus send-gesture drop ; +: handle-wm-syscommand ( hWnd uMsg wParam lParam -- n ) + dup alpha? [ 4drop 0 ] [ DefWindowProc ] if ; + : cleanup-window ( handle -- ) dup win-title [ free ] when* dup win-hRC wglDeleteContext win32-error=0/f @@ -258,14 +260,12 @@ M: windows-ui-backend (close-window) : prepare-mouse ( hWnd uMsg wParam lParam -- button coordinate world ) nip >r mouse-event>gesture r> >lo-hi rot window ; -: mouse-captured? ( -- ? ) - mouse-captured get ; - : set-capture ( hwnd -- ) mouse-captured get [ drop ] [ - [ SetCapture drop ] keep mouse-captured set + [ SetCapture drop ] keep + mouse-captured set ] if ; : release-capture ( -- ) @@ -277,7 +277,7 @@ M: windows-ui-backend (close-window) prepare-mouse send-button-down ; : handle-wm-buttonup ( hWnd uMsg wParam lParam -- ) - mouse-captured? [ release-capture ] when + mouse-captured get [ release-capture ] when prepare-mouse send-button-up ; : make-TRACKMOUSEEVENT ( hWnd -- alien ) @@ -298,17 +298,17 @@ M: windows-ui-backend (close-window) : handle-wm-cancelmode ( hWnd uMsg wParam lParam -- ) #! message sent if windows needs application to stop dragging - 3drop drop release-capture ; + 4drop release-capture ; : handle-wm-mouseleave ( hWnd uMsg wParam lParam -- ) #! message sent if mouse leaves main application - 3drop drop forget-rollover ; + 4drop forget-rollover ; ! return 0 if you handle the message, else just let DefWindowProc return its val : ui-wndproc ( -- object ) "uint" { "void*" "uint" "long" "long" } "stdcall" [ [ - pick + pick ! global [ dup windows-message-name . ] bind { { [ dup WM_CLOSE = ] [ drop handle-wm-close 0 ] } { [ dup WM_PAINT = ] @@ -323,6 +323,7 @@ M: windows-ui-backend (close-window) { [ dup WM_KEYUP = over WM_SYSKEYUP = or ] [ drop 4dup handle-wm-keyup DefWindowProc ] } + { [ dup WM_SYSCOMMAND = ] [ drop handle-wm-syscommand ] } { [ dup WM_SETFOCUS = ] [ drop handle-wm-set-focus 0 ] } { [ dup WM_KILLFOCUS = ] [ drop handle-wm-kill-focus 0 ] } @@ -348,7 +349,10 @@ M: windows-ui-backend (close-window) : event-loop ( msg -- ) { { [ windows get empty? ] [ drop ] } - { [ dup peek-message? ] [ >r [ ui-step ] ui-try r> event-loop ] } + { [ dup peek-message? ] [ + >r [ ui-step 10 sleep ] ui-try + r> event-loop + ] } { [ dup MSG-message WM_QUIT = ] [ drop ] } { [ t ] [ dup TranslateMessage drop @@ -381,7 +385,7 @@ M: windows-ui-backend (close-window) >r class-name-ptr get-global f r> >r >r >r ex-style r> r> WS_CLIPSIBLINGS WS_CLIPCHILDREN bitor style bitor - 0 0 r> + CW_USEDEFAULT dup r> get-RECT-dimensions f f f GetModuleHandle f CreateWindowEx dup win32-error=0/f ; @@ -397,8 +401,10 @@ M: windows-ui-backend (close-window) GetDoubleClickTime double-click-timeout set-global ; : cleanup-win32-ui ( -- ) - class-name-ptr get-global f UnregisterClass drop - class-name-ptr get-global [ free ] when* + class-name-ptr get-global [ + dup f UnregisterClass drop + free + ] when* f class-name-ptr set-global ; : setup-pixel-format ( hdc -- ) @@ -430,7 +436,7 @@ M: windows-ui-backend flush-gl-context ( handle -- ) ! Move window to front M: windows-ui-backend raise-window ( world -- ) world-handle [ - win-hWnd SetFocus drop release-capture + win-hWnd SetFocus drop ] when* ; M: windows-ui-backend set-title ( string world -- ) diff --git a/extra/ui/x11/x11.factor b/extra/ui/x11/x11.factor index 165989d86a..5984e3decd 100755 --- a/extra/ui/x11/x11.factor +++ b/extra/ui/x11/x11.factor @@ -5,7 +5,7 @@ ui.clipboards ui.gadgets.worlds assocs kernel math namespaces opengl sequences strings x11.xlib x11.events x11.xim x11.glx x11.clipboard x11.constants x11.windows io.utf8 combinators debugger system command-line ui.render math.vectors tuples -opengl.gl ; +opengl.gl threads ; IN: ui.x11 TUPLE: x11-ui-backend ; @@ -158,18 +158,14 @@ M: world selection-request-event { [ t ] [ drop send-notify-failure ] } } cond ; -: close-window ( handle -- ) +M: x11-ui-backend (close-window) ( handle -- ) dup x11-handle-xic XDestroyIC dup x11-handle-glx destroy-glx x11-handle-window dup unregister-window destroy-window ; M: world client-event - swap close-box? [ - dup world-handle >r stop-world r> close-window - ] [ - drop - ] if ; + swap close-box? [ ungraft ] [ drop ] if ; : gadget-window ( world -- ) dup world-loc over rect-dim glx-window @@ -182,7 +178,7 @@ M: world client-event next-event dup None XFilterEvent zero? [ drop wait-event ] unless ] [ - ui-step wait-event + ui-step 10 sleep wait-event ] if ; : do-events ( -- ) @@ -222,7 +218,7 @@ M: x11-ui-backend set-title ( string world -- ) world-handle x11-handle-window swap dpy get -rot 3dup set-title-old set-title-new ; -M: x11-ui-backend (open-world-window) ( world -- ) +M: x11-ui-backend (open-window) ( world -- ) dup gadget-window world-handle x11-handle-window dup set-closable map-window ; diff --git a/extra/units/si/si.factor b/extra/units/si/si.factor index c07ffb8423..9029d6bd35 100644 --- a/extra/units/si/si.factor +++ b/extra/units/si/si.factor @@ -38,8 +38,11 @@ IN: units.si : cd/m^2 { cd } { m m } ; : kg/kg { kg } { kg } ; -: radians ( n -- radian ) { m } { m } ; -: sr ( n -- steradian ) { m m } { m m } ; +! Radians are really m/m, and steradians are m^2/m^2 +! but they need to be in reduced form here. +: radians ( n -- radian ) scalar ; +: sr ( n -- steradian ) scalar ; + : Hz ( n -- hertz ) { } { s } ; : N ( n -- newton ) { kg m } { s s } ; : Pa ( n -- pascal ) { kg } { m s s } ; diff --git a/extra/unix/linux/fs/fs.factor b/extra/unix/linux/fs/fs.factor new file mode 100644 index 0000000000..02fd357ccd --- /dev/null +++ b/extra/unix/linux/fs/fs.factor @@ -0,0 +1,25 @@ + +USING: alien.syntax ; + +IN: unix.linux.fs + +: MS_RDONLY 1 ; ! Mount read-only. +: MS_NOSUID 2 ; ! Ignore suid and sgid bits. +: MS_NODEV 4 ; ! Disallow access to device special files. +: MS_NOEXEC 8 ; ! Disallow program execution. +: MS_SYNCHRONOUS 16 ; ! Writes are synced at once. +: MS_REMOUNT 32 ; ! Alter flags of a mounted FS. +: MS_MANDLOCK 64 ; ! Allow mandatory locks on an FS. +: S_WRITE 128 ; ! Write on file/directory/symlink. +: S_APPEND 256 ; ! Append-only file. +: S_IMMUTABLE 512 ; ! Immutable file. +: MS_NOATIME 1024 ; ! Do not update access times. +: MS_NODIRATIME 2048 ; ! Do not update directory access times. +: MS_BIND 4096 ; ! Bind directory at different place. + +FUNCTION: int mount +( char* special_file, char* dir, char* fstype, ulong options, void* data ) ; + +! FUNCTION: int umount2 ( char* file, int flags ) ; + +FUNCTION: int umount ( char* file ) ; \ No newline at end of file diff --git a/extra/unix/linux/swap/swap.factor b/extra/unix/linux/swap/swap.factor new file mode 100644 index 0000000000..4cafa5723f --- /dev/null +++ b/extra/unix/linux/swap/swap.factor @@ -0,0 +1,12 @@ + +USING: alien.syntax ; + +IN: unix.linux.swap + +: SWAP_FLAG_PREFER HEX: 8000 ; ! Set if swap priority is specified. +: SWAP_FLAG_PRIO_MASK HEX: 7fff ; +: SWAP_FLAG_PRIO_SHIFT 0 ; + +FUNCTION: int swapon ( char* path, int flags ) ; + +FUNCTION: int swapoff ( char* path ) ; \ No newline at end of file diff --git a/extra/unix/process/process.factor b/extra/unix/process/process.factor index 7f06f903ac..a99611aba6 100644 --- a/extra/unix/process/process.factor +++ b/extra/unix/process/process.factor @@ -31,11 +31,23 @@ IN: unix.process ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! This is kludgy. We need a better implementation. +USING: kernel alien.c-types namespaces continuations threads assocs unix + combinators.cleave ; -USE: threads +SYMBOL: pid-wait -: wait-for-pid ( pid -- ) - dup "int" WNOHANG waitpid - 0 = [ 100 sleep wait-for-pid ] [ drop ] if ; +! KEY | VALUE +! ----------- +! pid | continuation +: init-pid-wait ( -- ) H{ } clone pid-wait set-global ; + +: wait-for-pid ( pid -- status ) [ pid-wait get set-at stop ] curry callcc1 ; + +: wait-loop ( -- ) + -1 0 tuck WNOHANG waitpid ! &status return + [ *int ] [ pid-wait get delete-at* drop ] bi* ! status ? + dup [ schedule-thread-with ] [ 2drop ] if + 250 sleep wait-loop ; + +: start-wait-loop ( -- ) init-pid-wait [ wait-loop ] in-thread ; \ No newline at end of file diff --git a/extra/unix/unix.factor b/extra/unix/unix.factor index 0854754dcb..10ff7a9efa 100644 --- a/extra/unix/unix.factor +++ b/extra/unix/unix.factor @@ -166,6 +166,10 @@ FUNCTION: time_t time ( time_t* t ) ; FUNCTION: int unlink ( char* path ) ; FUNCTION: int utimes ( char* path, timeval[2] times ) ; +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +! wait and waitpid +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + ! Flags for waitpid : WNOHANG 1 ; @@ -176,7 +180,27 @@ FUNCTION: int utimes ( char* path, timeval[2] times ) ; : WCONTINUED 8 ; : WNOWAIT HEX: 1000000 ; +! Examining status + +: WTERMSIG ( status -- value ) HEX: 7f bitand ; + +: WIFEXITED ( status -- ? ) WTERMSIG zero? ; + +: WEXITSTATUS ( status -- value ) HEX: ff00 bitand -8 shift ; + +: WIFSIGNALED ( status -- ? ) HEX: 7f bitand 1+ -1 shift 0 > ; + +: WCOREFLAG ( -- value ) HEX: 80 ; + +: WCOREDUMP ( status -- ? ) WCOREFLAG bitand zero? not ; + +: WIFSTOPPED ( status -- ? ) HEX: ff bitand HEX: 7f = ; + +: WSTOPSIG ( status -- value ) WEXITSTATUS ; + FUNCTION: pid_t wait ( int* status ) ; FUNCTION: pid_t waitpid ( pid_t wpid, int* status, int options ) ; +! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + FUNCTION: ssize_t write ( int fd, void* buf, size_t nbytes ) ; diff --git a/extra/webapps/article-manager/article-manager.factor b/extra/webapps/article-manager/article-manager.factor index cb999818d2..66e7faff94 100644 --- a/extra/webapps/article-manager/article-manager.factor +++ b/extra/webapps/article-manager/article-manager.factor @@ -4,12 +4,17 @@ USING: kernel furnace sqlite.tuple-db webapps.article-manager.database sequences namespaces math arrays assocs quotations io.files http.server http.basic-authentication http.server.responders - webapps.file ; + webapps.file html html.elements io ; IN: webapps.article-manager : current-site ( -- site ) host get-site* ; +: render-titled-page* ( model body-template head-template title -- ) + [ + [ render-component ] swap [ write f rot render-component ] curry html-document + ] serve-html ; + TUPLE: template-args arg1 ; C: template-args diff --git a/extra/webapps/article-manager/furnace/article.furnace b/extra/webapps/article-manager/furnace/article.furnace index 41929301a6..c3a19263be 100644 --- a/extra/webapps/article-manager/furnace/article.furnace +++ b/extra/webapps/article-manager/furnace/article.furnace @@ -1,12 +1,12 @@ -<% USING: kernel io http.server namespaces sequences math html.elements random furnace webapps.article-manager webapps.article-manager.database ; %> +<% USING: kernel io http.server namespaces sequences math html.elements random furnace webapps.article-manager webapps.article-manager.database html.elements ; %> - <% f "navigation" render-template %> + <% "navigation" render-template %>
<% 100 random 25 > [ "arg1" get first 100 random 50 > [ site-ad2 ] [ site-ad3 ] if write-html ] when %> <% "arg1" get second article-body write-html %>

Tags

- <% "arg1" get second tags-for-article "tags" render-template %> + <% "arg1" get second tags-for-article "tags" render-component %>
diff --git a/extra/webapps/article-manager/furnace/index.furnace b/extra/webapps/article-manager/furnace/index.furnace index ae8963c3b0..da48d324cc 100644 --- a/extra/webapps/article-manager/furnace/index.furnace +++ b/extra/webapps/article-manager/furnace/index.furnace @@ -6,7 +6,7 @@ - <% f "navigation" render-template %> + <% "navigation" render-template %>
<% "intro" get write-html %>

Recent Articles

@@ -23,7 +23,7 @@ but in the meantime, Google is likely to provide reasonable results.

- <% host all-tags "tags" render-template %> + <% host all-tags "tags" render-component %>
diff --git a/extra/webapps/article-manager/furnace/navigation.furnace b/extra/webapps/article-manager/furnace/navigation.furnace index 33fb29914e..b42a384ca1 100644 --- a/extra/webapps/article-manager/furnace/navigation.furnace +++ b/extra/webapps/article-manager/furnace/navigation.furnace @@ -5,5 +5,5 @@ <% current-site site-ad1 write-html %>

Tags

- <% host all-tags "tags" render-template %> + <% host all-tags "tags" render-component %> diff --git a/extra/webapps/article-manager/furnace/tag.furnace b/extra/webapps/article-manager/furnace/tag.furnace index 493ce2e613..4e04196097 100644 --- a/extra/webapps/article-manager/furnace/tag.furnace +++ b/extra/webapps/article-manager/furnace/tag.furnace @@ -1,7 +1,7 @@ -<% USING: kernel io http.server namespaces sequences math html furnace webapps.article-manager.database webapps.article-manager ; %> +<% USING: kernel io http.server namespaces sequences math html furnace webapps.article-manager.database webapps.article-manager html.elements ; %> - <% f "navigation" render-template %> + <% "navigation" render-component %>

<% "arg1" get second tag-title write %>

<% "arg1" get second tag-description write-html %> diff --git a/extra/webapps/file/file.factor b/extra/webapps/file/file.factor old mode 100644 new mode 100755 index d8fec990db..3a8feddbad --- a/extra/webapps/file/file.factor +++ b/extra/webapps/file/file.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2004, 2006 Slava Pestov. +! Copyright (C) 2004, 2007 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: calendar html io io.files kernel math math.parser http.server.responders http.server.templating namespaces parser @@ -31,15 +31,23 @@ IN: webapps.file "304 Not Modified" response now timestamp>http-string "Date" associate print-header ; +! You can override how files are served in a custom responder +SYMBOL: serve-file-hook + +[ + file-response + stdio get stream-copy +] serve-file-hook set-global + : serve-static ( filename mime-type -- ) over last-modified-matches? [ 2drop not-modified-response ] [ - dupd file-response "method" get "head" = [ - drop + file-response ] [ - stdio get stream-copy + >r dup swap r> + serve-file-hook get call ] if ] if ; @@ -53,9 +61,13 @@ SYMBOL: page : include-page ( filename -- ) "doc-root" get swap path+ run-page ; +: serve-fhtml ( filename -- ) + serving-html + "method" get "head" = [ drop ] [ run-page ] if ; + : serve-file ( filename -- ) dup mime-type dup "application/x-factor-server-page" = - [ drop serving-html run-page ] [ serve-static ] if ; + [ drop serve-fhtml ] [ serve-static ] if ; : file. ( name dirp -- ) [ "/" append ] when @@ -107,7 +119,7 @@ SYMBOL: page global [ ! Serve up our own source code - "resources" [ + "resources" [ [ "" resource-path "doc-root" set file-responder diff --git a/extra/webapps/fjsc/fjsc.factor b/extra/webapps/fjsc/fjsc.factor old mode 100644 new mode 100755 index 2a5bb94e30..b21e91bc8f --- a/extra/webapps/fjsc/fjsc.factor +++ b/extra/webapps/fjsc/fjsc.factor @@ -2,24 +2,24 @@ ! See http://factorcode.org/license.txt for BSD license. ! USING: kernel furnace fjsc parser-combinators namespaces - lazy-lists io io.files furnace.validator sequences - http.client http.server http.server.responders - webapps.file ; + lazy-lists io io.files furnace.validator sequences + http.client http.server http.server.responders + webapps.file html ; IN: webapps.fjsc : compile ( code -- ) #! Compile the factor code as a string, outputting the http #! response containing the javascript. serving-text - 'expression' parse car parse-result-parsed fjsc-compile + 'expression' parse-1 fjsc-compile write flush ; ! The 'compile' action results in an URL that looks like -! 'responder/fjsc/compile'. It takes one query or post +! 'responder/fjsc/compile'. It takes one query or post ! parameter called 'code'. It calls the 'compile' word ! passing the parameter to it on the stack. -\ compile { - { "code" v-required } +\ compile { + { "code" v-required } } define-action : compile-url ( url -- ) @@ -28,18 +28,23 @@ IN: webapps.fjsc "http://" host rot 3append http-get 2nip compile "();" write flush ; \ compile-url { - { "url" v-required } + { "url" v-required } } define-action +: render-page* ( model body-template head-template -- ) + [ + [ render-component ] [ f rot render-component ] html-document + ] serve-html ; + : repl ( -- ) #! The main 'repl' page. f "repl" "head" render-page* ; -! An action called 'repl' +! An action called 'repl' \ repl { } define-action : fjsc-web-app ( -- ) - ! Create the web app, providing access + ! Create the web app, providing access ! under '/responder/fjsc' which calls the ! 'repl' action. "fjsc" "repl" "extra/webapps/fjsc" web-app diff --git a/extra/webapps/help/help.factor b/extra/webapps/help/help.factor index 8456e499f1..145df4119a 100644 --- a/extra/webapps/help/help.factor +++ b/extra/webapps/help/help.factor @@ -82,4 +82,4 @@ PREDICATE: pathname resource-pathname M: resource-pathname browser-link-href pathname-string "resource:" ?head drop - "/responder/resources/" swap append ; + "/responder/source/" swap append ; diff --git a/extra/webapps/pastebin/annotate-paste.furnace b/extra/webapps/pastebin/annotate-paste.furnace old mode 100644 new mode 100755 index c963e2f88f..abb5cc3d07 --- a/extra/webapps/pastebin/annotate-paste.furnace +++ b/extra/webapps/pastebin/annotate-paste.furnace @@ -1,4 +1,4 @@ -<% USING: io math math.parser namespaces ; %> +<% USING: io math math.parser namespaces furnace ; %>

Annotate

@@ -9,17 +9,22 @@ string write %>" /> -Your name: - - - - -Summary: +Summary: -Contents: +Your name: + + + + +File type: +<% "modes" render-template %> + + + +Content: diff --git a/extra/webapps/pastebin/annotation.furnace b/extra/webapps/pastebin/annotation.furnace old mode 100644 new mode 100755 index ed1bdac845..791905197e --- a/extra/webapps/pastebin/annotation.furnace +++ b/extra/webapps/pastebin/annotation.furnace @@ -1,11 +1,11 @@ -<% USING: namespaces io ; %> +<% USING: namespaces io furnace calendar ; %>

Annotation: <% "summary" get write %>

- +
Annotation by:<% "author" get write %>
Channel:<% "channel" get write %>
Created:<% "date" get write %>
Created:<% "date" get timestamp>string write %>
-
<% "contents" get write %>
+<% "syntax" render-template %> diff --git a/extra/webapps/pastebin/footer.furnace b/extra/webapps/pastebin/footer.furnace new file mode 100644 index 0000000000..15b90110a0 --- /dev/null +++ b/extra/webapps/pastebin/footer.furnace @@ -0,0 +1,3 @@ + + + diff --git a/extra/webapps/pastebin/header.furnace b/extra/webapps/pastebin/header.furnace new file mode 100644 index 0000000000..2c8e79a18d --- /dev/null +++ b/extra/webapps/pastebin/header.furnace @@ -0,0 +1,23 @@ +<% USING: namespaces io furnace sequences xmode.code2html webapps.pastebin ; %> + + + + + + + + <% "title" get write %> + + <% default-stylesheet %> + + + + + + +

<% "title" get write %>

diff --git a/extra/webapps/pastebin/modes.furnace b/extra/webapps/pastebin/modes.furnace new file mode 100644 index 0000000000..960b7d4e27 --- /dev/null +++ b/extra/webapps/pastebin/modes.furnace @@ -0,0 +1,7 @@ +<% USING: xmode.catalog sequences kernel html.elements assocs io sorting ; %> + + diff --git a/extra/webapps/pastebin/new-paste.furnace b/extra/webapps/pastebin/new-paste.furnace old mode 100644 new mode 100755 index 8a2544e801..8f48f670d3 --- a/extra/webapps/pastebin/new-paste.furnace +++ b/extra/webapps/pastebin/new-paste.furnace @@ -1,27 +1,43 @@ +<% USING: furnace namespaces ; %> + +<% + "New paste" "title" set + "header" render-template +%> +
- - - - - - + - - + + - + + + + + + + +
Your name:
Summary:Summary:
Channel:Your name:
Contents:File type:<% "modes" render-template %>
Content:
+ +<% "footer" render-template %> diff --git a/extra/webapps/pastebin/paste-list.furnace b/extra/webapps/pastebin/paste-list.furnace index 7a25ae2f50..da2d1add9c 100644 --- a/extra/webapps/pastebin/paste-list.furnace +++ b/extra/webapps/pastebin/paste-list.furnace @@ -1,7 +1,31 @@ <% USING: namespaces furnace sequences ; %> - -<% "new-paste-quot" get "New paste" render-link %> - -<% "pastes" get [ "paste-summary" render-template ] each %>
 Summary:Paste by:LinkDate
+<% + "Pastebin" "title" set + "header" render-template +%> + + + + + +
+ + + + + + + <% "pastes" get [ "paste-summary" render-component ] each %> +
Summary:Paste by:Date:
+
+

This pastebin is written in Factor. It is inspired by lisppaste. +

+

It can be used for collaborative development over IRC. You can post code for review, and annotate other people's code. Syntax highlighting for over a hundred file types is supported. +

+

+ <% "webapps.pastebin" browse-webapp-source %>

+
+ +<% "footer" render-template %> diff --git a/extra/webapps/pastebin/paste-summary.furnace b/extra/webapps/pastebin/paste-summary.furnace index f5c156a27e..dc25fe1924 100644 --- a/extra/webapps/pastebin/paste-summary.furnace +++ b/extra/webapps/pastebin/paste-summary.furnace @@ -1,9 +1,12 @@ -<% USING: continuations namespaces io kernel math math.parser furnace ; %> +<% USING: continuations namespaces io kernel math math.parser +furnace webapps.pastebin calendar sequences ; %> -<% "n" get number>string write %> -<% "summary" get write %> -<% "author" get write %> -<% "n" get number>string "show-paste-quot" get curry "Show" render-link %> -<% "date" get print %> + + + <% "summary" get write %> + + + <% "author" get write %> + <% "date" get timestamp>string write %> diff --git a/extra/webapps/pastebin/pastebin.factor b/extra/webapps/pastebin/pastebin.factor old mode 100644 new mode 100755 index f592f96448..7ea98b8ba1 --- a/extra/webapps/pastebin/pastebin.factor +++ b/extra/webapps/pastebin/pastebin.factor @@ -1,5 +1,6 @@ -USING: calendar furnace furnace.validator io.files kernel namespaces -sequences store ; +USING: calendar furnace furnace.validator io.files kernel +namespaces sequences store http.server.responders html +math.parser rss xml.writer ; IN: webapps.pastebin TUPLE: pastebin pastes ; @@ -7,87 +8,109 @@ TUPLE: pastebin pastes ; : ( -- pastebin ) V{ } clone pastebin construct-boa ; -TUPLE: paste n summary article author channel contents date annotations ; +! Persistence +SYMBOL: store -: ( summary author channel contents -- paste ) - V{ } clone - { - set-paste-summary - set-paste-author - set-paste-channel - set-paste-contents - set-paste-annotations - } paste construct ; +"pastebin.store" store define-store + pastebin store init-persistent -TUPLE: annotation summary author contents ; +TUPLE: paste +summary author channel mode contents date +annotations n ; + +: ( summary author channel mode contents -- paste ) + f V{ } clone f paste construct-boa ; + +TUPLE: annotation summary author mode contents ; C: annotation - -SYMBOL: store - -"pastebin.store" resource-path load-store store set-global - - \ pastebin store get store-variable +: get-pastebin ( -- pastebin ) + pastebin store get-persistent ; : get-paste ( n -- paste ) - pastebin get pastebin-pastes nth ; + get-pastebin pastebin-pastes nth ; : show-paste ( n -- ) - get-paste "show-paste" "Paste" render-page ; + serving-html + get-paste + [ "show-paste" render-component ] with-html-stream ; \ show-paste { { "n" v-number } } define-action : new-paste ( -- ) - f "new-paste" "New paste" render-page ; + serving-html + [ "new-paste" render-template ] with-html-stream ; \ new-paste { } define-action : paste-list ( -- ) + serving-html [ [ show-paste ] "show-paste-quot" set [ new-paste ] "new-paste-quot" set - pastebin get "paste-list" "Pastebin" render-page - ] with-scope ; + get-pastebin "paste-list" render-component + ] with-html-stream ; \ paste-list { } define-action +: paste-link ( paste -- link ) + paste-n number>string [ show-paste ] curry quot-link ; +: paste-feed ( -- entries ) + get-pastebin pastebin-pastes [ + { + paste-summary + paste-link + paste-date + } get-slots timestamp>rfc3339 f swap + ] map ; -: save-pastebin-store ( -- ) - store get-global save-store ; +: feed.xml ( -- ) + "text/xml" serving-content + "pastebin" + "http://pastebin.factorcode.org" + paste-feed feed>xml write-xml ; + +\ feed.xml { } define-action : add-paste ( paste pastebin -- ) - >r now timestamp>http-string over set-paste-date r> - pastebin-pastes - [ length over set-paste-n ] keep push ; + >r now over set-paste-date r> + pastebin-pastes 2dup length swap set-paste-n push ; -: submit-paste ( summary author channel contents -- ) - - \ pastebin get-global add-paste - save-pastebin-store ; +: submit-paste ( summary author channel mode contents -- ) + [ + pastebin store get-persistent add-paste + store save-store + ] keep paste-link permanent-redirect ; \ submit-paste { - { "summary" v-required } - { "author" v-required } + { "summary" "- no summary -" v-default } + { "author" "- no author -" v-default } { "channel" "#concatenative" v-default } + { "mode" "factor" v-default } { "contents" v-required } } define-action -\ submit-paste [ paste-list ] define-redirect - -: annotate-paste ( n summary author contents -- ) +: annotate-paste ( n summary author mode contents -- ) swap get-paste paste-annotations push - save-pastebin-store ; + store save-store ; \ annotate-paste { { "n" v-required v-number } - { "summary" v-required } + { "summary" "- no summary -" v-default } { "author" v-required } + { "mode" "factor" v-default } { "contents" v-required } } define-action \ annotate-paste [ "n" show-paste ] define-redirect +: style.css ( -- ) + "text/css" serving-content + "style.css" send-resource ; + +\ style.css { } define-action + "pastebin" "paste-list" "extra/webapps/pastebin" web-app diff --git a/extra/webapps/pastebin/show-paste.furnace b/extra/webapps/pastebin/show-paste.furnace old mode 100644 new mode 100755 index b3b4e99b6e..30129eda24 --- a/extra/webapps/pastebin/show-paste.furnace +++ b/extra/webapps/pastebin/show-paste.furnace @@ -1,15 +1,21 @@ -<% USING: namespaces io furnace sequences ; %> +<% USING: namespaces io furnace sequences xmode.code2html calendar ; %> -

Paste: <% "summary" get write %>

+<% + "Paste: " "summary" get append "title" set + "header" render-template +%> - - + + +
Paste by:<% "author" get write %>
Channel:<% "channel" get write %>
Created:<% "date" get write %>
Created:<% "date" get timestamp>string write %>
File type:<% "mode" get write %>
-
<% "contents" get write %>
+<% "syntax" render-template %> -<% "annotations" get [ "annotation" render-template ] each %> +<% "annotations" get [ "annotation" render-component ] each %> -<% model get "annotate-paste" render-template %> +<% model get "annotate-paste" render-component %> + +<% "footer" render-template %> diff --git a/extra/webapps/pastebin/style.css b/extra/webapps/pastebin/style.css new file mode 100644 index 0000000000..e3c7c19fc5 --- /dev/null +++ b/extra/webapps/pastebin/style.css @@ -0,0 +1,37 @@ +body { + font:75%/1.6em "Lucida Grande", "Lucida Sans Unicode", verdana, geneva, sans-serif; + color:#888; +} + +h1.pastebin-title { + font-size:300%; +} + +a { + color:#222; + border-bottom:1px dotted #ccc; + text-decoration:none; +} + +a:hover { + border-bottom:1px solid #ccc; +} + +pre.code { + border:1px dashed #ccc; + background-color:#f5f5f5; + padding:5px; + font-size:150%; + color:#000000; +} + +.navbar { + background-color:#eeeeee; + padding:5px; + border:1px solid #ccc; +} + +.infobox { + border: 1px solid #C1DAD7; + padding: 10px; +} diff --git a/extra/webapps/pastebin/syntax.furnace b/extra/webapps/pastebin/syntax.furnace new file mode 100755 index 0000000000..17b64b920b --- /dev/null +++ b/extra/webapps/pastebin/syntax.furnace @@ -0,0 +1,3 @@ +<% USING: xmode.code2html splitting namespaces ; %> + +
<% "contents" get string-lines "mode" get htmlize-lines %>
diff --git a/extra/webapps/planet/planet.factor b/extra/webapps/planet/planet.factor index 3abb42ecf1..75440816be 100644 --- a/extra/webapps/planet/planet.factor +++ b/extra/webapps/planet/planet.factor @@ -1,41 +1,14 @@ USING: sequences rss arrays concurrency kernel sorting html.elements io assocs namespaces math threads vocabs html furnace http.server.templating calendar math.parser splitting -continuations debugger system http.server.responders ; +continuations debugger system http.server.responders +xml.writer ; IN: webapps.planet -TUPLE: posting author title date link body ; - -: diagnostic write print flush ; - -: fetch-feed ( pair -- feed ) - second - dup "Fetching " diagnostic - dup news-get feed-entries - swap "Done fetching " diagnostic ; - -: fetch-blogroll ( blogroll -- entries ) - #! entries is an array of { author entries } pairs. - dup [ - [ fetch-feed ] [ error. drop f ] recover - ] parallel-map [ ] subset - [ [ >r first r> 2array ] curry* map ] 2map concat ; - -: sort-entries ( entries -- entries' ) - [ [ second entry-pub-date ] compare ] sort ; - -: ( pair -- posting ) - #! pair has shape { author entry } - first2 - { entry-title entry-pub-date entry-link entry-description } - get-slots posting construct-boa ; - : print-posting-summary ( posting -- )

- dup posting-title write
- "- " write - dup posting-author write bl - + dup entry-title write
+
"Read More..." write

; @@ -51,69 +24,86 @@ TUPLE: posting author title date link body ; ; : format-date ( date -- string ) - 10 head "-" split [ string>number ] map - first3 0 0 0 0 - [ - dup timestamp-day # - " " % - dup timestamp-month month-abbreviations nth % - ", " % - timestamp-year # - ] "" make ; + rfc3339>timestamp timestamp>string ; : print-posting ( posting -- )

- - dup posting-title write-html - " - " write - dup posting-author write + + dup entry-title write-html

-

dup posting-body write-html

-

posting-date format-date write

; +

+ dup entry-description write-html +

+

+ entry-pub-date format-date write +

; : print-postings ( postings -- ) [ print-posting ] each ; -: browse-webapp-source ( vocab -- ) - vocab-link browser-link-href =href a> - "Browse source" write - ; - SYMBOL: default-blogroll SYMBOL: cached-postings -: update-cached-postings ( -- ) - default-blogroll get fetch-blogroll sort-entries - [ ] map - cached-postings set-global ; +: safe-head ( seq n -- seq' ) + over length min head ; : mini-planet-factor ( -- ) - cached-postings get 4 head print-posting-summaries ; + cached-postings get 4 safe-head print-posting-summaries ; : planet-factor ( -- ) - serving-html [ - "resource:extra/webapps/planet/planet.fhtml" - run-template-file - ] with-html-stream ; + serving-html [ "planet" render-template ] with-html-stream ; \ planet-factor { } define-action -{ - { "Berlin Brown" "http://factorlang-fornovices.blogspot.com/feeds/posts/default" "http://factorlang-fornovices.blogspot.com" } - { "Chris Double" "http://www.bluishcoder.co.nz/atom.xml" "http://www.bluishcoder.co.nz/" } - { "Elie Chaftari" "http://fun-factor.blogspot.com/feeds/posts/default" "http://fun-factor.blogspot.com/" } - { "Doug Coleman" "http://code-factor.blogspot.com/feeds/posts/default" "http://code-factor.blogspot.com/" } - { "Daniel Ehrenberg" "http://useless-factor.blogspot.com/feeds/posts/default" "http://useless-factor.blogspot.com/" } - { "Kio M. Smallwood" - "http://sekenre.wordpress.com/feed/atom/" - "http://sekenre.wordpress.com/" } - { "Samuel Tardieu" "http://www.rfc1149.net/blog/tag/factor/feed/atom/" "http://www.rfc1149.net/blog/tag/factor/" } - { "Slava Pestov" "http://factor-language.blogspot.com/atom.xml" "http://factor-language.blogspot.com/" } -} default-blogroll set-global +: planet-feed ( -- feed ) + "[ planet-factor ]" + "http://planet.factorcode.org" + cached-postings get 30 safe-head ; + +: feed.xml ( -- ) + "text/xml" serving-content + planet-feed feed>xml write-xml ; + +\ feed.xml { } define-action + +: style.css ( -- ) + "text/css" serving-content + "style.css" send-resource ; + +\ style.css { } define-action SYMBOL: last-update +: diagnostic write print flush ; + +: fetch-feed ( triple -- feed ) + second + dup "Fetching " diagnostic + dup download-feed feed-entries + swap "Done fetching " diagnostic ; + +: ( author entry -- entry' ) + clone + [ ": " swap entry-title 3append ] keep + [ set-entry-title ] keep ; + +: ?fetch-feed ( triple -- feed/f ) + [ fetch-feed ] [ error. drop f ] recover ; + +: fetch-blogroll ( blogroll -- entries ) + dup 0 + swap [ ?fetch-feed ] parallel-map + [ [ ] curry* map ] 2map concat ; + +: sort-entries ( entries -- entries' ) + [ [ entry-pub-date ] compare ] sort ; + +: update-cached-postings ( -- ) + default-blogroll get + fetch-blogroll sort-entries + cached-postings set-global ; + : update-thread ( -- ) millis last-update set-global [ update-cached-postings ] in-thread @@ -124,3 +114,18 @@ SYMBOL: last-update [ update-thread ] in-thread ; "planet" "planet-factor" "extra/webapps/planet" web-app + +{ + { "Berlin Brown" "http://factorlang-fornovices.blogspot.com/feeds/posts/default" "http://factorlang-fornovices.blogspot.com" } + { "Chris Double" "http://www.blogger.com/feeds/18561009/posts/full/-/factor" "http://www.bluishcoder.co.nz/" } + { "Elie Chaftari" "http://fun-factor.blogspot.com/feeds/posts/default" "http://fun-factor.blogspot.com/" } + { "Doug Coleman" "http://code-factor.blogspot.com/feeds/posts/default" "http://code-factor.blogspot.com/" } + { "Daniel Ehrenberg" "http://useless-factor.blogspot.com/feeds/posts/default" "http://useless-factor.blogspot.com/" } + { "Gavin Harrison" "http://gmh33.blogspot.com/feeds/posts/default" "http://gmh33.blogspot.com/" } + { "Kio M. Smallwood" + "http://sekenre.wordpress.com/feed/atom/" + "http://sekenre.wordpress.com/" } + { "Phil Dawes" "http://www.phildawes.net/blog/category/factor/feed/atom" "http://www.phildawes.net/blog/" } + { "Samuel Tardieu" "http://www.rfc1149.net/blog/tag/factor/feed/atom/" "http://www.rfc1149.net/blog/tag/factor/" } + { "Slava Pestov" "http://factor-language.blogspot.com/atom.xml" "http://factor-language.blogspot.com/" } +} default-blogroll set-global diff --git a/extra/webapps/planet/planet.fhtml b/extra/webapps/planet/planet.furnace similarity index 69% rename from extra/webapps/planet/planet.fhtml rename to extra/webapps/planet/planet.furnace index fb5a673077..4c6676c0a2 100644 --- a/extra/webapps/planet/planet.fhtml +++ b/extra/webapps/planet/planet.furnace @@ -1,4 +1,5 @@ -<% USING: namespaces html.elements webapps.planet sequences ; %> +<% USING: namespaces html.elements webapps.planet sequences +furnace ; %> @@ -8,14 +9,15 @@ planet-factor - + +

[ planet-factor ]

- +
<% cached-postings get 20 head print-postings %> <% cached-postings get 20 safe-head print-postings %>

planet-factor is an Atom/RSS aggregator that collects the @@ -23,7 +25,11 @@ Planet Lisp.

- This webapp is written in Factor. + + Syndicate +

+

+ This webapp is written in Factor.
<% "webapps.planet" browse-webapp-source %>

Blogroll

diff --git a/extra/webapps/planet/style.css b/extra/webapps/planet/style.css new file mode 100644 index 0000000000..7a66d8d495 --- /dev/null +++ b/extra/webapps/planet/style.css @@ -0,0 +1,45 @@ +body { + font:75%/1.6em "Lucida Grande", "Lucida Sans Unicode", verdana, geneva, sans-serif; + color:#888; +} + +h1.planet-title { + font-size:300%; +} + +a { + color:#222; + border-bottom:1px dotted #ccc; + text-decoration:none; +} + +a:hover { + border-bottom:1px solid #ccc; +} + +.posting-title { + background-color:#f5f5f5; +} + +pre, code { + color:#000000; + font-size:120%; +} + +.infobox { + border-left: 1px solid #C1DAD7; +} + +.posting-date { + text-align: right; + font-size:90%; +} + +a.more { + display:block; + padding:0 0 5px 0; + color:#333; + text-decoration:none; + text-align:right; + border:none; +} diff --git a/extra/webapps/source/source.factor b/extra/webapps/source/source.factor new file mode 100755 index 0000000000..efc46c68b7 --- /dev/null +++ b/extra/webapps/source/source.factor @@ -0,0 +1,20 @@ +! Copyright (C) 2007 Slava Pestov. +! See http://factorcode.org/license.txt for BSD license. +USING: io.files namespaces webapps.file http.server.responders +xmode.code2html kernel html ; +IN: webapps.source + +global [ + ! Serve up our own source code + "source" [ + [ + "" resource-path "doc-root" set + [ + drop + serving-html + [ swap htmlize-stream ] with-html-stream + ] serve-file-hook set + file-responder + ] with-scope + ] add-simple-responder +] bind diff --git a/extra/windows/kernel32/kernel32.factor b/extra/windows/kernel32/kernel32.factor index 8776378929..5e0f4ddc65 100755 --- a/extra/windows/kernel32/kernel32.factor +++ b/extra/windows/kernel32/kernel32.factor @@ -566,7 +566,8 @@ FUNCTION: BOOL ConnectNamedPipe ( HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped ) ! FUNCTION: CopyFileA ! FUNCTION: CopyFileExA ! FUNCTION: CopyFileExW -! FUNCTION: CopyFileW +FUNCTION: BOOL CopyFileW ( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists ) ; +: CopyFile CopyFileW ; inline ! FUNCTION: CopyLZFile ! FUNCTION: CreateActCtxA ! FUNCTION: CreateActCtxW @@ -575,7 +576,7 @@ FUNCTION: BOOL ConnectNamedPipe ( HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped ) ! FUNCTION: CreateDirectoryExA ! FUNCTION: CreateDirectoryExW FUNCTION: BOOL CreateDirectoryW ( LPCTSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttribytes ) ; -: CreateDirectory CreateDirectoryW ; +: CreateDirectory CreateDirectoryW ; inline ! FUNCTION: CreateEventA ! FUNCTION: CreateEventW @@ -1009,7 +1010,8 @@ FUNCTION: HANDLE GetStdHandle ( DWORD nStdHandle ) ; ! FUNCTION: GetSystemDefaultLCID ! FUNCTION: GetSystemDefaultUILanguage ! FUNCTION: GetSystemDirectoryA -! FUNCTION: GetSystemDirectoryW +FUNCTION: UINT GetSystemDirectoryW ( LPTSTR lpBuffer, UINT uSize ) ; +: GetSystemDirectory GetSystemDirectoryW ; inline FUNCTION: void GetSystemInfo ( LPSYSTEM_INFO lpSystemInfo ) ; ! FUNCTION: GetSystemPowerStatus ! FUNCTION: GetSystemRegistryQuota @@ -1018,7 +1020,8 @@ FUNCTION: void GetSystemTime ( LPSYSTEMTIME lpSystemTime ) ; FUNCTION: void GetSystemTimeAsFileTime ( LPFILETIME lpSystemTimeAsFileTime ) ; ! FUNCTION: GetSystemTimes ! FUNCTION: GetSystemWindowsDirectoryA -! FUNCTION: GetSystemWindowsDirectoryW +FUNCTION: UINT GetSystemWindowsDirectoryW ( LPTSTR lpBuffer, UINT uSize ) ; +: GetSystemWindowsDirectory GetSystemWindowsDirectoryW ; inline ! FUNCTION: GetSystemWow64DirectoryA ! FUNCTION: GetSystemWow64DirectoryW ! FUNCTION: GetTapeParameters @@ -1056,7 +1059,8 @@ FUNCTION: BOOL GetVersionExW ( LPOSVERSIONINFO lpVersionInfo ) ; ! FUNCTION: GetVolumePathNamesForVolumeNameW ! FUNCTION: GetVolumePathNameW ! FUNCTION: GetWindowsDirectoryA -! FUNCTION: GetWindowsDirectoryW +FUNCTION: UINT GetWindowsDirectoryW ( LPTSTR lpBuffer, UINT uSize ) ; +: GetWindowsDirectory GetWindowsDirectoryW ; inline ! FUNCTION: GetWriteWatch ! FUNCTION: GlobalAddAtomA ! FUNCTION: GlobalAddAtomW diff --git a/extra/windows/messages/messages.factor b/extra/windows/messages/messages.factor index bc8fe0f0ce..5e19f3bf0d 100644 --- a/extra/windows/messages/messages.factor +++ b/extra/windows/messages/messages.factor @@ -13,7 +13,7 @@ SYMBOL: windows-messages word [ word-name ] keep execute maybe-create-windows-messages windows-messages get set-at ; parsing -: get-windows-message-name ( n -- name ) +: windows-message-name ( n -- name ) windows-messages get at* [ drop "unknown message" ] unless ; : WM_NULL HEX: 0000 ; inline add-windows-message @@ -107,6 +107,8 @@ SYMBOL: windows-messages : WM_NCXBUTTONDOWN HEX: 00AB ; inline add-windows-message : WM_NCXBUTTONUP HEX: 00AC ; inline add-windows-message : WM_NCXBUTTONDBLCLK HEX: 00AD ; inline add-windows-message +: WM_NCUAHDRAWCAPTION HEX: 00AE ; inline add-windows-message ! undocumented +: WM_NCUAHDRAWFRAME HEX: 00AF ; inline add-windows-message ! undocumented : WM_INPUT HEX: 00FF ; inline add-windows-message : WM_KEYFIRST HEX: 0100 ; inline add-windows-message : WM_KEYDOWN HEX: 0100 ; inline add-windows-message diff --git a/extra/windows/nt/nt.factor b/extra/windows/nt/nt.factor index d9e8f58cc2..8a709416d8 100644 --- a/extra/windows/nt/nt.factor +++ b/extra/windows/nt/nt.factor @@ -6,6 +6,7 @@ USING: alien sequences ; { "kernel32" "kernel32.dll" "stdcall" } { "winsock" "ws2_32.dll" "stdcall" } { "mswsock" "mswsock.dll" "stdcall" } + { "shell32" "shell32.dll" "stdcall" } { "libc" "msvcrt.dll" "cdecl" } { "libm" "msvcrt.dll" "cdecl" } { "gl" "opengl32.dll" "stdcall" } diff --git a/extra/windows/shell32/shell32.factor b/extra/windows/shell32/shell32.factor new file mode 100644 index 0000000000..501f49edfe --- /dev/null +++ b/extra/windows/shell32/shell32.factor @@ -0,0 +1,132 @@ +USING: alien alien.c-types alien.syntax combinators +kernel windows windows.user32 ; +IN: windows.shell32 + +: CSIDL_DESKTOP HEX: 00 ; inline +: CSIDL_INTERNET HEX: 01 ; inline +: CSIDL_PROGRAMS HEX: 02 ; inline +: CSIDL_CONTROLS HEX: 03 ; inline +: CSIDL_PRINTERS HEX: 04 ; inline +: CSIDL_PERSONAL HEX: 05 ; inline +: CSIDL_FAVORITES HEX: 06 ; inline +: CSIDL_STARTUP HEX: 07 ; inline +: CSIDL_RECENT HEX: 08 ; inline +: CSIDL_SENDTO HEX: 09 ; inline +: CSIDL_BITBUCKET HEX: 0a ; inline +: CSIDL_STARTMENU HEX: 0b ; inline +: CSIDL_MYDOCUMENTS HEX: 0c ; inline +: CSIDL_MYMUSIC HEX: 0d ; inline +: CSIDL_MYVIDEO HEX: 0e ; inline +: CSIDL_DESKTOPDIRECTORY HEX: 10 ; inline +: CSIDL_DRIVES HEX: 11 ; inline +: CSIDL_NETWORK HEX: 12 ; inline +: CSIDL_NETHOOD HEX: 13 ; inline +: CSIDL_FONTS HEX: 14 ; inline +: CSIDL_TEMPLATES HEX: 15 ; inline +: CSIDL_COMMON_STARTMENU HEX: 16 ; inline +: CSIDL_COMMON_PROGRAMS HEX: 17 ; inline +: CSIDL_COMMON_STARTUP HEX: 18 ; inline +: CSIDL_COMMON_DESKTOPDIRECTORY HEX: 19 ; inline +: CSIDL_APPDATA HEX: 1a ; inline +: CSIDL_PRINTHOOD HEX: 1b ; inline +: CSIDL_LOCAL_APPDATA HEX: 1c ; inline +: CSIDL_ALTSTARTUP HEX: 1d ; inline +: CSIDL_COMMON_ALTSTARTUP HEX: 1e ; inline +: CSIDL_COMMON_FAVORITES HEX: 1f ; inline +: CSIDL_INTERNET_CACHE HEX: 20 ; inline +: CSIDL_COOKIES HEX: 21 ; inline +: CSIDL_HISTORY HEX: 22 ; inline +: CSIDL_COMMON_APPDATA HEX: 23 ; inline +: CSIDL_WINDOWS HEX: 24 ; inline +: CSIDL_SYSTEM HEX: 25 ; inline +: CSIDL_PROGRAM_FILES HEX: 26 ; inline +: CSIDL_MYPICTURES HEX: 27 ; inline +: CSIDL_PROFILE HEX: 28 ; inline +: CSIDL_SYSTEMX86 HEX: 29 ; inline +: CSIDL_PROGRAM_FILESX86 HEX: 2a ; inline +: CSIDL_PROGRAM_FILES_COMMON HEX: 2b ; inline +: CSIDL_PROGRAM_FILES_COMMONX86 HEX: 2c ; inline +: CSIDL_COMMON_TEMPLATES HEX: 2d ; inline +: CSIDL_COMMON_DOCUMENTS HEX: 2e ; inline +: CSIDL_COMMON_ADMINTOOLS HEX: 2f ; inline +: CSIDL_ADMINTOOLS HEX: 30 ; inline +: CSIDL_CONNECTIONS HEX: 31 ; inline +: CSIDL_COMMON_MUSIC HEX: 35 ; inline +: CSIDL_COMMON_PICTURES HEX: 36 ; inline +: CSIDL_COMMON_VIDEO HEX: 37 ; inline +: CSIDL_RESOURCES HEX: 38 ; inline +: CSIDL_RESOURCES_LOCALIZED HEX: 39 ; inline +: CSIDL_COMMON_OEM_LINKS HEX: 3a ; inline +: CSIDL_CDBURN_AREA HEX: 3b ; inline +: CSIDL_COMPUTERSNEARME HEX: 3d ; inline +: CSIDL_PROFILES HEX: 3e ; inline +: CSIDL_FOLDER_MASK HEX: ff ; inline +: CSIDL_FLAG_PER_USER_INIT HEX: 800 ; inline +: CSIDL_FLAG_NO_ALIAS HEX: 1000 ; inline +: CSIDL_FLAG_DONT_VERIFY HEX: 4000 ; inline +: CSIDL_FLAG_CREATE HEX: 8000 ; inline +: CSIDL_FLAG_MASK HEX: ff00 ; inline + + +: S_OK 0 ; inline +: S_FALSE 1 ; inline +: E_FAIL HEX: 80004005 ; inline +: E_INVALIDARG HEX: 80070057 ; inline +: ERROR_FILE_NOT_FOUND 2 ; inline + +: SHGFP_TYPE_CURRENT 0 ; inline +: SHGFP_TYPE_DEFAULT 1 ; inline + +LIBRARY: shell32 + +FUNCTION: HRESULT SHGetFolderPathW ( HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPTSTR pszPath ) ; +: SHGetFolderPath SHGetFolderPathW ; inline + +FUNCTION: HINSTANCE ShellExecuteW ( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ) ; +: ShellExecute ShellExecuteW ; inline + +: open-in-explorer ( dir -- ) + f "open" rot f f SW_SHOWNORMAL ShellExecute drop ; + +: shell32-error ( n -- ) + dup S_OK = [ + drop + ] [ + { + ! { ERROR_FILE_NOT_FOUND [ "file not found" throw ] } + ! { E_INVALIDARG [ "invalid arg" throw ] } + [ (win32-error-string) throw ] + } case + ] if ; + +: shell32-directory ( n -- str ) + f swap f SHGFP_TYPE_DEFAULT + MAX_UNICODE_PATH "ushort" + [ SHGetFolderPath shell32-error ] keep alien>u16-string ; + +: desktop ( -- str ) + CSIDL_DESKTOPDIRECTORY shell32-directory ; + +: my-documents ( -- str ) + CSIDL_PERSONAL shell32-directory ; + +: application-data ( -- str ) + CSIDL_APPDATA shell32-directory ; + +: windows ( -- str ) + CSIDL_WINDOWS shell32-directory ; + +: programs ( -- str ) + CSIDL_PROGRAMS shell32-directory ; + +: program-files ( -- str ) + CSIDL_PROGRAM_FILES shell32-directory ; + +: program-files-x86 ( -- str ) + CSIDL_PROGRAM_FILESX86 shell32-directory ; + +: program-files-common ( -- str ) + CSIDL_PROGRAM_FILES_COMMON shell32-directory ; + +: program-files-common-x86 ( -- str ) + CSIDL_PROGRAM_FILES_COMMONX86 shell32-directory ; diff --git a/extra/windows/types/types.factor b/extra/windows/types/types.factor index 6702dd6e79..7be8d98e61 100644 --- a/extra/windows/types/types.factor +++ b/extra/windows/types/types.factor @@ -333,4 +333,8 @@ C-STRUCT: LVFINDINFO { "POINT" "pt" } { "uint" "vkDirection" } ; - +C-STRUCT: ACCEL + { "BYTE" "fVirt" } + { "WORD" "key" } + { "WORD" "cmd" } ; +TYPEDEF: ACCEL* LPACCEL diff --git a/extra/windows/user32/user32.factor b/extra/windows/user32/user32.factor index 59378c79ed..c8f6a82fb5 100644 --- a/extra/windows/user32/user32.factor +++ b/extra/windows/user32/user32.factor @@ -5,43 +5,43 @@ windows.types shuffle ; IN: windows.user32 ! HKL for ActivateKeyboardLayout -: HKL_PREV 0 ; -: HKL_NEXT 1 ; +: HKL_PREV 0 ; inline +: HKL_NEXT 1 ; inline -: CW_USEDEFAULT HEX: 80000000 ; +: CW_USEDEFAULT HEX: 80000000 ; inline -: WS_OVERLAPPED HEX: 00000000 ; -: WS_POPUP HEX: 80000000 ; -: WS_CHILD HEX: 40000000 ; -: WS_MINIMIZE HEX: 20000000 ; -: WS_VISIBLE HEX: 10000000 ; -: WS_DISABLED HEX: 08000000 ; -: WS_CLIPSIBLINGS HEX: 04000000 ; -: WS_CLIPCHILDREN HEX: 02000000 ; -: WS_MAXIMIZE HEX: 01000000 ; -: WS_CAPTION HEX: 00C00000 ; ! /* WS_BORDER | WS_DLGFRAME */ -: WS_BORDER HEX: 00800000 ; -: WS_DLGFRAME HEX: 00400000 ; -: WS_VSCROLL HEX: 00200000 ; -: WS_HSCROLL HEX: 00100000 ; -: WS_SYSMENU HEX: 00080000 ; -: WS_THICKFRAME HEX: 00040000 ; -: WS_GROUP HEX: 00020000 ; -: WS_TABSTOP HEX: 00010000 ; -: WS_MINIMIZEBOX HEX: 00020000 ; -: WS_MAXIMIZEBOX HEX: 00010000 ; +: WS_OVERLAPPED HEX: 00000000 ; inline +: WS_POPUP HEX: 80000000 ; inline +: WS_CHILD HEX: 40000000 ; inline +: WS_MINIMIZE HEX: 20000000 ; inline +: WS_VISIBLE HEX: 10000000 ; inline +: WS_DISABLED HEX: 08000000 ; inline +: WS_CLIPSIBLINGS HEX: 04000000 ; inline +: WS_CLIPCHILDREN HEX: 02000000 ; inline +: WS_MAXIMIZE HEX: 01000000 ; inline +: WS_CAPTION HEX: 00C00000 ; inline +: WS_BORDER HEX: 00800000 ; inline +: WS_DLGFRAME HEX: 00400000 ; inline +: WS_VSCROLL HEX: 00200000 ; inline +: WS_HSCROLL HEX: 00100000 ; inline +: WS_SYSMENU HEX: 00080000 ; inline +: WS_THICKFRAME HEX: 00040000 ; inline +: WS_GROUP HEX: 00020000 ; inline +: WS_TABSTOP HEX: 00010000 ; inline +: WS_MINIMIZEBOX HEX: 00020000 ; inline +: WS_MAXIMIZEBOX HEX: 00010000 ; inline ! Common window styles -: WS_OVERLAPPEDWINDOW WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX bitor bitor bitor bitor bitor ; +: WS_OVERLAPPEDWINDOW WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX bitor bitor bitor bitor bitor ; foldable inline -: WS_POPUPWINDOW WS_POPUP WS_BORDER WS_SYSMENU bitor bitor ; +: WS_POPUPWINDOW WS_POPUP WS_BORDER WS_SYSMENU bitor bitor ; foldable inline -: WS_CHILDWINDOW WS_CHILD ; +: WS_CHILDWINDOW WS_CHILD ; inline -: WS_TILED WS_OVERLAPPED ; -: WS_ICONIC WS_MINIMIZE ; -: WS_SIZEBOX WS_THICKFRAME ; -: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW ; +: WS_TILED WS_OVERLAPPED ; inline +: WS_ICONIC WS_MINIMIZE ; inline +: WS_SIZEBOX WS_THICKFRAME ; inline +: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW ; inline ! Extended window styles @@ -65,72 +65,74 @@ IN: windows.user32 : WS_EX_CONTROLPARENT HEX: 00010000 ; inline : WS_EX_STATICEDGE HEX: 00020000 ; inline : WS_EX_APPWINDOW HEX: 00040000 ; inline -: WS_EX_OVERLAPPEDWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; inline -: WS_EX_PALETTEWINDOW - WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW bitor WS_EX_TOPMOST bitor ; inline +: WS_EX_OVERLAPPEDWINDOW ( -- n ) + WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; foldable inline +: WS_EX_PALETTEWINDOW ( -- n ) + WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW bitor + WS_EX_TOPMOST bitor ; foldable inline -: CS_VREDRAW HEX: 0001 ; -: CS_HREDRAW HEX: 0002 ; -: CS_DBLCLKS HEX: 0008 ; -: CS_OWNDC HEX: 0020 ; -: CS_CLASSDC HEX: 0040 ; -: CS_PARENTDC HEX: 0080 ; -: CS_NOCLOSE HEX: 0200 ; -: CS_SAVEBITS HEX: 0800 ; -: CS_BYTEALIGNCLIENT HEX: 1000 ; -: CS_BYTEALIGNWINDOW HEX: 2000 ; -: CS_GLOBALCLASS HEX: 4000 ; +: CS_VREDRAW HEX: 0001 ; inline +: CS_HREDRAW HEX: 0002 ; inline +: CS_DBLCLKS HEX: 0008 ; inline +: CS_OWNDC HEX: 0020 ; inline +: CS_CLASSDC HEX: 0040 ; inline +: CS_PARENTDC HEX: 0080 ; inline +: CS_NOCLOSE HEX: 0200 ; inline +: CS_SAVEBITS HEX: 0800 ; inline +: CS_BYTEALIGNCLIENT HEX: 1000 ; inline +: CS_BYTEALIGNWINDOW HEX: 2000 ; inline +: CS_GLOBALCLASS HEX: 4000 ; inline -: COLOR_SCROLLBAR 0 ; -: COLOR_BACKGROUND 1 ; -: COLOR_ACTIVECAPTION 2 ; -: COLOR_INACTIVECAPTION 3 ; -: COLOR_MENU 4 ; -: COLOR_WINDOW 5 ; -: COLOR_WINDOWFRAME 6 ; -: COLOR_MENUTEXT 7 ; -: COLOR_WINDOWTEXT 8 ; -: COLOR_CAPTIONTEXT 9 ; -: COLOR_ACTIVEBORDER 10 ; -: COLOR_INACTIVEBORDER 11 ; -: COLOR_APPWORKSPACE 12 ; -: COLOR_HIGHLIGHT 13 ; -: COLOR_HIGHLIGHTTEXT 14 ; -: COLOR_BTNFACE 15 ; -: COLOR_BTNSHADOW 16 ; -: COLOR_GRAYTEXT 17 ; -: COLOR_BTNTEXT 18 ; -: COLOR_INACTIVECAPTIONTEXT 19 ; -: COLOR_BTNHIGHLIGHT 20 ; +: COLOR_SCROLLBAR 0 ; inline +: COLOR_BACKGROUND 1 ; inline +: COLOR_ACTIVECAPTION 2 ; inline +: COLOR_INACTIVECAPTION 3 ; inline +: COLOR_MENU 4 ; inline +: COLOR_WINDOW 5 ; inline +: COLOR_WINDOWFRAME 6 ; inline +: COLOR_MENUTEXT 7 ; inline +: COLOR_WINDOWTEXT 8 ; inline +: COLOR_CAPTIONTEXT 9 ; inline +: COLOR_ACTIVEBORDER 10 ; inline +: COLOR_INACTIVEBORDER 11 ; inline +: COLOR_APPWORKSPACE 12 ; inline +: COLOR_HIGHLIGHT 13 ; inline +: COLOR_HIGHLIGHTTEXT 14 ; inline +: COLOR_BTNFACE 15 ; inline +: COLOR_BTNSHADOW 16 ; inline +: COLOR_GRAYTEXT 17 ; inline +: COLOR_BTNTEXT 18 ; inline +: COLOR_INACTIVECAPTIONTEXT 19 ; inline +: COLOR_BTNHIGHLIGHT 20 ; inline -: IDI_APPLICATION 32512 ; -: IDI_HAND 32513 ; -: IDI_QUESTION 32514 ; -: IDI_EXCLAMATION 32515 ; -: IDI_ASTERISK 32516 ; -: IDI_WINLOGO 32517 ; +: IDI_APPLICATION 32512 ; inline +: IDI_HAND 32513 ; inline +: IDI_QUESTION 32514 ; inline +: IDI_EXCLAMATION 32515 ; inline +: IDI_ASTERISK 32516 ; inline +: IDI_WINLOGO 32517 ; inline ! ShowWindow() Commands -: SW_HIDE 0 ; -: SW_SHOWNORMAL 1 ; -: SW_NORMAL 1 ; -: SW_SHOWMINIMIZED 2 ; -: SW_SHOWMAXIMIZED 3 ; -: SW_MAXIMIZE 3 ; -: SW_SHOWNOACTIVATE 4 ; -: SW_SHOW 5 ; -: SW_MINIMIZE 6 ; -: SW_SHOWMINNOACTIVE 7 ; -: SW_SHOWNA 8 ; -: SW_RESTORE 9 ; -: SW_SHOWDEFAULT 10 ; -: SW_FORCEMINIMIZE 11 ; -: SW_MAX 11 ; +: SW_HIDE 0 ; inline +: SW_SHOWNORMAL 1 ; inline +: SW_NORMAL 1 ; inline +: SW_SHOWMINIMIZED 2 ; inline +: SW_SHOWMAXIMIZED 3 ; inline +: SW_MAXIMIZE 3 ; inline +: SW_SHOWNOACTIVATE 4 ; inline +: SW_SHOW 5 ; inline +: SW_MINIMIZE 6 ; inline +: SW_SHOWMINNOACTIVE 7 ; inline +: SW_SHOWNA 8 ; inline +: SW_RESTORE 9 ; inline +: SW_SHOWDEFAULT 10 ; inline +: SW_FORCEMINIMIZE 11 ; inline +: SW_MAX 11 ; inline ! PeekMessage -: PM_NOREMOVE 0 ; -: PM_REMOVE 1 ; -: PM_NOYIELD 2 ; +: PM_NOREMOVE 0 ; inline +: PM_REMOVE 1 ; inline +: PM_NOYIELD 2 ; inline ! : PM_QS_INPUT (QS_INPUT << 16) ; ! : PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) ; ! : PM_QS_PAINT (QS_PAINT << 16) ; @@ -140,22 +142,22 @@ IN: windows.user32 ! ! Standard Cursor IDs ! -: IDC_ARROW 32512 ; -: IDC_IBEAM 32513 ; -: IDC_WAIT 32514 ; -: IDC_CROSS 32515 ; -: IDC_UPARROW 32516 ; -: IDC_SIZE 32640 ; ! OBSOLETE: use IDC_SIZEALL -: IDC_ICON 32641 ; ! OBSOLETE: use IDC_ARROW -: IDC_SIZENWSE 32642 ; -: IDC_SIZENESW 32643 ; -: IDC_SIZEWE 32644 ; -: IDC_SIZENS 32645 ; -: IDC_SIZEALL 32646 ; -: IDC_NO 32648 ; ! not in win3.1 -: IDC_HAND 32649 ; -: IDC_APPSTARTING 32650 ; ! not in win3.1 -: IDC_HELP 32651 ; +: IDC_ARROW 32512 ; inline +: IDC_IBEAM 32513 ; inline +: IDC_WAIT 32514 ; inline +: IDC_CROSS 32515 ; inline +: IDC_UPARROW 32516 ; inline +: IDC_SIZE 32640 ; inline ! OBSOLETE: use IDC_SIZEALL +: IDC_ICON 32641 ; inline ! OBSOLETE: use IDC_ARROW +: IDC_SIZENWSE 32642 ; inline +: IDC_SIZENESW 32643 ; inline +: IDC_SIZEWE 32644 ; inline +: IDC_SIZENS 32645 ; inline +: IDC_SIZEALL 32646 ; inline +: IDC_NO 32648 ; inline ! not in win3.1 +: IDC_HAND 32649 ; inline +: IDC_APPSTARTING 32650 ; inline ! not in win3.1 +: IDC_HELP 32651 ; inline ! Predefined Clipboard Formats : CF_TEXT 1 ; inline @@ -244,9 +246,43 @@ IN: windows.user32 : VK_DELETE HEX: 2E ; inline : VK_HELP HEX: 2F ; inline -! VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) -! 0x40 : unassigned -! VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) +: VK_0 CHAR: 0 ; inline +: VK_1 CHAR: 1 ; inline +: VK_2 CHAR: 2 ; inline +: VK_3 CHAR: 3 ; inline +: VK_4 CHAR: 4 ; inline +: VK_5 CHAR: 5 ; inline +: VK_6 CHAR: 6 ; inline +: VK_7 CHAR: 7 ; inline +: VK_8 CHAR: 8 ; inline +: VK_9 CHAR: 9 ; inline + +: VK_A CHAR: A ; inline +: VK_B CHAR: B ; inline +: VK_C CHAR: C ; inline +: VK_D CHAR: D ; inline +: VK_E CHAR: E ; inline +: VK_F CHAR: F ; inline +: VK_G CHAR: G ; inline +: VK_H CHAR: H ; inline +: VK_I CHAR: I ; inline +: VK_J CHAR: J ; inline +: VK_K CHAR: K ; inline +: VK_L CHAR: L ; inline +: VK_M CHAR: M ; inline +: VK_N CHAR: N ; inline +: VK_O CHAR: O ; inline +: VK_P CHAR: P ; inline +: VK_Q CHAR: Q ; inline +: VK_R CHAR: R ; inline +: VK_S CHAR: S ; inline +: VK_T CHAR: T ; inline +: VK_U CHAR: U ; inline +: VK_V CHAR: V ; inline +: VK_W CHAR: W ; inline +: VK_X CHAR: X ; inline +: VK_Y CHAR: Y ; inline +: VK_Z CHAR: Z ; inline : VK_LWIN HEX: 5B ; inline : VK_RWIN HEX: 5C ; inline @@ -417,47 +453,59 @@ IN: windows.user32 ! Some fields are not defined for win64 ! Window field offsets for GetWindowLong() -: GWL_WNDPROC -4 ; -: GWL_HINSTANCE -6 ; -: GWL_HWNDPARENT -8 ; -: GWL_USERDATA -21 ; -: GWL_ID -12 ; +: GWL_WNDPROC -4 ; inline +: GWL_HINSTANCE -6 ; inline +: GWL_HWNDPARENT -8 ; inline +: GWL_USERDATA -21 ; inline +: GWL_ID -12 ; inline -: GWL_STYLE -16 ; -: GWL_EXSTYLE -20 ; +: GWL_STYLE -16 ; inline +: GWL_EXSTYLE -20 ; inline -: GWLP_WNDPROC -4 ; -: GWLP_HINSTANCE -6 ; -: GWLP_HWNDPARENT -8 ; -: GWLP_USERDATA -21 ; -: GWLP_ID -12 ; +: GWLP_WNDPROC -4 ; inline +: GWLP_HINSTANCE -6 ; inline +: GWLP_HWNDPARENT -8 ; inline +: GWLP_USERDATA -21 ; inline +: GWLP_ID -12 ; inline ! Class field offsets for GetClassLong() -: GCL_MENUNAME -8 ; -: GCL_HBRBACKGROUND -10 ; -: GCL_HCURSOR -12 ; -: GCL_HICON -14 ; -: GCL_HMODULE -16 ; -: GCL_WNDPROC -24 ; -: GCL_HICONSM -34 ; -: GCL_CBWNDEXTRA -18 ; -: GCL_CBCLSEXTRA -20 ; -: GCL_STYLE -26 ; -: GCW_ATOM -32 ; +: GCL_MENUNAME -8 ; inline +: GCL_HBRBACKGROUND -10 ; inline +: GCL_HCURSOR -12 ; inline +: GCL_HICON -14 ; inline +: GCL_HMODULE -16 ; inline +: GCL_WNDPROC -24 ; inline +: GCL_HICONSM -34 ; inline +: GCL_CBWNDEXTRA -18 ; inline +: GCL_CBCLSEXTRA -20 ; inline +: GCL_STYLE -26 ; inline +: GCW_ATOM -32 ; inline -: GCLP_MENUNAME -8 ; -: GCLP_HBRBACKGROUND -10 ; -: GCLP_HCURSOR -12 ; -: GCLP_HICON -14 ; -: GCLP_HMODULE -16 ; -: GCLP_WNDPROC -24 ; -: GCLP_HICONSM -34 ; +: GCLP_MENUNAME -8 ; inline +: GCLP_HBRBACKGROUND -10 ; inline +: GCLP_HCURSOR -12 ; inline +: GCLP_HICON -14 ; inline +: GCLP_HMODULE -16 ; inline +: GCLP_WNDPROC -24 ; inline +: GCLP_HICONSM -34 ; inline -: MB_ICONASTERISK HEX: 00000040 ; -: MB_ICONEXCLAMATION HEX: 00000030 ; -: MB_ICONHAND HEX: 00000010 ; -: MB_ICONQUESTION HEX: 00000020 ; -: MB_OK HEX: 00000000 ; +: MB_ICONASTERISK HEX: 00000040 ; inline +: MB_ICONEXCLAMATION HEX: 00000030 ; inline +: MB_ICONHAND HEX: 00000010 ; inline +: MB_ICONQUESTION HEX: 00000020 ; inline +: MB_OK HEX: 00000000 ; inline + +: FVIRTKEY TRUE ; inline +: FNOINVERT 2 ; inline +: FSHIFT 4 ; inline +: FCONTROL 8 ; inline +: FALT 16 ; inline + +: MAPVK_VK_TO_VSC 0 ; inline +: MAPVK_VSC_TO_VK 1 ; inline +: MAPVK_VK_TO_CHAR 2 ; inline +: MAPVK_VSC_TO_VK_EX 3 ; inline +: MAPVK_VK_TO_VSC_EX 3 ; inline : TME_HOVER 1 ; inline : TME_LEAVE 2 ; inline @@ -549,13 +597,15 @@ FUNCTION: BOOL CloseClipboard ( ) ; ! FUNCTION: CloseWindow ! FUNCTION: CloseWindowStation ! FUNCTION: CopyAcceleratorTableA -! FUNCTION: CopyAcceleratorTableW +FUNCTION: int CopyAcceleratorTableW ( HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries ) ; +: CopyAcceleratorTable CopyAcceleratorTableW ; inline ! FUNCTION: CopyIcon ! FUNCTION: CopyImage ! FUNCTION: CopyRect ! FUNCTION: CountClipboardFormats ! FUNCTION: CreateAcceleratorTableA -! FUNCTION: CreateAcceleratorTableW +FUNCTION: HACCEL CreateAcceleratorTableW ( LPACCEL lpaccl, int cEntries ) ; +: CreateAcceleratorTable CreateAcceleratorTableW ; inline ! FUNCTION: CreateCaret ! FUNCTION: CreateCursor ! FUNCTION: CreateDesktopA @@ -643,7 +693,7 @@ FUNCTION: LRESULT DefWindowProcW ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lP : DefWindowProc DefWindowProcW ; inline ! FUNCTION: DeleteMenu ! FUNCTION: DeregisterShellHookWindow -! FUNCTION: DestroyAcceleratorTable +FUNCTION: BOOL DestroyAcceleratorTable ( HACCEL hAccel ) ; ! FUNCTION: DestroyCaret ! FUNCTION: DestroyCursor ! FUNCTION: DestroyIcon @@ -953,7 +1003,7 @@ FUNCTION: BOOL IsZoomed ( HWND hWnd ) ; ! FUNCTION: KillSystemTimer ! FUNCTION: KillTimer ! FUNCTION: LoadAcceleratorsA -! FUNCTION: LoadAcceleratorsW +FUNCTION: HACCEL LoadAcceleratorsW ( HINSTANCE hInstance, LPCTSTR lpTableName ) ; ! FUNCTION: LoadBitmapA ! FUNCTION: LoadBitmapW ! FUNCTION: LoadCursorFromFileA @@ -988,10 +1038,13 @@ FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCTSTR lpIconName ) ; ! FUNCTION: LookupIconIdFromDirectory ! FUNCTION: LookupIconIdFromDirectoryEx ! FUNCTION: MapDialogRect -! FUNCTION: MapVirtualKeyA -! FUNCTION: MapVirtualKeyExA -! FUNCTION: MapVirtualKeyExW -! FUNCTION: MapVirtualKeyW + +FUNCTION: UINT MapVirtualKeyW ( UINT uCode, UINT uMapType ) ; +: MapVirtualKey MapVirtualKeyW ; inline + +FUNCTION: UINT MapVirtualKeyExW ( UINT uCode, UINT uMapType, HKL dwhkl ) ; +: MapVirtualKeyEx MapVirtualKeyExW ; inline + ! FUNCTION: MapWindowPoints ! FUNCTION: MB_GetString ! FUNCTION: MBToWCSEx @@ -1050,7 +1103,6 @@ FUNCTION: int MessageBoxExW ( ! FUNCTION: mouse_event - FUNCTION: BOOL MoveWindow ( HWND hWnd, int X, @@ -1059,7 +1111,6 @@ FUNCTION: BOOL MoveWindow ( int nHeight, BOOL bRepaint ) ; - ! FUNCTION: MsgWaitForMultipleObjects ! FUNCTION: MsgWaitForMultipleObjectsEx ! FUNCTION: NotifyWinEvent @@ -1264,7 +1315,9 @@ FUNCTION: BOOL TrackMouseEvent ( LPTRACKMOUSEEVENT lpEventTrack ) ; ! FUNCTION: TrackPopupMenuEx ! FUNCTION: TranslateAccelerator ! FUNCTION: TranslateAcceleratorA -! FUNCTION: TranslateAcceleratorW +FUNCTION: int TranslateAcceleratorW ( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg ) ; +: TranslateAccelerator TranslateAcceleratorW ; inline + ! FUNCTION: TranslateMDISysAccel FUNCTION: BOOL TranslateMessage ( MSG* lpMsg ) ; diff --git a/extra/windows/windows.factor b/extra/windows/windows.factor index 657a8e8a7c..e07c504781 100755 --- a/extra/windows/windows.factor +++ b/extra/windows/windows.factor @@ -7,6 +7,7 @@ IN: windows : lo-word ( wparam -- lo ) *short ; inline : hi-word ( wparam -- hi ) -16 shift lo-word ; inline +: MAX_UNICODE_PATH 32768 ; inline ! You must LocalFree the return value! FUNCTION: void* error_message ( DWORD id ) ; diff --git a/extra/x/x.factor b/extra/x/x.factor index e55dc3f5cd..8d9f869fa3 100644 --- a/extra/x/x.factor +++ b/extra/x/x.factor @@ -29,7 +29,8 @@ define-independent-class "create" !( name -- display ) [ new-empty swap >>name - dup $name dup [ string>char-alien ] [ ] if XOpenDisplay >>ptr + dup $name dup [ string>char-alien ] [ ] if XOpenDisplay + dup [ >>ptr ] [ "XOpenDisplay error" throw ] if dup $ptr XDefaultScreen >>default-screen dup $ptr XDefaultRootWindow dupd new >>default-root dup $ptr over $default-screen XDefaultGC >>default-gc diff --git a/extra/xml/data/data.factor b/extra/xml/data/data.factor index 56e34b7db2..58ff2a3f6c 100644 --- a/extra/xml/data/data.factor +++ b/extra/xml/data/data.factor @@ -65,6 +65,7 @@ M: attrs set-at M: attrs assoc-size length ; M: attrs new-assoc drop V{ } new ; +M: attrs >alist delegate >alist ; : >attrs ( assoc -- attrs ) V{ } assoc-clone-like diff --git a/extra/xmode/README.txt b/extra/xmode/README.txt new file mode 100755 index 0000000000..57d9f42b22 --- /dev/null +++ b/extra/xmode/README.txt @@ -0,0 +1,41 @@ +This is a Factor port of the jEdit 4.3 syntax highlighting engine +(http://www.jedit.org). + +jEdit 1.2, released in late 1998, was the first release to support +syntax highlighting. It featured a small number of hand-coded +"token markers" -- simple incremental parers -- all based on the +original JavaTokenMarker contributed by Tal Davidson. + +Around the time of jEdit 1.5 in 1999, Mike Dillon began developing a +jEdit plugin named "XMode". This plugin implemented a generic, +rule-driven token marker which read mode descriptions from XML files. +XMode eventually matured to the point where it could replace the +formerly hand-coded token markers. + +With the release of jEdit 2.4, I merged XMode into the core and +eliminated the old hand-coded token markers. + +XMode suffers from a somewhat archaic design, and was written at a time +when Java VMs with JIT compilers were relatively uncommon, object +allocation was expensive, and heap space tight. As a result the parser +design is less general than it could be. + +Furthermore, the parser has a few bugs which some mode files have come +to depend on: + +- If a RULES tag does not define any keywords or rules, then its + NO_WORD_SEP attribute is ignored. + + The Factor implementation duplicates this behavior. + +- if a RULES tag does not have a NO_WORD_SEP attribute, then + it inherits the value of the NO_WORD_SEP attribute from the previous + RULES tag. + + The Factor implementation does not duplicate this behavior. If you + find a mode file which depends on this flaw, please fix it and submit + the changes to the jEdit project. + +If you wish to contribute a new or improved mode file, please contact +the jEdit project. Updated mode files in jEdit will be periodically +imported into the Factor source tree. diff --git a/extra/xmode/authors.txt b/extra/xmode/authors.txt new file mode 100644 index 0000000000..1901f27a24 --- /dev/null +++ b/extra/xmode/authors.txt @@ -0,0 +1 @@ +Slava Pestov diff --git a/extra/xmode/catalog/catalog-tests.factor b/extra/xmode/catalog/catalog-tests.factor new file mode 100644 index 0000000000..d5420ed2e3 --- /dev/null +++ b/extra/xmode/catalog/catalog-tests.factor @@ -0,0 +1,11 @@ +IN: temporary +USING: xmode.catalog tools.test hashtables assocs +kernel sequences io ; + +[ t ] [ modes hashtable? ] unit-test + +[ ] [ + modes keys [ + dup print flush load-mode drop reset-modes + ] each +] unit-test diff --git a/extra/xmode/catalog/catalog.factor b/extra/xmode/catalog/catalog.factor new file mode 100644 index 0000000000..e48b18b2ad --- /dev/null +++ b/extra/xmode/catalog/catalog.factor @@ -0,0 +1,114 @@ +USING: xmode.loader xmode.utilities xmode.rules namespaces +strings splitting assocs sequences kernel io.files xml memoize +words globs combinators ; +IN: xmode.catalog + +TUPLE: mode file file-name-glob first-line-glob ; + +r + mode construct-empty { + { "FILE" f set-mode-file } + { "FILE_NAME_GLOB" f set-mode-file-name-glob } + { "FIRST_LINE_GLOB" f set-mode-first-line-glob } + } init-from-tag r> + rot set-at ; + +TAGS> + +: parse-modes-tag ( tag -- modes ) + H{ } clone [ + swap child-tags [ parse-mode-tag ] curry* each + ] keep ; + +: load-catalog ( -- modes ) + "extra/xmode/modes/catalog" resource-path + read-xml parse-modes-tag ; + +: modes ( -- assoc ) + \ modes get-global [ + load-catalog dup \ modes set-global + ] unless* ; + +: reset-catalog ( -- ) + f \ modes set-global ; + +MEMO: (load-mode) ( name -- rule-sets ) + modes at mode-file + "extra/xmode/modes/" swap append + resource-path parse-mode ; + +SYMBOL: rule-sets + +: get-rule-set ( name -- rule-sets rules ) + "::" split1 [ swap (load-mode) ] [ rule-sets get ] if* + tuck at ; + +: resolve-delegate ( rule -- ) + dup rule-delegate dup string? + [ get-rule-set nip swap set-rule-delegate ] [ 2drop ] if ; + +: each-rule ( rule-set quot -- ) + >r rule-set-rules values concat r> each ; inline + +: resolve-delegates ( ruleset -- ) + [ resolve-delegate ] each-rule ; + +: ?update ( keyword-map/f keyword-map -- keyword-map ) + over [ dupd update ] [ nip clone ] if ; + +: import-keywords ( parent child -- ) + over >r [ rule-set-keywords ] 2apply ?update + r> set-rule-set-keywords ; + +: import-rules ( parent child -- ) + swap [ add-rule ] curry each-rule ; + +: resolve-imports ( ruleset -- ) + dup rule-set-imports [ + get-rule-set dup [ + swap rule-sets [ + 2dup import-keywords + import-rules + ] with-variable + ] [ + 3drop + ] if + ] curry* each ; + +: finalize-rule-set ( ruleset -- ) + dup rule-set-finalized? { + { f [ + 1 over set-rule-set-finalized? + dup resolve-imports + dup resolve-delegates + t swap set-rule-set-finalized? + ] } + { t [ drop ] } + { 1 [ "Mutually recursive rule sets" throw ] } + } case ; + +: finalize-mode ( rulesets -- ) + rule-sets [ + dup [ nip finalize-rule-set ] assoc-each + ] with-variable ; + +: load-mode ( name -- rule-sets ) + (load-mode) dup finalize-mode ; + +: reset-modes ( -- ) + \ load-mode "memoize" word-prop clear-assoc ; + +: ?glob-matches ( string glob/f -- ? ) + dup [ glob-matches? ] [ 2drop f ] if ; + +: suitable-mode? ( file-name first-line mode -- ? ) + tuck mode-first-line-glob ?glob-matches + [ 2drop t ] [ mode-file-name-glob ?glob-matches ] if ; + +: find-mode ( file-name first-line -- mode ) + modes + [ nip >r 2dup r> suitable-mode? ] assoc-find + 2drop >r 2drop r> [ "text" ] unless* ; diff --git a/extra/xmode/code2html/code2html.factor b/extra/xmode/code2html/code2html.factor new file mode 100755 index 0000000000..dfc50988a3 --- /dev/null +++ b/extra/xmode/code2html/code2html.factor @@ -0,0 +1,45 @@ +USING: xmode.tokens xmode.marker +xmode.catalog kernel html html.elements io io.files +sequences words ; +IN: xmode.code2html + +: htmlize-tokens ( tokens -- ) + [ + dup token-str swap token-id [ + write + ] [ + write + ] if* + ] each ; + +: htmlize-line ( line-context line rules -- line-context' ) + tokenize-line htmlize-tokens ; + +: htmlize-lines ( lines mode -- ) + f swap load-mode [ htmlize-line nl ] curry reduce drop ; + +: default-stylesheet ( -- ) + ; + +: htmlize-stream ( path stream -- ) + lines swap + + + default-stylesheet + dup write + + +
+                over empty?
+                [ 2drop ]
+                [ over first find-mode htmlize-lines ] if
+            
+ + ; + +: htmlize-file ( path -- ) + dup over ".html" append + [ htmlize-stream ] with-stream ; diff --git a/extra/xmode/code2html/stylesheet.css b/extra/xmode/code2html/stylesheet.css new file mode 100644 index 0000000000..4cd4f8bfc1 --- /dev/null +++ b/extra/xmode/code2html/stylesheet.css @@ -0,0 +1,63 @@ +.NULL { +color: #000000; +} +.COMMENT1 { +color: #cc0000; +} +.COMMENT2 { +color: #ff8400; +} +.COMMENT3 { +color: #6600cc; +} +.COMMENT4 { +color: #cc6600; +} +.DIGIT { +color: #ff0000; +} +.FUNCTION { +color: #9966ff; +} +.INVALID { +background: #ffffcc; +color: #ff0066; +} +.KEYWORD1 { +color: #006699; +font-weight: bold; +} +.KEYWORD2 { +color: #009966; +font-weight: bold; +} +.KEYWORD3 { +color: #0099ff; +font-weight: bold; +} +.KEYWORD4 { +color: #66ccff; +font-weight: bold; +} +.LABEL { +color: #02b902; +} +.LITERAL1 { +color: #ff00cc; +} +.LITERAL2 { +color: #cc00cc; +} +.LITERAL3 { +color: #9900cc; +} +.LITERAL4 { +color: #6600cc; +} +.MARKUP { +color: #0000ff; +} +.OPERATOR { +color: #000000; +font-weight: bold; +} diff --git a/extra/xmode/keyword-map/keyword-map-tests.factor b/extra/xmode/keyword-map/keyword-map-tests.factor new file mode 100644 index 0000000000..9fbe9110e8 --- /dev/null +++ b/extra/xmode/keyword-map/keyword-map-tests.factor @@ -0,0 +1,30 @@ +IN: temporary +USING: xmode.keyword-map xmode.tokens +tools.test namespaces assocs kernel strings ; + +f dup "k" set + +{ + { "int" KEYWORD1 } + { "void" KEYWORD2 } + { "size_t" KEYWORD3 } +} update + +[ 3 ] [ "k" get assoc-size ] unit-test +[ KEYWORD1 ] [ "int" "k" get at ] unit-test +[ "_" ] [ "k" get keyword-map-no-word-sep* >string ] unit-test +[ ] [ LITERAL1 "x-y" "k" get set-at ] unit-test +[ "-_" ] [ "k" get keyword-map-no-word-sep* >string ] unit-test + +t dup "k" set +{ + { "Foo" KEYWORD1 } + { "bbar" KEYWORD2 } + { "BAZ" KEYWORD3 } +} update + +[ KEYWORD1 ] [ "fOo" "k" get at ] unit-test + +[ KEYWORD2 ] [ "BBAR" "k" get at ] unit-test + +[ KEYWORD3 ] [ "baz" "k" get at ] unit-test diff --git a/extra/xmode/keyword-map/keyword-map.factor b/extra/xmode/keyword-map/keyword-map.factor new file mode 100644 index 0000000000..350d8572a0 --- /dev/null +++ b/extra/xmode/keyword-map/keyword-map.factor @@ -0,0 +1,36 @@ +USING: kernel strings assocs sequences hashtables sorting ; +IN: xmode.keyword-map + +! Based on org.gjt.sp.jedit.syntax.KeywordMap +TUPLE: keyword-map no-word-sep ignore-case? ; + +: ( ignore-case? -- map ) + H{ } clone { set-keyword-map-ignore-case? set-delegate } + keyword-map construct ; + +: invalid-no-word-sep f swap set-keyword-map-no-word-sep ; + +: handle-case ( key keyword-map -- key assoc ) + [ keyword-map-ignore-case? [ >upper ] when ] keep + delegate ; + +M: keyword-map at* handle-case at* ; + +M: keyword-map set-at + [ handle-case set-at ] keep invalid-no-word-sep ; + +M: keyword-map clear-assoc + [ delegate clear-assoc ] keep invalid-no-word-sep ; + +M: keyword-map >alist delegate >alist ; + +: (keyword-map-no-word-sep) + keys concat [ alpha? not ] subset prune natural-sort ; + +: keyword-map-no-word-sep* ( keyword-map -- str ) + dup keyword-map-no-word-sep [ ] [ + dup (keyword-map-no-word-sep) + dup rot set-keyword-map-no-word-sep + ] ?if ; + +INSTANCE: keyword-map assoc diff --git a/extra/xmode/loader/loader.factor b/extra/xmode/loader/loader.factor new file mode 100755 index 0000000000..ac1d1d66ca --- /dev/null +++ b/extra/xmode/loader/loader.factor @@ -0,0 +1,182 @@ +USING: xmode.tokens xmode.rules xmode.keyword-map xml.data +xml.utilities xml assocs kernel combinators sequences +math.parser namespaces parser xmode.utilities regexp io.files ; +IN: xmode.loader + +! Based on org.gjt.sp.jedit.XModeHandler + +SYMBOL: ignore-case? + +! Attribute utilities +: string>boolean ( string -- ? ) "TRUE" = ; + +: string>match-type ( string -- obj ) + { + { "RULE" [ f ] } + { "CONTEXT" [ t ] } + [ string>token ] + } case ; + +: string>rule-set-name "MAIN" or ; + +! PROP, PROPS +: parse-prop-tag ( tag -- key value ) + "NAME" over at "VALUE" rot at ; + +: parse-props-tag ( tag -- assoc ) + child-tags + [ parse-prop-tag ] H{ } map>assoc ; + +: position-attrs ( tag -- at-line-start? at-whitespace-end? at-word-start? ) + ! XXX Wrong logic! + { "AT_LINE_START" "AT_WHITESPACE_END" "AT_WORD_START" } + swap [ at string>boolean ] curry map first3 ; + +: parse-literal-matcher ( tag -- matcher ) + dup children>string + ignore-case? get + swap position-attrs ; + +: parse-regexp-matcher ( tag -- matcher ) + dup children>string ignore-case? get + swap position-attrs ; + +! SPAN's children + + +! RULES and its children +number swap set-rule-set-terminate-char ; + +: (parse-rule-tag) ( rule-set tag specs class -- ) + construct-rule swap init-from-tag swap add-rule ; inline + +: RULE: + scan scan-word + parse-definition { } make + swap [ (parse-rule-tag) ] 2curry (TAG:) ; parsing + +: shared-tag-attrs + { "TYPE" string>token set-rule-body-token } , ; inline + +: delegate-attr + { "DELEGATE" f set-rule-delegate } , ; + +: regexp-attr + { "HASH_CHAR" f set-rule-chars } , ; + +: match-type-attr + { "MATCH_TYPE" string>match-type set-rule-match-token } , ; + +: span-attrs + { "NO_LINE_BREAK" string>boolean set-rule-no-line-break? } , + { "NO_WORD_BREAK" string>boolean set-rule-no-word-break? } , + { "NO_ESCAPE" string>boolean set-rule-no-escape? } , ; + +: literal-start + [ parse-literal-matcher swap set-rule-start ] , ; + +: regexp-start + [ parse-regexp-matcher swap set-rule-start ] , ; + +: literal-end + [ parse-literal-matcher swap set-rule-end ] , ; + +RULE: SEQ seq-rule + shared-tag-attrs delegate-attr literal-start ; + +RULE: SEQ_REGEXP seq-rule + shared-tag-attrs delegate-attr regexp-attr regexp-start ; + +: parse-begin/end-tags + [ + ! XXX: handle position attrs on span tag itself + child-tags [ parse-begin/end-tag ] curry* each + ] , ; + +: init-span-tag [ drop init-span ] , ; + +: init-eol-span-tag [ drop init-eol-span ] , ; + +RULE: SPAN span-rule + shared-tag-attrs delegate-attr match-type-attr span-attrs parse-begin/end-tags init-span-tag ; + +RULE: SPAN_REGEXP span-rule + shared-tag-attrs delegate-attr match-type-attr span-attrs regexp-attr parse-begin/end-tags init-span-tag ; + +RULE: EOL_SPAN eol-span-rule + shared-tag-attrs delegate-attr match-type-attr literal-start init-eol-span-tag ; + +RULE: EOL_SPAN_REGEXP eol-span-rule + shared-tag-attrs delegate-attr match-type-attr regexp-attr regexp-start init-eol-span-tag ; + +RULE: MARK_FOLLOWING mark-following-rule + shared-tag-attrs match-type-attr literal-start ; + +RULE: MARK_PREVIOUS mark-previous-rule + shared-tag-attrs match-type-attr literal-start ; + +: parse-keyword-tag ( tag keyword-map -- ) + >r dup name-tag string>token swap children>string r> set-at ; + +TAG: KEYWORDS ( rule-set tag -- key value ) + ignore-case? get + swap child-tags [ over parse-keyword-tag ] each + swap set-rule-set-keywords ; + +TAGS> + +: ? dup [ ignore-case? get ] when ; + +: (parse-rules-tag) ( tag -- rule-set ) + + { + { "SET" string>rule-set-name set-rule-set-name } + { "IGNORE_CASE" string>boolean set-rule-set-ignore-case? } + { "HIGHLIGHT_DIGITS" string>boolean set-rule-set-highlight-digits? } + { "DIGIT_RE" ? set-rule-set-digit-re } + { "ESCAPE" f add-escape-rule } + { "DEFAULT" string>token set-rule-set-default } + { "NO_WORD_SEP" f set-rule-set-no-word-sep } + } init-from-tag ; + +: parse-rules-tag ( tag -- rule-set ) + dup (parse-rules-tag) [ + dup rule-set-ignore-case? ignore-case? [ + swap child-tags [ parse-rule-tag ] curry* each + ] with-variable + ] keep ; + +: merge-rule-set-props ( props rule-set -- ) + [ rule-set-props union ] keep set-rule-set-props ; + +! Top-level entry points +: parse-mode-tag ( tag -- rule-sets ) + dup "RULES" tags-named [ + parse-rules-tag dup rule-set-name swap + ] H{ } map>assoc + swap "PROPS" tag-named [ + parse-props-tag over values + [ merge-rule-set-props ] curry* each + ] when* ; + +: parse-mode ( stream -- rule-sets ) + read-xml parse-mode-tag ; diff --git a/extra/xmode/marker/context/context.factor b/extra/xmode/marker/context/context.factor new file mode 100644 index 0000000000..8023e1d321 --- /dev/null +++ b/extra/xmode/marker/context/context.factor @@ -0,0 +1,19 @@ +USING: kernel ; +IN: xmode.marker.context + +! Based on org.gjt.sp.jedit.syntax.TokenMarker.LineContext +TUPLE: line-context +parent +in-rule +in-rule-set +end +; + +: ( ruleset parent -- line-context ) + { set-line-context-in-rule-set set-line-context-parent } + line-context construct ; + +M: line-context clone + (clone) + dup line-context-parent clone + over set-line-context-parent ; diff --git a/extra/xmode/marker/marker-tests.factor b/extra/xmode/marker/marker-tests.factor new file mode 100755 index 0000000000..b9621a112a --- /dev/null +++ b/extra/xmode/marker/marker-tests.factor @@ -0,0 +1,135 @@ +USING: xmode.tokens xmode.catalog +xmode.marker tools.test kernel ; +IN: temporary + +[ + { + T{ token f "int" KEYWORD3 } + T{ token f " " f } + T{ token f "x" f } + } +] [ f "int x" "c" load-mode tokenize-line nip ] unit-test + +[ + { + T{ token f "\"" LITERAL1 } + T{ token f "hello\\\"" LITERAL1 } + T{ token f " " LITERAL1 } + T{ token f "world" LITERAL1 } + T{ token f "\"" LITERAL1 } + } +] [ f "\"hello\\\" world\"" "c" load-mode tokenize-line nip ] unit-test + +[ + { + T{ token f "\"" LITERAL1 } + T{ token f "hello\\\ world" LITERAL1 } + T{ token f "\"" LITERAL1 } + } +] [ f "\"hello\\\ world\"" "c" load-mode tokenize-line nip ] unit-test + +[ + { + T{ token f "int" KEYWORD3 } + T{ token f " " f } + T{ token f "x" f } + } +] [ f "int x" "java" load-mode tokenize-line nip ] unit-test + +[ + { + T{ token f "//" COMMENT2 } + T{ token f " " COMMENT2 } + T{ token f "hello" COMMENT2 } + T{ token f " " COMMENT2 } + T{ token f "world" COMMENT2 } + } +] [ f "// hello world" "java" load-mode tokenize-line nip ] unit-test + + +[ + { + T{ token f "hello" f } + T{ token f " " f } + T{ token f "world" f } + T{ token f ":" f } + } +] [ f "hello world:" "java" load-mode tokenize-line nip ] unit-test + +[ + { + T{ token f "hello_world" LABEL } + T{ token f ":" OPERATOR } + } +] [ f "hello_world:" "java" load-mode tokenize-line nip ] unit-test + +[ + { + T{ token f "\t" f } + T{ token f "hello_world" LABEL } + T{ token f ":" OPERATOR } + } +] [ f "\thello_world:" "java" load-mode tokenize-line nip ] unit-test + +[ + { + T{ token f "" KEYWORD2 } + } +] [ + f "" "xml" load-mode tokenize-line nip +] unit-test + +[ + { + T{ token f "" KEYWORD2 } + } +] [ + f "" "xml" load-mode tokenize-line nip +] unit-test + +[ + { + T{ token f "$" KEYWORD2 } + T{ token f "FOO" KEYWORD2 } + } +] [ + f "$FOO" "shellscript" load-mode tokenize-line nip +] unit-test + +[ + { + T{ token f "AND" KEYWORD1 } + } +] [ + f "AND" "pascal" load-mode tokenize-line nip +] unit-test + +[ + { + T{ token f "Comment {" COMMENT1 } + T{ token f "XXX" COMMENT1 } + T{ token f "}" COMMENT1 } + } +] [ + f "Comment {XXX}" "rebol" load-mode tokenize-line nip +] unit-test + +[ + +] [ + f "font:75%/1.6em \"Lucida Grande\", \"Lucida Sans Unicode\", verdana, geneva, sans-serif;" "css" load-mode tokenize-line 2drop +] unit-test diff --git a/extra/xmode/marker/marker.factor b/extra/xmode/marker/marker.factor new file mode 100755 index 0000000000..b8331fe6b6 --- /dev/null +++ b/extra/xmode/marker/marker.factor @@ -0,0 +1,304 @@ +IN: xmode.marker +USING: kernel namespaces xmode.rules xmode.tokens +xmode.marker.state xmode.marker.context xmode.utilities +xmode.catalog sequences math assocs combinators combinators.lib +strings regexp splitting parser-combinators ; + +! Based on org.gjt.sp.jedit.syntax.TokenMarker + +: current-keyword ( -- string ) + last-offset get position get line get subseq ; + +: keyword-number? ( keyword -- ? ) + { + [ current-rule-set rule-set-highlight-digits? ] + [ dup [ digit? ] contains? ] + [ + dup [ digit? ] all? [ + current-rule-set rule-set-digit-re + dup [ dupd matches? ] [ drop f ] if + ] unless* + ] + } && nip ; + +: mark-number ( keyword -- id ) + keyword-number? DIGIT and ; + +: mark-keyword ( keyword -- id ) + current-rule-set rule-set-keywords at ; + +: add-remaining-token ( -- ) + current-rule-set rule-set-default prev-token, ; + +: mark-token ( -- ) + current-keyword + dup mark-number [ ] [ mark-keyword ] ?if + [ prev-token, ] when* ; + +: current-char ( -- char ) + position get line get nth ; + +GENERIC: match-position ( rule -- n ) + +M: mark-previous-rule match-position drop last-offset get ; + +M: rule match-position drop position get ; + +: can-match-here? ( matcher rule -- ? ) + match-position { + [ over ] + [ over matcher-at-line-start? over zero? implies ] + [ over matcher-at-whitespace-end? over whitespace-end get = implies ] + [ over matcher-at-word-start? over last-offset get = implies ] + } && 2nip ; + +: rest-of-line ( -- str ) + line get position get tail-slice ; + +GENERIC: text-matches? ( string text -- match-count/f ) + +M: f text-matches? + 2drop f ; + +M: string-matcher text-matches? + [ + dup string-matcher-string + swap string-matcher-ignore-case? + string-head? + ] keep string-matcher-string length and ; + +M: regexp text-matches? + >r >string r> match-head ; + +: rule-start-matches? ( rule -- match-count/f ) + dup rule-start tuck swap can-match-here? [ + rest-of-line swap matcher-text text-matches? + ] [ + drop f + ] if ; + +: rule-end-matches? ( rule -- match-count/f ) + dup mark-following-rule? [ + dup rule-start swap can-match-here? 0 and + ] [ + dup rule-end tuck swap can-match-here? [ + rest-of-line + swap matcher-text context get line-context-end or + text-matches? + ] [ + drop f + ] if + ] if ; + +DEFER: get-rules + +: get-always-rules ( vector/f ruleset -- vector/f ) + f swap rule-set-rules at ?push-all ; + +: get-char-rules ( vector/f char ruleset -- vector/f ) + >r ch>upper r> rule-set-rules at ?push-all ; + +: get-rules ( char ruleset -- seq ) + f -rot [ get-char-rules ] keep get-always-rules ; + +GENERIC: handle-rule-start ( match-count rule -- ) + +GENERIC: handle-rule-end ( match-count rule -- ) + +: find-escape-rule ( -- rule ) + context get dup + line-context-in-rule-set rule-set-escape-rule [ ] [ + line-context-parent line-context-in-rule-set + dup [ rule-set-escape-rule ] when + ] ?if ; + +: check-escape-rule ( rule -- ? ) + rule-no-escape? [ f ] [ + find-escape-rule dup [ + dup rule-start-matches? dup [ + swap handle-rule-start + delegate-end-escaped? [ not ] change + t + ] [ + 2drop f + ] if + ] when + ] if ; + +: check-every-rule ( -- ? ) + current-char current-rule-set get-rules + [ rule-start-matches? ] map-find + dup [ handle-rule-start t ] [ 2drop f ] if ; + +: ?end-rule ( -- ) + current-rule [ + dup rule-end-matches? + dup [ swap handle-rule-end ] [ 2drop ] if + ] when* ; + +: rule-match-token* ( rule -- id ) + dup rule-match-token { + { f [ dup rule-body-token ] } + { t [ current-rule-set rule-set-default ] } + [ ] + } case nip ; + +M: escape-rule handle-rule-start + drop + ?end-rule + process-escape? get [ + escaped? [ not ] change + position [ + ] change + ] [ 2drop ] if ; + +M: seq-rule handle-rule-start + ?end-rule + mark-token + add-remaining-token + tuck rule-body-token next-token, + rule-delegate [ push-context ] when* ; + +UNION: abstract-span-rule span-rule eol-span-rule ; + +M: abstract-span-rule handle-rule-start + ?end-rule + mark-token + add-remaining-token + tuck rule-match-token* next-token, + ! ... end subst ... + dup context get set-line-context-in-rule + rule-delegate push-context ; + +M: span-rule handle-rule-end + 2drop ; + +M: mark-following-rule handle-rule-start + ?end-rule + mark-token add-remaining-token + tuck rule-match-token* next-token, + f context get set-line-context-end + context get set-line-context-in-rule ; + +M: mark-following-rule handle-rule-end + nip rule-match-token* prev-token, + f context get set-line-context-in-rule ; + +M: mark-previous-rule handle-rule-start + ?end-rule + mark-token + dup rule-body-token prev-token, + rule-match-token* next-token, ; + +: do-escaped + escaped? get [ + escaped? off + ! ... + ] when ; + +: check-end-delegate ( -- ? ) + context get line-context-parent [ + line-context-in-rule [ + dup rule-end-matches? dup [ + [ + swap handle-rule-end + ?end-rule + mark-token + add-remaining-token + ] keep context get line-context-parent line-context-in-rule rule-match-token* next-token, + pop-context + seen-whitespace-end? on t + ] [ drop check-escape-rule ] if + ] [ f ] if* + ] [ f ] if* ; + +: handle-no-word-break ( -- ) + context get line-context-parent [ + line-context-in-rule [ + dup rule-no-word-break? [ + rule-match-token* prev-token, + pop-context + ] [ drop ] if + ] when* + ] when* ; + +: check-rule ( -- ) + ?end-rule + handle-no-word-break + mark-token + add-remaining-token ; + +: (check-word-break) ( -- ) + check-rule + + 1 current-rule-set rule-set-default next-token, ; + +: rule-set-empty? ( ruleset -- ? ) + dup rule-set-rules assoc-empty? + swap rule-set-keywords assoc-empty? and ; + +: check-word-break ( -- ? ) + current-char dup blank? [ + drop + + seen-whitespace-end? get [ + position get 1+ whitespace-end set + ] unless + + (check-word-break) + + ] [ + ! Micro-optimization with incorrect semantics; we keep + ! it here because jEdit mode files depend on it now... + current-rule-set rule-set-empty? [ + drop + ] [ + dup alpha? [ + drop + ] [ + current-rule-set rule-set-no-word-sep* member? [ + (check-word-break) + ] unless + ] if + ] if + + seen-whitespace-end? on + ] if + escaped? off + delegate-end-escaped? off t ; + + +: mark-token-loop ( -- ) + position get line get length < [ + { + [ check-end-delegate ] + [ check-every-rule ] + [ check-word-break ] + } || drop + + position inc + mark-token-loop + ] when ; + +: mark-remaining ( -- ) + line get length position set + check-rule ; + +: unwind-no-line-break ( -- ) + context get line-context-parent [ + line-context-in-rule [ + rule-no-line-break? [ + pop-context + unwind-no-line-break + ] when + ] when* + ] when* ; + +: tokenize-line ( line-context line rules -- line-context' seq ) + [ + "MAIN" swap at -rot + init-token-marker + mark-token-loop + mark-remaining + unwind-no-line-break + context get + ] { } make ; diff --git a/extra/xmode/marker/state/state.factor b/extra/xmode/marker/state/state.factor new file mode 100755 index 0000000000..35e6bbef18 --- /dev/null +++ b/extra/xmode/marker/state/state.factor @@ -0,0 +1,53 @@ +USING: xmode.marker.context xmode.rules +xmode.tokens namespaces kernel sequences assocs math ; +IN: xmode.marker.state + +! Based on org.gjt.sp.jedit.syntax.TokenMarker + +SYMBOL: line +SYMBOL: last-offset +SYMBOL: position +SYMBOL: context + +SYMBOL: whitespace-end +SYMBOL: seen-whitespace-end? + +SYMBOL: escaped? +SYMBOL: process-escape? +SYMBOL: delegate-end-escaped? + +: current-rule ( -- rule ) + context get line-context-in-rule ; + +: current-rule-set ( -- rule ) + context get line-context-in-rule-set ; + +: current-keywords ( -- keyword-map ) + current-rule-set rule-set-keywords ; + +: token, ( from to id -- ) + pick pick = [ 3drop ] [ >r line get subseq r> , ] if ; + +: prev-token, ( id -- ) + >r last-offset get position get r> token, + position get last-offset set ; + +: next-token, ( len id -- ) + >r position get 2dup + r> token, + position get + dup 1- position set last-offset set ; + +: push-context ( rules -- ) + context [ ] change ; + +: pop-context ( -- ) + context get line-context-parent + dup context set + f swap set-line-context-in-rule ; + +: init-token-marker ( main prev-context line -- ) + line set + [ ] [ f ] ?if context set + 0 position set + 0 last-offset set + 0 whitespace-end set + process-escape? on ; diff --git a/extra/xmode/modes/actionscript.xml b/extra/xmode/modes/actionscript.xml new file mode 100644 index 0000000000..387258d868 --- /dev/null +++ b/extra/xmode/modes/actionscript.xml @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + /* + */ + + + + " + " + + + + ' + ' + + + ( + ) + + // + ) + ( + + = + ! + >= + <= + + + - + / + * + > + < + % + & + | + ^ + ~ + . + } + { + , + ; + ] + [ + ? + : + : + + + + add + and + break + continue + delete + do + else + eq + for + function + ge + gt + if + ifFrameLoaded + in + le + lt + ne + new + not + on + onClipEvent + or + return + this + tellTarget + typeof + var + void + while + with + + + Array + Boolean + Color + Date + Function + Key + MovieClip + Math + Mouse + Number + Object + Selection + Sound + String + XML + XMLNode + XMLSocket + + + NaN + Infinity + false + null + true + undefined + + + Boolean + call + Date + escape + eval + fscommand + getProperty + getTimer + getURL + getVersion + gotoAndPlay + gotoAndStop + #include + int + isFinite + isNaN + loadMovie + loadMovieNum + loadVariables + loadVariablesNum + maxscroll + newline + nextFrame + nextScene + Number + parseFloat + parseInt + play + prevFrame + prevScene + print + printAsBitmap + printAsBitmapNum + printNum + random + removeMovieClip + scroll + setProperty + startDrag + stop + stopAllSounds + stopDrag + String + targetPath + tellTarget + toggleHighQuality + trace + unescape + unloadMovie + unloadMovieNum + updateAfterEvent + + + prototype + clearInterval + getVersion + length + __proto__ + __constructor__ + ASSetPropFlags + setInterval + setI + MMExecute + + + attachMovie + createEmptyMovieClip + createTextField + duplicateMovieClip + getBounds + getBytesLoaded + getBytesTotal + getDepth + globalToLocal + hitTest + localToGlobal + setMask + swapDepths + attachAudio + getInstanceAtDepth + getNextHighestDepth + getSWFVersion + getTextSnapshot + getSWFVersion + getSWFVersion + + + beginFill + beginGradientFill + clear + curveTo + endFill + lineStyle + lineTo + moveTo + + + enabled + focusEnabled + hitArea + tabChildren + tabEnabled + tabIndex + trackAsMenu + menu + useHandCursor + + + onData + onDragOut + onDragOver + onEnterFrame + onKeyDown + onKeyUp + onKillFocus + onLoad + onMouseDown + onMouseMove + onMouseUp + onPress + onRelease + onReleaseOutside + onRollOut + onRollOver + onSetFocus + onUnload + + + MovieClipLoader + getProgress + loadClip + onLoadComplete + onLoadError + onLoadInit + onLoadProgress + onLoadStart + unloadClip + + + PrintJob + addPage + + + Camera + activityLevel + bandwidth + currentFps + fps + index + motionLevel + motionTimeOut + muted + name + names + onActivity + onStatus + quality + setMode + setMotionLevel + setQuality + + + Microphone + gain + rate + setGain + setRate + setSilenceLevel + setUseEchoSuppression + silenceLevel + silenceTimeout + useEchoSuppression + + + ContextMenu + builtInItems + copy + customItems + hideBuiltInItems + onSelect + caption + ContextMenuItem + separatorBefore + visible + + + Error + visible + message + + + instanceof + #endinitclip + #initclip + + + _alpha + _currentframe + _droptarget + _focusrect + _framesloaded + _height + _name + _quality + _rotation + _soundbuftime + _target + _totalframes + _url + _visible + _width + _x + _xmouse + _xscale + _y + _ymouse + _yscale + _parent + _root + _level + _lockroot + _accProps + + + + sortOn + toString + splice + sort + slice + shift + reverse + push + join + pop + concat + unshift + + + arguments + callee + caller + valueOf + + + getDate + getDay + getFullYear + getHours + getMilliseconds + getMinutes + getMonth + getSeconds + getTime + getTimezoneOffset + getUTCDate + getUTCDay + getUTCFullYear + getUTCHours + getUTCMilliseconds + getUTCMinutes + getUTCMonth + getUTCSeconds + getYear + setDate + setFullYear + setHours + setMilliseconds + setMinutes + setMonth + setSeconds + setTime + setUTCDate + setUTCFullYear + setUTCHours + setUTCMilliseconds + setUTCMinutes + setUTCMonth + setUTCSeconds + setYear + UTC + + + _global + apply + + + abs + acos + asin + atan + atan2 + ceil + cos + exp + floor + log + max + min + pow + round + sin + sqrt + tan + + E + LN2 + LN10 + LOG2E + LOG10E + PI + SQRT1_2 + SQRT2 + + + MAX_VALUE + MIN_VALUE + NEGATIVE_INFINITY + POSITIVE_INFINITY + + + addProperty + registerClass + unwatch + watch + + + charAt + charCodeAt + fromCharCode + lastIndexOf + indexOf + split + substr + substring + toLowerCase + toUpperCase + + + Accessibility + isActive + updateProperties + + + + System + capabilities + exactSettings + setClipboard + showSettings + useCodepage + avHardwareDisable + hasAccessibility + hasAudio + hasAudioEncoder + hasMP3 + hasVideoEncoder + pixelAspectRatio + screenColor + screenDPI + screenResolutionX + screenResolutionY + hasEmbeddedVideo + hasPrinting + hasScreenBroadcast + hasScreenPlayback + hasStreamingAudio + hasStreamingVideo + isDebugger + language + manufacturer + os + playerType + serverString + localFileReadDisable + version + + security + + + getRGB + getTransform + setRGB + setTransform + + + addListener + getAscii + isDown + getCode + isToggled + removeListener + BACKSPACE + CAPSLOCK + CONTROL + DELETEKEY + DOWN + END + ENTER + ESCAPE + HOME + INSERT + LEFT + PGDN + PGUP + SHIFT + RIGHT + SPACE + TAB + UP + + + hide + show + onMouseWheel + + + getBeginIndex + getCaretIndex + getEndIndex + getFocus + setFocus + setSelection + + + SharedObject + data + flush + getLocal + getSize + + + attachSound + getVolume + loadSound + setPan + getPan + setVolume + start + duration + position + onSoundComplete + id3 + onID3 + + + Video + deblocking + smoothing + + + Stage + align + height + scaleMode + showMenu + width + onResize + + + getFontList + getNewTextFormat + getTextFormat + removeTextField + replaceSel + setNewTextFormat + setTextFormat + autoSize + background + backgroundColor + border + borderColor + bottomScroll + embedFonts + hscroll + html + htmlText + maxChars + maxhscroll + multiline + password + restrict + selectable + text + textColor + textHeight + textWidth + type + variable + wordWrap + onChanged + onScroller + TextField + mouseWheelEnabled + replaceText + + + StyleSheet + getStyle + getStyleNames + parseCSS + setStyle + styleSheet + + + TextFormat + getTextExtent + blockIndent + bold + bullet + color + font + indent + italic + leading + leftMargin + rightMargin + size + tabStops + target + underline + url + + + TextSnapshot + findText + getCount + getSelected + getSelectedText + hitTestTextNearPos + getText + setSelectColor + setSelected + + + LoadVars + load + send + sendAndLoad + contentType + loaded + addRequestHeader + + + LocalConnection + allowDomain + allowInsecureDomain + domain + + + appendChild + cloneNode + createElement + createTextNode + hasChildNodes + insertBefore + parseXML + removeNode + attributes + childNodes + docTypeDecl + firstChild + ignoreWhite + lastChild + nextSibling + nodeName + nodeType + nodeValue + parentNode + previousSibling + status + xmlDecl + close + connect + onClose + onConnect + onXML + + + CustomActions + onUpdate + uninstall + list + install + get + + + NetConnection + + + NetStream + bufferLength + bufferTime + bytesLoaded + bytesTotal + pause + seek + setBufferTime + time + + + DataGlue + bindFormatFunction + bindFormatStrings + getDebugConfig + getDebugID + getService + setCredentials + setDebugID + getDebug + setDebug + createGatewayConnection + NetServices + setDefaultGatewayURL + addItem + addItemAt + addView + filter + getColumnNames + getItemAt + getLength + getNumberAvailable + isFullyPopulated + isLocal + removeAll + removeItemAt + replaceItemAt + setDeliveryMode + setField + sortItemsBy + + + chr + mbchr + mblength + mbord + mbsubstring + ord + _highquality + + + + + + abstract + boolean + byte + case + catch + char + class + const + debugger + default + + double + enum + export + extends + final + finally + float + goto + implements + + import + instanceof + int + interface + long + native + package + private + Void + protected + public + dynamic + + short + static + super + switch + synchronized + throw + throws + transient + try + volatile + + + diff --git a/extra/xmode/modes/ada95.xml b/extra/xmode/modes/ada95.xml new file mode 100644 index 0000000000..a6d15500a4 --- /dev/null +++ b/extra/xmode/modes/ada95.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + -- + + + " + " + + + ) + ( + .. + .all + := + /= + => + = + <> + << + >> + >= + <= + > + < + & + + + - + / + ** + * + + 'access + 'address + 'adjacent + 'aft + 'alignment + 'base + 'bit_order + 'body_version + 'callable + 'caller + 'ceiling + 'class + 'component_size + 'composed + 'constrained + 'copy_size + 'count + 'definite + 'delta + 'denorm + 'digits + 'exponent + 'external_tag + 'first + 'first_bit + 'floor + 'fore + 'fraction + 'genetic + 'identity + 'image + 'input + 'last + 'last_bit + 'leading_part + 'length + 'machine + 'machine_emax + 'machine_emin + 'machine_mantissa + 'machine_overflows + 'machine_radix + 'machine_rounds + 'max + 'max_size_in_storage_elements + 'min + 'model + 'model_emin + 'model_epsilon + 'model_mantissa + 'model_small + 'modulus + 'output + 'partition_id + 'pos + 'position + 'pred + 'range + 'read + 'remainder + 'round + 'rounding + 'safe_first + 'safe_last + 'scale + 'scaling + 'signed_zeros + 'size + 'small + 'storage_pool + 'storage_size + 'succ + 'tag + 'terminated + 'truncation + 'unbiased_rounding + 'unchecked_access + 'val + 'valid + 'value + 'version + 'wide_image + 'wide_value + 'wide_width + 'width + 'write + + + ' + ' + + + + + entry + function + procedure + + abort + abs + abstract + accept + access + aliased + all + and + array + at + begin + body + case + constant + declare + delay + delta + digits + do + else + elsif + end + exception + exit + for + goto + if + in + is + limited + loop + mod + new + not + or + others + out + package + pragma + private + protected + raise + range + record + rem + renames + requeue + return + select + separate + string + subtype + tagged + task + terminate + then + type + until + use + when + while + with + xor + + + + + address + boolean + character + duration + float + integer + latin_1 + natural + positive + string + time + + + false + null + true + + + diff --git a/extra/xmode/modes/antlr.xml b/extra/xmode/modes/antlr.xml new file mode 100644 index 0000000000..1e5dd1206a --- /dev/null +++ b/extra/xmode/modes/antlr.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + /** + */ + + + /* + */ + + // + + " + " + + | + : + + header + options + tokens + abstract + break + case + catch + continue + default + do + else + extends + final + finally + for + if + implements + instanceof + native + new + private + protected + public + return + static + switch + synchronized + throw + throws + transient + try + volatile + while + package + import + + boolean + byte + char + class + double + float + int + interface + long + short + void + + assert + strictfp + + false + null + super + this + true + + goto + const + + + diff --git a/extra/xmode/modes/apacheconf.xml b/extra/xmode/modes/apacheconf.xml new file mode 100644 index 0000000000..1c16a35199 --- /dev/null +++ b/extra/xmode/modes/apacheconf.xml @@ -0,0 +1,1007 @@ + + + + + + + + + + + + # + + + " + " + + + + ]*>]]> + ]]> + + + + ]*>]]> + ]]> + + + + AcceptMutex + AcceptPathInfo + AccessFileName + Action + AddAlt + AddAltByEncoding + AddAltByType + AddCharset + AddDefaultCharset + AddDescription + AddEncoding + AddHandler + AddIcon + AddIconByEncoding + AddIconByType + AddInputFilter + AddLanguage + AddModuleInfo + AddOutputFilter + AddOutputFilterByType + AddType + Alias + AliasMatch + AllowCONNECT + AllowEncodedSlashes + AuthDigestNcCheck + AuthDigestShmemSize + AuthLDAPCharsetConfig + BS2000Account + BrowserMatch + BrowserMatchNoCase + CacheDefaultExpire + CacheDirLength + CacheDirLevels + CacheDisable + CacheEnable + CacheExpiryCheck + CacheFile + CacheForceCompletion + CacheGcClean + CacheGcDaily + CacheGcInterval + CacheGcMemUsage + CacheGcUnused + CacheIgnoreCacheControl + CacheIgnoreNoLastMod + CacheLastModifiedFactor + CacheMaxExpire + CacheMaxFileSize + CacheMinFileSize + CacheNegotiatedDocs + CacheRoot + CacheSize + CacheTimeMargin + CharsetDefault + CharsetOptions + CharsetSourceEnc + CheckSpelling + ChildPerUserID + ContentDigest + CookieDomain + CookieExpires + CookieLog + CookieName + CookieStyle + CookieTracking + CoreDumpDirectory + CustomLog + DavDepthInfinity + DavLockDB + DavMinTimeout + DefaultIcon + DefaultLanguage + DefaultType + DeflateBufferSize + DeflateCompressionLevel + DeflateFilterNote + DeflateMemLevel + DeflateWindowSize + DirectoryIndex + DirectorySlash + DocumentRoot + EnableExceptionHook + EnableMMAP + EnableSendfile + ErrorDocument + ErrorLog + Example + ExpiresActive + ExpiresByType + ExpiresDefault + ExtFilterDefine + ExtendedStatus + FileETag + ForceLanguagePriority + ForensicLog + Group + Header + HeaderName + HostnameLookups + ISAPIAppendLogToErrors + ISAPIAppendLogToQuery + ISAPICacheFile + ISAPIFakeAsync + ISAPILogNotSupported + ISAPIReadAheadBuffer + IdentityCheck + ImapBase + ImapDefault + ImapMenu + Include + IndexIgnore + IndexOptions + IndexOrderDefault + KeepAlive + KeepAliveTimeout + LDAPCacheEntries + LDAPCacheTTL + LDAPOpCacheEntries + LDAPOpCacheTTL + LDAPSharedCacheFile + LDAPSharedCacheSize + LDAPTrustedCA + LDAPTrustedCAType + LanguagePriority + LimitInternalRecursion + LimitRequestBody + LimitRequestFields + LimitRequestFieldsize + LimitRequestLine + LimitXMLRequestBody + Listen + ListenBacklog + LoadFile + LoadModule + LockFile + LogFormat + LogLevel + MCacheMaxObjectCount + MCacheMaxObjectSize + MCacheMaxStreamingBuffer + MCacheMinObjectSize + MCacheRemovalAlgorithm + MCacheSize + MMapFile + MaxClients + MaxKeepAliveRequests + MaxMemFree + MaxRequestsPerChild + MaxRequestsPerThread + MaxSpareServers + MaxSpareThreads + MaxThreads + MaxThreadsPerChild + MetaDir + MetaFiles + MetaSuffix + MimeMagicFile + MinSpareServers + MinSpareThreads + MultiviewsMatch + NWSSLTrustedCerts + NWSSLUpgradeable + NameVirtualHost + NoProxy + NumServers + Options + PassEnv + PidFile + ProtocolEcho + ProxyBadHeader + ProxyBlock + ProxyDomain + ProxyErrorOverride + ProxyIOBufferSize + ProxyMaxForwards + ProxyPass + ProxyPassReverse + ProxyPreserveHost + ProxyReceiveBufferSize + ProxyRemote + ProxyRemoteMatch + ProxyRequests + ProxyTimeout + ProxyVia + RLimitCPU + RLimitMEM + RLimitNPROC + ReadmeName + Redirect + RedirectMatch + RedirectPermanent + RedirectTemp + RequestHeader + RewriteBase + RewriteCond + RewriteEngine + RewriteLock + RewriteLog + RewriteLogLevel + RewriteMap + RewriteOptions + RewriteRule + SSIEndTag + SSIErrorMsg + SSIStartTag + SSITimeFormat + SSIUndefinedEcho + SSLCACertificateFile + SSLCACertificatePath + SSLCARevocationFile + SSLCARevocationPath + SSLCertificateChainFile + SSLCertificateFile + SSLCertificateKeyFile + SSLCipherSuite + SSLEngine + SSLMutex + SSLOptions + SSLPassPhraseDialog + SSLProtocol + SSLProxyCACertificateFile + SSLProxyCACertificatePath + SSLProxyCARevocationFile + SSLProxyCARevocationPath + SSLProxyCipherSuite + SSLProxyEngine + SSLProxyMachineCertificateFile + SSLProxyMachineCertificatePath + SSLProxyProtocol + SSLProxyVerify + SSLProxyVerifyDepth + SSLRandomSeed + SSLSessionCache + SSLSessionCacheTimeout + SSLVerifyClient + SSLVerifyDepth + ScoreBoardFile + Script + ScriptAlias + ScriptAliasMatch + ScriptInterpreterSource + ScriptLog + ScriptLogBuffer + ScriptLogLength + ScriptSock + SecureListen + SendBufferSize + ServerAdmin + ServerLimit + ServerName + ServerRoot + ServerSignature + ServerTokens + SetEnv + SetEnvIf + SetEnvIfNoCase + SetHandler + SetInputFilter + SetOutputFilter + StartServers + StartThreads + SuexecUserGroup + ThreadLimit + ThreadStackSize + ThreadsPerChild + TimeOut + TransferLog + TypesConfig + UnsetEnv + UseCanonicalName + User + UserDir + VirtualDocumentRoot + VirtualDocumentRootIP + VirtualScriptAlias + VirtualScriptAliasIP + Win32DisableAcceptEx + XBitHack + + + AddModule + ClearModuleList + ServerType + Port + + Off + On + None + + + + + + # + + + " + " + + + + ]*>]]> + ]]> + + + + ]*>]]> + ]]> + + + + + AcceptMutex + AcceptPathInfo + AccessFileName + Action + AddAlt + AddAltByEncoding + AddAltByType + AddCharset + AddDefaultCharset + AddDescription + AddEncoding + AddHandler + AddIcon + AddIconByEncoding + AddIconByType + AddInputFilter + AddLanguage + AddModuleInfo + AddOutputFilter + AddOutputFilterByType + AddType + Alias + AliasMatch + Allow + AllowCONNECT + AllowEncodedSlashes + AllowOverride + Anonymous + Anonymous_Authoritative + Anonymous_LogEmail + Anonymous_MustGiveEmail + Anonymous_NoUserID + Anonymous_VerifyEmail + AuthAuthoritative + AuthDBMAuthoritative + AuthDBMGroupFile + AuthDBMType + AuthDBMUserFile + AuthDigestAlgorithm + AuthDigestDomain + AuthDigestFile + AuthDigestGroupFile + AuthDigestNcCheck + AuthDigestNonceFormat + AuthDigestNonceLifetime + AuthDigestQop + AuthDigestShmemSize + AuthGroupFile + AuthLDAPAuthoritative + AuthLDAPBindDN + AuthLDAPBindPassword + AuthLDAPCharsetConfig + AuthLDAPCompareDNOnServer + AuthLDAPDereferenceAliases + AuthLDAPEnabled + AuthLDAPFrontPageHack + AuthLDAPGroupAttribute + AuthLDAPGroupAttributeIsDN + AuthLDAPRemoteUserIsDN + AuthLDAPUrl + AuthName + AuthType + AuthUserFile + BS2000Account + BrowserMatch + BrowserMatchNoCase + CGIMapExtension + CacheDefaultExpire + CacheDirLength + CacheDirLevels + CacheDisable + CacheEnable + CacheExpiryCheck + CacheFile + CacheForceCompletion + CacheGcClean + CacheGcDaily + CacheGcInterval + CacheGcMemUsage + CacheGcUnused + CacheIgnoreCacheControl + CacheIgnoreNoLastMod + CacheLastModifiedFactor + CacheMaxExpire + CacheMaxFileSize + CacheMinFileSize + CacheNegotiatedDocs + CacheRoot + CacheSize + CacheTimeMargin + CharsetDefault + CharsetOptions + CharsetSourceEnc + CheckSpelling + ChildPerUserID + ContentDigest + CookieDomain + CookieExpires + CookieLog + CookieName + CookieStyle + CookieTracking + CoreDumpDirectory + CustomLog + Dav + DavDepthInfinity + DavLockDB + DavMinTimeout + DefaultIcon + DefaultLanguage + DefaultType + DeflateBufferSize + DeflateCompressionLevel + DeflateFilterNote + DeflateMemLevel + DeflateWindowSize + Deny + DirectoryIndex + DirectorySlash + DocumentRoot + EnableMMAP + EnableSendfile + ErrorDocument + ErrorLog + Example + ExpiresActive + ExpiresByType + ExpiresDefault + ExtFilterDefine + ExtFilterOptions + ExtendedStatus + FileETag + ForceLanguagePriority + ForceType + Group + Header + HeaderName + HostnameLookups + ISAPIAppendLogToErrors + ISAPIAppendLogToQuery + ISAPICacheFile + ISAPIFakeAsync + ISAPILogNotSupported + ISAPIReadAheadBuffer + IdentityCheck + ImapBase + ImapDefault + ImapMenu + Include + IndexIgnore + IndexOptions + IndexOrderDefault + KeepAlive + KeepAliveTimeout + LDAPCacheEntries + LDAPCacheTTL + LDAPOpCacheEntries + LDAPOpCacheTTL + LDAPSharedCacheSize + LDAPTrustedCA + LDAPTrustedCAType + LanguagePriority + LimitInternalRecursion + LimitRequestBody + LimitRequestFields + LimitRequestFieldsize + LimitRequestLine + LimitXMLRequestBody + Listen + ListenBacklog + LoadFile + LoadModule + LockFile + LogFormat + LogLevel + MCacheMaxObjectCount + MCacheMaxObjectSize + MCacheMaxStreamingBuffer + MCacheMinObjectSize + MCacheRemovalAlgorithm + MCacheSize + MMapFile + MaxClients + MaxKeepAliveRequests + MaxMemFree + MaxRequestsPerChild + MaxRequestsPerThread + MaxSpareServers + MaxSpareThreads + MaxThreads + MaxThreadsPerChild + MetaDir + MetaFiles + MetaSuffix + MimeMagicFile + MinSpareServers + MinSpareThreads + ModMimeUsePathInfo + MultiviewsMatch + NWSSLTrustedCerts + NameVirtualHost + NoProxy + NumServers + Options + Order + PassEnv + PidFile + ProtocolEcho + ProxyBadHeader + ProxyBlock + ProxyDomain + ProxyErrorOverride + ProxyIOBufferSize + ProxyMaxForwards + ProxyPass + ProxyPassReverse + ProxyPreserveHost + ProxyReceiveBufferSize + ProxyRemote + ProxyRemoteMatch + ProxyRequests + ProxyTimeout + ProxyVia + RLimitCPU + RLimitMEM + RLimitNPROC + ReadmeName + Redirect + RedirectMatch + RedirectPermanent + RedirectTemp + RemoveCharset + RemoveEncoding + RemoveHandler + RemoveInputFilter + RemoveLanguage + RemoveOutputFilter + RemoveType + RequestHeader + Require + RewriteBase + RewriteCond + RewriteEngine + RewriteLock + RewriteLog + RewriteLogLevel + RewriteMap + RewriteOptions + RewriteRule + SSIEndTag + SSIErrorMsg + SSIStartTag + SSITimeFormat + SSIUndefinedEcho + SSLCACertificateFile + SSLCACertificatePath + SSLCARevocationFile + SSLCARevocationPath + SSLCertificateChainFile + SSLCertificateFile + SSLCertificateKeyFile + SSLCipherSuite + SSLEngine + SSLMutex + SSLOptions + SSLPassPhraseDialog + SSLProtocol + SSLProxyCACertificateFile + SSLProxyCACertificatePath + SSLProxyCARevocationFile + SSLProxyCARevocationPath + SSLProxyCipherSuite + SSLProxyEngine + SSLProxyMachineCertificateFile + SSLProxyMachineCertificatePath + SSLProxyProtocol + SSLProxyVerify + SSLProxyVerifyDepth + SSLRandomSeed + SSLRequire + SSLRequireSSL + SSLSessionCache + SSLSessionCacheTimeout + SSLVerifyClient + SSLVerifyDepth + Satisfy + ScoreBoardFile + Script + ScriptAlias + ScriptAliasMatch + ScriptInterpreterSource + ScriptLog + ScriptLogBuffer + ScriptLogLength + ScriptSock + SecureListen + SendBufferSize + ServerAdmin + ServerLimit + ServerName + ServerRoot + ServerSignature + ServerTokens + SetEnv + SetEnvIf + SetEnvIfNoCase + SetHandler + SetInputFilter + SetOutputFilter + StartServers + StartThreads + SuexecUserGroup + ThreadLimit + ThreadStackSize + ThreadsPerChild + TimeOut + TransferLog + TypesConfig + UnsetEnv + UseCanonicalName + User + UserDir + VirtualDocumentRoot + VirtualDocumentRootIP + VirtualScriptAlias + VirtualScriptAliasIP + XBitHack + + + AddModule + ClearModuleList + + + SVNPath + SVNParentPath + SVNIndexXSLT + + + PythonHandler + PythonDebug + + All + ExecCGI + FollowSymLinks + Includes + IncludesNOEXEC + Indexes + MultiViews + None + Off + On + SymLinksIfOwnerMatch + from + + + + + + # + + + ]*>]]> + ]]> + + + + " + " + + + + AcceptMutex + AcceptPathInfo + AccessFileName + Action + AddAlt + AddAltByEncoding + AddAltByType + AddCharset + AddDefaultCharset + AddDescription + AddEncoding + AddHandler + AddIcon + AddIconByEncoding + AddIconByType + AddInputFilter + AddLanguage + AddModuleInfo + AddOutputFilter + AddOutputFilterByType + AddType + Alias + AliasMatch + AllowCONNECT + AllowEncodedSlashes + AssignUserID + AuthDigestNcCheck + AuthDigestShmemSize + AuthLDAPCharsetConfig + BS2000Account + BrowserMatch + BrowserMatchNoCase + CacheDefaultExpire + CacheDirLength + CacheDirLevels + CacheDisable + CacheEnable + CacheExpiryCheck + CacheFile + CacheForceCompletion + CacheGcClean + CacheGcDaily + CacheGcInterval + CacheGcMemUsage + CacheGcUnused + CacheIgnoreCacheControl + CacheIgnoreNoLastMod + CacheLastModifiedFactor + CacheMaxExpire + CacheMaxFileSize + CacheMinFileSize + CacheNegotiatedDocs + CacheRoot + CacheSize + CacheTimeMargin + CharsetDefault + CharsetOptions + CharsetSourceEnc + CheckSpelling + ChildPerUserID + ContentDigest + CookieDomain + CookieExpires + CookieLog + CookieName + CookieStyle + CookieTracking + CoreDumpDirectory + CustomLog + DavDepthInfinity + DavLockDB + DavMinTimeout + DefaultIcon + DefaultLanguage + DefaultType + DeflateBufferSize + DeflateCompressionLevel + DeflateFilterNote + DeflateMemLevel + DeflateWindowSize + DirectoryIndex + DirectorySlash + DocumentRoot + EnableMMAP + EnableSendfile + ErrorDocument + ErrorLog + Example + ExpiresActive + ExpiresByType + ExpiresDefault + ExtFilterDefine + ExtendedStatus + FileETag + ForceLanguagePriority + ForensicLog + Group + Header + HeaderName + HostnameLookups + ISAPIAppendLogToErrors + ISAPIAppendLogToQuery + ISAPICacheFile + ISAPIFakeAsync + ISAPILogNotSupported + ISAPIReadAheadBuffer + IdentityCheck + ImapBase + ImapDefault + ImapMenu + Include + IndexIgnore + IndexOptions + IndexOrderDefault + JkMount + KeepAlive + KeepAliveTimeout + LDAPCacheEntries + LDAPCacheTTL + LDAPOpCacheEntries + LDAPOpCacheTTL + LDAPSharedCacheSize + LDAPTrustedCA + LDAPTrustedCAType + LanguagePriority + LimitInternalRecursion + LimitRequestBody + LimitRequestFields + LimitRequestFieldsize + LimitRequestLine + LimitXMLRequestBody + Listen + ListenBacklog + LoadFile + LoadModule + LockFile + LogFormat + LogLevel + MCacheMaxObjectCount + MCacheMaxObjectSize + MCacheMaxStreamingBuffer + MCacheMinObjectSize + MCacheRemovalAlgorithm + MCacheSize + MMapFile + MaxClients + MaxKeepAliveRequests + MaxMemFree + MaxRequestsPerChild + MaxRequestsPerThread + MaxSpareServers + MaxSpareThreads + MaxThreads + MaxThreadsPerChild + MetaDir + MetaFiles + MetaSuffix + MimeMagicFile + MinSpareServers + MinSpareThreads + MultiviewsMatch + NWSSLTrustedCerts + NameVirtualHost + NoProxy + NumServers + Options + PassEnv + PidFile + ProtocolEcho + ProxyBadHeader + ProxyBlock + ProxyDomain + ProxyErrorOverride + ProxyIOBufferSize + ProxyMaxForwards + ProxyPass + ProxyPassReverse + ProxyPreserveHost + ProxyReceiveBufferSize + ProxyRemote + ProxyRemoteMatch + ProxyRequests + ProxyTimeout + ProxyVia + RLimitCPU + RLimitMEM + RLimitNPROC + ReadmeName + Redirect + RedirectMatch + RedirectPermanent + RedirectTemp + RemoveCharset + RemoveEncoding + RemoveHandler + RemoveInputFilter + RemoveLanguage + RemoveOutputFilter + RemoveType + RequestHeader + RewriteBase + RewriteCond + RewriteEngine + RewriteLock + RewriteLog + RewriteLogLevel + RewriteMap + RewriteOptions + RewriteRule + SSIEndTag + SSIErrorMsg + SSIStartTag + SSITimeFormat + SSIUndefinedEcho + SSLCACertificateFile + SSLCACertificatePath + SSLCARevocationFile + SSLCARevocationPath + SSLCertificateChainFile + SSLCertificateFile + SSLCertificateKeyFile + SSLCipherSuite + SSLEngine + SSLMutex + SSLOptions + SSLPassPhraseDialog + SSLProtocol + SSLProxyCACertificateFile + SSLProxyCACertificatePath + SSLProxyCARevocationFile + SSLProxyCARevocationPath + SSLProxyCipherSuite + SSLProxyEngine + SSLProxyMachineCertificateFile + SSLProxyMachineCertificatePath + SSLProxyProtocol + SSLProxyVerify + SSLProxyVerifyDepth + SSLRandomSeed + SSLSessionCache + SSLSessionCacheTimeout + SSLVerifyClient + SSLVerifyDepth + ScoreBoardFile + Script + ScriptAlias + ScriptAliasMatch + ScriptInterpreterSource + ScriptLog + ScriptLogBuffer + ScriptLogLength + ScriptSock + SecureListen + SendBufferSize + ServerAdmin + ServerAlias + ServerLimit + ServerName + ServerPath + ServerRoot + ServerSignature + ServerTokens + SetEnv + SetEnvIf + SetEnvIfNoCase + SetHandler + SetInputFilter + SetOutputFilter + StartServers + StartThreads + SuexecUserGroup + ThreadLimit + ThreadStackSize + ThreadsPerChild + TimeOut + TransferLog + TypesConfig + UnsetEnv + UseCanonicalName + User + UserDir + VirtualDocumentRoot + VirtualDocumentRootIP + VirtualScriptAlias + VirtualScriptAliasIP + XBitHack + + Off + On + None + + + + diff --git a/extra/xmode/modes/apdl.xml b/extra/xmode/modes/apdl.xml new file mode 100644 index 0000000000..d66f8bf7ec --- /dev/null +++ b/extra/xmode/modes/apdl.xml @@ -0,0 +1,7536 @@ + + + + + + + + + + + + + + + + : + + + ! + + + + ' + ' + + + + + *ABBR + *ABB + *AFUN + *AFU + *ASK + *CFCLOS + *CFC + *CFOPEN + *CFO + *CFWRITE + *CFW + *CREATE + *CRE + *CYCLE + *CYC + *DEL + *DIM + *DO + *ELSEIF + *ELSE + *ENDDO + *ENDIF + *END + *EVAL + *EVA + *EXIT + *EXI + *GET + *GO + *IF + *LIST + *LIS + *MFOURI + *MFO + *MFUN + *MFU + *MOONEY + *MOO + *MOPER + *MOP + *MSG + *REPEAT + *REP + *SET + *STATUS + *STA + *TREAD + *TRE + *ULIB + *ULI + *USE + *VABS + *VAB + *VCOL + *VCO + *VCUM + *VCU + *VEDIT + *VED + *VFACT + *VFA + *VFILL + *VFI + *VFUN + *VFU + *VGET + *VGE + *VITRP + *VIT + *VLEN + *VLE + *VMASK + *VMA + *VOPER + *VOP + *VPLOT + *VPL + *VPUT + *VPU + *VREAD + *VRE + *VSCFUN + *VSC + *VSTAT + *VST + *VWRITE + *VWR + + + + + + /ANFILE + /ANF + /ANGLE + /ANG + /ANNOT + /ANN + /ANUM + /ANU + /ASSIGN + /ASS + /AUTO + /AUT + /AUX15 + /AUX2 + /AUX + /AXLAB + /AXL + /BATCH + /BAT + /CLABEL + /CLA + /CLEAR + /CLE + /CLOG + /CLO + /CMAP + /CMA + /COLOR + /COL + /COM + /CONFIG + /CONTOUR + /CON + /COPY + /COP + /CPLANE + /CPL + /CTYPE + /CTY + /CVAL + /CVA + /DELETE + /DEL + /DEVDISP + /DEVICE + /DEV + /DIST + /DIS + /DSCALE + /DSC + /DV3D + /DV3 + /EDGE + /EDG + /EFACET + /EFA + /EOF + /ERASE + /ERA + /ESHAPE + /ESH + /EXIT + /EXI + /EXPAND + /EXP + /FACET + /FAC + /FDELE + /FDE + /FILNAME + /FIL + /FOCUS + /FOC + /FORMAT + /FOR + /FTYPE + /FTY + /GCMD + /GCM + /GCOLUMN + /GCO + /GFILE + /GFI + /GFORMAT + /GFO + /GLINE + /GLI + /GMARKER + /GMA + /GOLIST + /GOL + /GOPR + /GOP + /GO + /GRAPHICS + /GRA + /GRESUME + /GRE + /GRID + /GRI + /GROPT + /GRO + /GRTYP + /GRT + /GSAVE + /GSA + /GST + /GTHK + /GTH + /GTYPE + /GTY + /HEADER + /HEA + /INPUT + /INP + /LARC + /LAR + /LIGHT + /LIG + /LINE + /LIN + /LSPEC + /LSP + /LSYMBOL + /LSY + /MENU + /MEN + /MPLIB + /MPL + /MREP + /MRE + /MSTART + /MST + /NERR + /NER + /NOERASE + /NOE + /NOLIST + /NOL + /NOPR + /NOP + /NORMAL + /NOR + /NUMBER + /NUM + /OPT + /OUTPUT + /OUt + /PAGE + /PAG + /PBC + /PBF + /PCIRCLE + /PCI + /PCOPY + /PCO + /PLOPTS + /PLO + /PMACRO + /PMA + /PMETH + /PME + /PMORE + /PMO + /PNUM + /PNU + /POLYGON + /POL + /POST26 + /POST1 + /POS + /PREP7 + /PRE + /PSEARCH + /PSE + /PSF + /PSPEC + /PSP + /PSTATUS + /PST + /PSYMB + /PSY + /PWEDGE + /PWE + /QUIT + /QUI + /RATIO + /RAT + /RENAME + /REN + /REPLOT + /REP + /RESET + /RES + /RGB + /RUNST + /RUN + /SECLIB + /SEC + /SEG + /SHADE + /SHA + /SHOWDISP + /SHOW + /SHO + /SHRINK + /SHR + /SOLU + /SOL + /SSCALE + /SSC + /STATUS + /STA + /STITLE + /STI + /SYP + /SYS + /TITLE + /TIT + /TLABEL + /TLA + /TRIAD + /TRI + /TRLCY + /TRL + /TSPEC + /TSP + /TYPE + /TYP + /UCMD + /UCM + /UIS + /UI + /UNITS + /UNI + /USER + /USE + /VCONE + /VCO + /VIEW + /VIE + /VSCALE + /VSC + /VUP + /WAIT + /WAI + /WINDOW + /WIN + /XRANGE + /XRA + /YRANGE + /YRA + /ZOOM + /ZOO + + + + + + - + $ + = + ( + ) + , + ; + * + / + + + %C + %G + %I + %/ + + + + % + % + + + + + + + A + AADD + AADD + AATT + AATT + ABBR + ABBRES + ABBS + ABBSAV + ABS + ACCA + ACCAT + ACEL + ACEL + ACLE + ACLEAR + ADAP + ADAPT + ADD + ADDA + ADDAM + ADEL + ADELE + ADGL + ADGL + ADRA + ADRAG + AFIL + AFILLT + AFLI + AFLIST + AFSU + AFSURF + AGEN + AGEN + AGLU + AGLUE + AINA + AINA + AINP + AINP + AINV + AINV + AL + ALIS + ALIST + ALLS + ALLSEL + ALPF + ALPFILL + ALPH + ALPHAD + AMAP + AMAP + AMES + AMESH + ANCN + ANCNTR + ANCU + ANCUT + ANDA + ANDATA + ANDS + ANDSCL + ANDY + ANDYNA + ANFL + ANFLOW + ANIM + ANIM + ANIS + ANISOS + ANMO + ANMODE + ANOR + ANORM + ANTI + ANTIME + ANTY + ANTYPE + AOFF + AOFFST + AOVL + AOVLAP + APLO + APLOT + APPE + APPEND + APTN + APTN + ARCL + ARCLEN + ARCO + ARCOLLAPSE + ARCT + ARCTRM + ARDE + ARDETACH + AREA + AREAS + AREF + AREFINE + AREV + AREVERSE + ARFI + ARFILL + ARME + ARMERGE + AROT + AROTAT + ARSC + ARSCALE + ARSP + ARSPLIT + ARSY + ARSYM + ASBA + ASBA + ASBL + ASBL + ASBV + ASBV + ASBW + ASBW + ASEL + ASEL + ASKI + ASKIN + ASLL + ASLL + ASLV + ASLV + ASUB + ASUB + ASUM + ASUM + ATAN + ATAN + ATRA + ATRAN + ATYP + ATYPE + AUTO + AUTOTS + AVPR + AVPRIN + AVRE + AVRES + BELL + BELLOW + BEND + BEND + BETA + BETAD + BF + BFA + BFAD + BFADELE + BFAL + BFALIST + BFCU + BFCUM + BFDE + BFDELE + BFE + BFEC + BFECUM + BFED + BFEDELE + BFEL + BFELIST + BFES + BFESCAL + BFIN + BFINT + BFK + BFKD + BFKDELE + BFKL + BFKLIST + BFL + BFLD + BFLDELE + BFLI + BFLIST + BFLL + BFLLIST + BFSC + BFSCALE + BFTR + BFTRAN + BFUN + BFUNIF + BFV + BFVD + BFVDELE + BFVL + BFVLIST + BIOO + BIOOPT + BIOT + BIOT + BLC4 + BLC4 + BLC5 + BLC5 + BLOC + BLOCK + BOOL + BOOL + BOPT + BOPTN + BRAN + BRANCH + BSPL + BSPLIN + BTOL + BTOL + BUCO + BUCOPT + CALC + CALC + CBDO + CBDOF + CDRE + CDREAD + CDWR + CDWRITE + CE + CECM + CECMOD + CECY + CECYC + CEDE + CEDELE + CEIN + CEINTF + CELI + CELIST + CENT + CENTER + CEQN + CEQN + CERI + CERIG + CESG + CESGEN + CFAC + CFACT + CGLO + CGLOC + CGOM + CGOMGA + CHEC + CHECK + CHKM + CHKMSH + CIRC + CIRCLE + CLOC + CLOCAL + CLOG + CLOG + CLRM + CLRMSHLN + CM + CMDE + CMDELE + CMED + CMEDIT + CMGR + CMGRP + CMLI + CMLIST + CMPL + CMPLOT + CMSE + CMSEL + CNVT + CNVTOL + CON4 + CON4 + CONE + CONE + CONJ + CONJUG + COUP + COUPLE + COVA + COVAL + CP + CPDE + CPDELE + CPIN + CPINTF + CPLG + CPLGEN + CPLI + CPLIST + CPNG + CPNGEN + CPSG + CPSGEN + CQC + CRPL + CRPLIM + CS + CSCI + CSCIR + CSDE + CSDELE + CSKP + CSKP + CSLI + CSLIST + CSWP + CSWPLA + CSYS + CSYS + CURR2D + CURR + CUTC + CUTCONTROL + CVAR + CVAR + CYCG + CYCGEN + CYCS + CYCSOL + CYL4 + CYL4 + CYL5 + CYL5 + CYLI + CYLIND + D + DA + DADE + DADELE + DALI + DALIST + DATA + DATA + DATA + DATADEF + DCGO + DCGOMG + DCUM + DCUM + DDEL + DDELE + DEAC + DEACT + DEFI + DEFINE + DELT + DELTIM + DERI + DERIV + DESI + DESIZE + DESO + DESOL + DETA + DETAB + DIG + DIGI + DIGIT + DISP + DISPLAY + DK + DKDE + DKDELE + DKLI + DKLIST + DL + DLDE + DLDELE + DLIS + DLIST + DLLI + DLLIST + DMOV + DMOVE + DMPR + DMPRAT + DNSO + DNSOL + DOF + DOFS + DOFSEL + DOME + DOMEGA + DSCA + DSCALE + DSET + DSET + DSUM + DSUM + DSUR + DSURF + DSYM + DSYM + DSYS + DSYS + DTRA + DTRAN + DUMP + DUMP + DYNO + DYNOPT + E + EALI + EALIVE + EDBO + EDBOUND + EDBV + EDBVIS + EDCD + EDCDELE + EDCG + EDCGEN + EDCL + EDCLIST + EDCO + EDCONTACT + EDCP + EDCPU + EDCR + EDCRB + EDCS + EDCSC + EDCT + EDCTS + EDCU + EDCURVE + EDDA + EDDAMP + EDDR + EDDRELAX + EDEL + EDELE + EDEN + EDENERGY + EDFP + EDFPLOT + EDHG + EDHGLS + EDHI + EDHIST + EDHT + EDHTIME + EDIN + EDINT + EDIV + EDIVELO + EDLC + EDLCS + EDLD + EDLDPLOT + EDLO + EDLOAD + EDMP + EDMP + EDND + EDNDTSD + EDNR + EDNROT + EDOP + EDOPT + EDOU + EDOUT + EDRE + EDREAD + EDRS + EDRST + EDSH + EDSHELL + EDSO + EDSOLV + EDST + EDSTART + EDWE + EDWELD + EDWR + EDWRITE + EGEN + EGEN + EINT + EINTF + EKIL + EKILL + ELEM + ELEM + ELIS + ELIST + EMAG + EMAGERR + EMF + EMID + EMID + EMIS + EMIS + EMOD + EMODIF + EMOR + EMORE + EMSY + EMSYM + EMUN + EMUNIT + EN + ENGE + ENGEN + ENOR + ENORM + ENSY + ENSYM + EPLO + EPLOT + EQSL + EQSLV + ERAS + ERASE + EREA + EREAD + EREF + EREFINE + ERES + ERESX + ERNO + ERNORM + ERRA + ERRANG + ESEL + ESEL + ESIZ + ESIZE + ESLA + ESLA + ESLL + ESLL + ESLN + ESLN + ESLV + ESLV + ESOL + ESOL + ESOR + ESORT + ESTI + ESTIF + ESUR + ESURF + ESYM + ESYM + ESYS + ESYS + ET + ETAB + ETABLE + ETCH + ETCHG + ETDE + ETDELE + ETLI + ETLIST + ETYP + ETYPE + EUSO + EUSORT + EWRI + EWRITE + EXP + EXPA + EXPA + EXPAND + EXPASS + EXPS + EXPSOL + EXTO + EXTOPT + EXTR + EXTREM + FATI + FATIGUE + FCUM + FCUM + FDEL + FDELE + FE + FEBO + FEBODY + FECO + FECONS + FEFO + FEFOR + FELI + FELIST + FESU + FESURF + FILE + FILE + FILE + FILE + FILEAUX2 + FILEDISP + FILL + FILL + FILL + FILLDATA + FINI + FINISH + FITE + FITEM + FK + FKDE + FKDELE + FKLI + FKLIST + FL + FLAN + FLANGE + FLDA + FLDATA + FLDATA10 + FLDATA11 + FLDATA12 + FLDATA13 + FLDATA14 + FLDATA15 + FLDATA16 + FLDATA17 + FLDATA18 + FLDATA19 + FLDATA1 + FLDATA20 + FLDATA20A + FLDATA21 + FLDATA22 + FLDATA23 + FLDATA24 + FLDATA24A + FLDATA24B + FLDATA24C + FLDATA24D + FLDATA25 + FLDATA26 + FLDATA27 + FLDATA28 + FLDATA29 + FLDATA2 + FLDATA30 + FLDATA31 + FLDATA32 + FLDATA33 + FLDATA37 + FLDATA3 + FLDATA4 + FLDATA4A + FLDATA5 + FLDATA6 + FLDATA7 + FLDATA8 + FLDATA9 + FLDATA + FLIS + FLIST + FLLI + FLLIST + FLOC + FLOCHECK + FLOT + FLOTRAN + FLRE + FLREAD + FLST + FLST + FLUX + FLUXV + FMAG + FMAG + FMAGBC + FMAGSUM + FOR2 + FOR2D + FORC + FORCE + FORM + FORM + FP + FPLI + FPLIST + FREQ + FREQ + FS + FSCA + FSCALE + FSDE + FSDELE + FSLI + FSLIST + FSNO + FSNODE + FSPL + FSPLOT + FSSE + FSSECT + FSUM + FSUM + FTCA + FTCALC + FTRA + FTRAN + FTSI + FTSIZE + FTWR + FTWRITE + FVME + FVMESH + GAP + GAPF + GAPFINISH + GAPL + GAPLIST + GAPM + GAPMERGE + GAPO + GAPOPT + GAPP + GAPPLOT + GAUG + GAUGE + GCGE + GCGEN + GENO + GENOPT + GEOM + GEOM + GEOM + GEOMETRY + GP + GPDE + GPDELE + GPLI + GPLIST + GPLO + GPLOT + GRP + GSUM + GSUM + HARF + HARFRQ + HELP + HELP + HELP + HELPDISP + HFSW + HFSWEEP + HMAG + HMAGSOLV + HPGL + HPGL + HPTC + HPTCREATE + HPTD + HPTDELETE + HRCP + HRCPLX + HREX + HREXP + HROP + HROPT + HROU + HROUT + IC + ICDE + ICDELE + ICLI + ICLIST + IGES + IGES + IGESIN + IGESOUT + IMAG + IMAGIN + IMME + IMMED + IMPD + IMPD + INRE + INRES + INRT + INRTIA + INT1 + INT1 + INTS + INTSRF + IOPT + IOPTN + IRLF + IRLF + IRLI + IRLIST + K + KATT + KATT + KBC + KBET + KBETW + KCAL + KCALC + KCEN + KCENTER + KCLE + KCLEAR + KDEL + KDELE + KDIS + KDIST + KESI + KESIZE + KEYO + KEYOPT + KEYP + KEYPTS + KEYW + KEYW + KFIL + KFILL + KGEN + KGEN + KL + KLIS + KLIST + KMES + KMESH + KMOD + KMODIF + KMOV + KMOVE + KNOD + KNODE + KPLO + KPLOT + KPSC + KPSCALE + KREF + KREFINE + KSCA + KSCALE + KSCO + KSCON + KSEL + KSEL + KSLL + KSLL + KSLN + KSLN + KSUM + KSUM + KSYM + KSYMM + KTRA + KTRAN + KUSE + KUSE + KWPA + KWPAVE + KWPL + KWPLAN + L2AN + L2ANG + L2TA + L2TAN + L + LANG + LANG + LARC + LARC + LARE + LAREA + LARG + LARGE + LATT + LATT + LAYE + LAYE + LAYER + LAYERP26 + LAYL + LAYLIST + LAYP + LAYPLOT + LCAB + LCABS + LCAS + LCASE + LCCA + LCCA + LCCALC + LCCAT + LCDE + LCDEF + LCFA + LCFACT + LCFI + LCFILE + LCLE + LCLEAR + LCOM + LCOMB + LCOP + LCOPER + LCSE + LCSEL + LCSL + LCSL + LCSU + LCSUM + LCWR + LCWRITE + LCZE + LCZERO + LDEL + LDELE + LDIV + LDIV + LDRA + LDRAG + LDRE + LDREAD + LESI + LESIZE + LEXT + LEXTND + LFIL + LFILLT + LFSU + LFSURF + LGEN + LGEN + LGLU + LGLUE + LGWR + LGWRITE + LINA + LINA + LINE + LINE + LINE + LINES + LINL + LINL + LINP + LINP + LINV + LINV + LLIS + LLIST + LMAT + LMATRIX + LMES + LMESH + LNCO + LNCOLLAPSE + LNDE + LNDETACH + LNFI + LNFILL + LNME + LNMERGE + LNSP + LNSPLIT + LNSR + LNSRCH + LOCA + LOCAL + LOVL + LOVLAP + LPLO + LPLOT + LPTN + LPTN + LREF + LREFINE + LREV + LREVERSE + LROT + LROTAT + LSBA + LSBA + LSBL + LSBL + LSBV + LSBV + LSBW + LSBW + LSCL + LSCLEAR + LSDE + LSDELE + LSEL + LSEL + LSLA + LSLA + LSLK + LSLK + LSOP + LSOPER + LSRE + LSREAD + LSSC + LSSCALE + LSSO + LSSOLVE + LSTR + LSTR + LSUM + LSUM + LSWR + LSWRITE + LSYM + LSYMM + LTAN + LTAN + LTRA + LTRAN + LUMP + LUMPM + LVSC + LVSCALE + LWPL + LWPLAN + M + MAGO + MAGOPT + MAGS + MAGSOLV + MAST + MASTER + MAT + MATE + MATER + MDAM + MDAMP + MDEL + MDELE + MESH + MESHING + MGEN + MGEN + MITE + MITER + MLIS + MLIST + MMF + MODE + MODE + MODM + MODMSH + MODO + MODOPT + MONI + MONITOR + MOPT + MOPT + MOVE + MOVE + MP + MPAM + MPAMOD + MPCH + MPCHG + MPDA + MPDATA + MPDE + MPDELE + MPDR + MPDRES + MPLI + MPLIST + MPMO + MPMOD + MPPL + MPPLOT + MPRE + MPREAD + MPRI + MPRINT + MPTE + MPTEMP + MPTG + MPTGEN + MPTR + MPTRES + MPUN + MPUNDO + MPWR + MPWRITE + MSAD + MSADV + MSCA + MSCAP + MSDA + MSDATA + MSHA + MSHAPE + MSHK + MSHKEY + MSHM + MSHMID + MSHP + MSHPATTERN + MSME + MSMETH + MSNO + MSNOMF + MSPR + MSPROP + MSQU + MSQUAD + MSRE + MSRELAX + MSSO + MSSOLU + MSSP + MSSPEC + MSTE + MSTERM + MSVA + MSVARY + MXPA + MXPAND + N + NANG + NANG + NCNV + NCNV + NDEL + NDELE + NDIS + NDIST + NEQI + NEQIT + NFOR + NFORCE + NGEN + NGEN + NKPT + NKPT + NLGE + NLGEOM + NLIS + NLIST + NLOG + NLOG + NLOP + NLOPT + NMOD + NMODIF + NOCO + NOCOLOR + NODE + NODES + NOOR + NOORDER + NPLO + NPLOT + NPRI + NPRINT + NREA + NREAD + NREF + NREFINE + NRLS + NRLSUM + NROP + NROPT + NROT + NROTAT + NRRA + NRRANG + NSCA + NSCALE + NSEL + NSEL + NSLA + NSLA + NSLE + NSLE + NSLK + NSLK + NSLL + NSLL + NSLV + NSLV + NSOL + NSOL + NSOR + NSORT + NSTO + NSTORE + NSUB + NSUBST + NSVR + NSVR + NSYM + NSYM + NUMC + NUMCMP + NUME + NUMEXP + NUMM + NUMMRG + NUMO + NUMOFF + NUMS + NUMSTR + NUMV + NUMVAR + NUSO + NUSORT + NWPA + NWPAVE + NWPL + NWPLAN + NWRI + NWRITE + nx + ny + nz + OMEG + OMEGA + OPAD + OPADD + OPAN + OPANL + OPCL + OPCLR + OPDA + OPDATA + OPDE + OPDEL + OPEQ + OPEQN + OPER + OPERATE + OPEX + OPEXE + OPFA + OPFACT + OPFR + OPFRST + OPGR + OPGRAD + OPKE + OPKEEP + OPLF + OPLFA + OPLG + OPLGR + OPLI + OPLIST + OPLO + OPLOOP + OPLS + OPLSW + OPMA + OPMAKE + OPNC + OPNCONTROL + OPPR + OPPRNT + OPRA + OPRAND + OPRE + OPRESU + OPRF + OPRFA + OPRG + OPRGR + OPRS + OPRSW + OPSA + OPSAVE + OPSE + OPSEL + OPSU + OPSUBP + OPSW + OPSWEEP + OPTY + OPTYPE + OPUS + OPUSER + OPVA + OPVAR + OUTO + OUTOPT + OUTP + OUTPR + OUTR + OUTRES + PADE + PADELE + PAGE + PAGET + PAPU + PAPUT + PARE + PARESU + PARR + PARRES + PARS + PARSAV + PASA + PASAVE + PATH + PATH + PCAL + PCALC + PCIR + PCIRC + PCON + PCONV + PCOR + PCORRO + PCRO + PCROSS + PDEF + PDEF + PDOT + PDOT + PDRA + PDRAG + PERB + PERBC2D + PEXC + PEXCLUDE + PFAC + PFACT + PFLU + PFLUID + PGAP + PGAP + PHYS + PHYSICS + PINC + PINCLUDE + PINS + PINSUL + PIPE + PIPE + PIVC + PIVCHECK + PLAN + PLANEWAVE + PLCO + PLCONV + PLCP + PLCPLX + PLCR + PLCRACK + PLDI + PLDISP + PLES + PLESOL + PLET + PLETAB + PLF2 + PLF2D + PLLS + PLLS + PLNS + PLNSOL + PLOT + PLOT + PLOT + PLOTTING + PLPA + PLPA + PLPAGM + PLPATH + PLSE + PLSECT + PLTI + PLTIME + PLTR + PLTRAC + PLVA + PLVA + PLVAR + PLVAROPT + PLVE + PLVECT + PMAP + PMAP + PMET + PMETH + PMGT + PMGTRAN + PMOP + PMOPTS + POIN + POINT + POLY + POLY + POPT + POPT + PORT + PORTOPT + POWE + POWERH + PPAT + PPATH + PPLO + PPLOT + PPRA + PPRANGE + PPRE + PPRES + PRAN + PRANGE + PRCO + PRCONV + PRCP + PRCPLX + PREC + PRECISION + PRED + PRED + PRER + PRERR + PRES + PRESOL + PRET + PRETAB + PRI2 + PRI2 + PRIM + PRIM + PRIN + PRINT + PRIS + PRISM + PRIT + PRITER + PRNL + PRNLD + PRNS + PRNSOL + PROD + PROD + PRPA + PRPATH + PRRF + PRRFOR + PRRS + PRRSOL + PRSE + PRSECT + PRSS + PRSSOL + PRTI + PRTIME + PRVA + PRVA + PRVAR + PRVAROPT + PRVE + PRVECT + PSCR + PSCR + PSDC + PSDCOM + PSDF + PSDFRQ + PSDR + PSDRES + PSDS + PSDSPL + PSDU + PSDUNIT + PSDV + PSDVAL + PSDW + PSDWAV + PSEL + PSEL + PSOL + PSOLVE + PSPE + PSPEC + PSPR + PSPRNG + PSTR + PSTRES + PTEM + PTEMP + PTXY + PTXY + PUNI + PUNIT + PVEC + PVECT + QDVA + QDVAL + QFAC + QFACT + QUAD + QUAD + QUOT + QUOT + R + RACE + RACE + RALL + RALL + RAPP + RAPPND + RBE3 + RBE3 + RCON + RCON + RDEL + RDELE + REAL + REAL + REAL + REALVAR + RECT + RECTNG + REDU + REDUCE + REFL + REFLCOEF + REOR + REORDER + RESE + RESET + RESP + RESP + RESU + RESUME + REXP + REXPORT + RFIL + RFILSZ + RFOR + RFORCE + RIGI + RIGID + RIMP + RIMPORT + RITE + RITER + RLIS + RLIST + RMEM + RMEMRY + RMOD + RMODIF + RMOR + RMORE + ROCK + ROCK + RPOL + RPOLY + RPR4 + RPR4 + RPRI + RPRISM + RPSD + RPSD + RSPE + RSPEED + RSTA + RSTAT + RSYS + RSYS + RTIM + RTIMST + RUN + RWFR + RWFRNT + SABS + SABS + SADD + SADD + SALL + SALLOW + SARP + SARPLOT + SAVE + SAVE + SBCL + SBCLIST + SBCT + SBCTRAN + SDEL + SDELETE + SE + SECD + SECDATA + SECN + SECNUM + SECO + SECOFFSET + SECP + SECPLOT + SECR + SECREAD + SECT + SECTYPE + SECW + SECWRITE + SED + SEDL + SEDLIST + SEEX + SEEXP + SELI + SELIST + SELM + SELM + SENE + SENERGY + SEOP + SEOPT + SESY + SESYMM + SET + SETR + SETRAN + SEXP + SEXP + SF + SFA + SFAC + SFACT + SFAD + SFADELE + SFAL + SFALIST + SFBE + SFBEAM + SFCA + SFCALC + SFCU + SFCUM + SFDE + SFDELE + SFE + SFED + SFEDELE + SFEL + SFELIST + SFFU + SFFUN + SFGR + SFGRAD + SFL + SFLD + SFLDELE + SFLI + SFLIST + SFLL + SFLLIST + SFSC + SFSCALE + SFTR + SFTRAN + SHEL + SHELL + SHPP + SHPP + SLIS + SLIST + SLPP + SLPPLOT + SLSP + SLSPLOT + SMAL + SMALL + SMAX + SMAX + SMBO + SMBODY + SMCO + SMCONS + SMFO + SMFOR + SMIN + SMIN + SMRT + SMRTSIZE + SMSU + SMSURF + SMUL + SMULT + SOLC + SOLCONTROL + SOLU + SOLU + SOLU + SOLUOPT + SOLV + SOLVE + SORT + SORT + SOUR + SOURCE + SPAC + SPACE + SPAR + SPARM + SPEC + SPEC + SPH4 + SPH4 + SPH5 + SPH5 + SPHE + SPHERE + SPLI + SPLINE + SPOI + SPOINT + SPOP + SPOPT + SPRE + SPREAD + SPTO + SPTOPT + SQRT + SQRT + SRCS + SRCS + SRSS + SRSS + SSLN + SSLN + SSTI + SSTIF + SSUM + SSUM + STAT + STAT + STEF + STEF + STOR + STORE + SUBO + SUBOPT + SUBS + SUBSET + SUMT + SUMTYPE + SV + SVTY + SVTYP + TALL + TALLOW + TB + TBCO + TBCOPY + TBDA + TBDATA + TBDE + TBDELE + TBLE + TBLE + TBLI + TBLIST + TBMO + TBMODIF + TBPL + TBPLOT + TBPT + TBPT + TBTE + TBTEMP + TCHG + TCHG + TEE + TERM + TERM + TIME + TIME + TIME + TIMERANGE + TIMI + TIMINT + TIMP + TIMP + TINT + TINTP + TOFF + TOFFST + TOPD + TOPDEF + TOPE + TOPEXE + TOPI + TOPITER + TORQ2D + TORQ + TORQ + TORQ + TORQC2D + TORQSUM + TORU + TORUS + TOTA + TOTAL + TRAN + TRAN + TRANS + TRANSFER + TREF + TREF + TRNO + TRNOPT + TRPD + TRPDEL + TRPL + TRPLIS + TRPO + TRPOIN + TRTI + TRTIME + TSHA + TSHAP + TSRE + TSRES + TUNI + TUNIF + TVAR + TVAR + TYPE + TYPE + UIMP + UIMP + UPCO + UPCOORD + UPGE + UPGEOM + USRC + USRCAL + V + VA + VADD + VADD + VALV + VALVE + VARD + VARDEL + VARN + VARNAM + VATT + VATT + VCLE + VCLEAR + VCRO + VCROSS + VCVF + VCVFILL + VDDA + VDDAM + VDEL + VDELE + VDGL + VDGL + VDOT + VDOT + VDRA + VDRAG + VEXT + VEXT + VGEN + VGEN + VGET + VGET + VGLU + VGLUE + VIMP + VIMP + VINP + VINP + VINV + VINV + VLIS + VLIST + VLSC + VLSCALE + VMES + VMESH + VOFF + VOFFST + VOLU + VOLUMES + VOVL + VOVLAP + VPLO + VPLOT + VPTN + VPTN + VPUT + VPUT + VROT + VROTAT + VSBA + VSBA + VSBV + VSBV + VSBW + VSBW + VSEL + VSEL + VSLA + VSLA + VSUM + VSUM + VSWE + VSWEEP + VSYM + VSYMM + VTRA + VTRAN + VTYP + VTYPE + WAVE + WAVES + WERA + WERASE + WFRO + WFRONT + WMOR + WMORE + WPAV + WPAVE + WPCS + WPCSYS + WPLA + WPLANE + WPOF + WPOFFS + WPRO + WPROTA + WPST + WPSTYL + WRIT + WRITE + WSOR + WSORT + WSTA + WSTART + XVAR + XVAR + XVAROPT + + + + ex + ey + ez + nuxy + nuxz + nuyz + gxy + gxz + gyz + alpx + alpy + alpz + kxx + kyy + kzz + dens + damp + mu + prxy + + + + ANGLEK + ANGLEN + AREAKP + AREAND + ARFACE + ARNEXT + ARNODE + AX + AY + AZ + CENTRX + CENTRY + CENTRZ + DISTEN + DISTKP + DISTND + ELADJ + ELNEXT + ENDS + ENEARN + ENEXTN + ENKE + KNEAR + KP + KPNEXT + KX + KY + KZ + LOC + LSNEXT + LSX + LSY + LSZ + LX + LY + LZ + MAG + NDFACE + NDNEXT + NELEM + NMFACE + NNEAR + NODE + NORMKX + NORMKY + NORMKZ + NORMNX + NORMNY + NORMNZ + NX + NY + NZ + PRES + ROTX + ROTY + ROTZ + TEMP + UX + UY + UZ + VLNEXT + VOLT + VX + VY + VZ + + + + + + all + + + new + change + + + rad + deg + + + hpt + + + all + below + volu + area + line + kp + elem + node + + + ,save + resume + + + off + on + dele + ,save + scale + xorig + yorig + snap + stat + defa + refr + + + static + buckle + modal + harmic + trans + substr + spectr + new + rest + + + dege + + + first + next + last + near + list + velo + acel + + + off + ,l + u + + + off + smooth + clean + on + off + + + tight + + + x + y + z + + + sepo + delete + keep + + + s + ,r + ,a + u + all + none + inve + stat + area + ext + loc + x + y + z + hpt + ,mat + ,type + ,real + ,esys + acca + + + s + ,r + ,a + u + + + emat + esav + full + redm + mode + rdsp + rfrq + tri + rst + rth + rmg + erot + osav + rfl + seld + + + default + fine + + + off + on + + + x + y + + + list + + + lr + sr + + + + + temp + flue + hgen + js + vltg + mvdi + chrgd + forc + repl + add + igno + stat + + + new + sum + + + defa + stat + keep + nwarn + version + no + yes + rv52 + rv51 + + + subsp + lanb + reduc + + + all + db + solid + comb + geom + cm + ,mat + load + blocked + unblocked + + + any + all + + + all + uxyz + rxyz + ux + uy + uz + rotx + roty + rotz + + + append + + + ,esel + warn + err + + + start + nostart + + + cart + cylin + sphe + toro + + + volu + area + line + kp + elem + node + + + create + + + add + dele + + + ,n + p + + + s + ,r + ,a + u + all + none + + + stat + u + rot + ,f + ,m + temp + heat + pres + v + flow + vf + volt + emf + curr + amps + curt + mag + ,a + flux + csg + vltg + + + axes + axnum + num + outl + elem + line + area + volu + isurf + wbak + u + rot + temp + pres + v + enke + ends + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + volt + mag + ,a + emf + curr + ,f + ,m + heat + flow + vf + amps + flux + csg + curt + vltg + mast + ,cp + ,ce + nfor + nmom + rfor + rmom + path + grbak + grid + axlab + curve + cm + cntr + smax + smin + mred + cblu + ygre + dgra + mage + cyan + yell + lgra + bmag + gcya + oran + whit + blue + gree + red + blac + + + nres + nbuf + nproc + locfl + szbio + ncont + order + fsplit + mxnd + mxel + mxkp + mxls + mxar + mxvl + mxrl + mxcp + mxce + nlcontrol + + + high + next + + + any + all + + + all + ux + uy + uz + rotx + roty + rotz + temp + pres + vx + vy + vz + volt + emf + curr + mag + ax + ay + az + enke + ends + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + p + symm + asym + delete + s + ,a + u + stat + rot + disp + v + en + fx + fy + fz + ,f + mx + my + mz + ,m + forc + heat + flow + amps + chrg + flux + csgx + csgy + csgz + csg + + + disp + velo + acel + + + all + + + plslimit + crplimit + dsplimit + npoint + noiterpredict + + + repl + add + igno + + + all + _prm + + + off + on + + + defa + stat + off + on + + + all + p + s + x + y + z + xy + yz + zx + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + tg + tf + pg + ef + ,d + h + b + fmag + ,f + ,m + heat + flow + amps + flux + vf + csg + u + rot + temp + pres + volt + mag + v + ,a + enke + ends + s + int + eqv + sum + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + evis + cmuv + econ + yplu + tauw + + + dither + font + text + off + on + + + vector + dither + anim + font + text + off + on + + + array + char + table + time + x + y + z + temp + velocity + pressure + + + auto + off + user + + + disp + velo + acel + + + symm + asym + x + y + z + + + head + all + + + anim + dgen + dlist + + + add + dele + list + slide + cycl + + + ants + assc + asts + drawbead + ents + ess + ests + nts + osts + rntr + rotr + se + ss + sts + tdns + tdss + tnts + tsts + + + add + dele + list + + + off + on + + + all + + + ansys + dyna + + + all + p + + + off + on + + + list + dele + + + fx + fy + fz + mx + my + mz + ux + uy + uz + rotx + roty + rotz + vx + vy + vz + ax + ay + az + aclx + acly + aclz + omgx + omgy + omgz + press + rbux + rbuy + rbuz + rbrx + rbry + rbrz + rbvx + rbvy + rbvz + rbfx + rbfy + rbfz + rbmx + rbmy + rbmz + add + dele + list + + + hgls + rigid + cable + ortho + + + add + dele + list + all + ux + uy + uz + rotx + roty + rotz + ansys + taurus + both + + + glstat + bndout + rwforc + deforc + ,matsum + ncforc + rcforc + defgeo + spcforc + swforc + rbdout + gceout + sleout + jntforc + nodout + elout + + + add + dele + list + + + ansys + taurus + both + pcreate + pupdate + plist + + + all + p + + + eq + ne + lt + gt + le + ge + ablt + abgt + + + add + remove + all + either + both + + + p + all + ,mat + ,type + ,real + ,esys + secnum + + + p + + + mks + muzro + epzro + + + all + p + + + front + sparse + jcg + jcgout + iccg + pcg + pcgout + iter + + + all + p + off + smooth + clean + on + + + defa + yes + no + + + on + off + + + s + ,r + ,a + u + all + none + inve + stat + p + elem + adj + ,type + ename + ,mat + ,real + ,esys + live + layer + sec + pinc + pexc + sfe + pres + conv + hflux + fsi + impd + shld + mxwf + chrgs + inf + bfe + temp + flue + hgen + js + mvdi + chrgd + etab + + + s + ,r + ,a + u + all + active + inactive + corner + mid + + + p + s + x + y + z + xy + yz + zx + int + eqv + epel + eppl + epcr + epth + nl + sepl + srat + hpres + epeq + psv + plwk + cont + stat + pene + pres + sfric + stot + slide + tg + sum + tf + pg + ef + ,d + h + b + fmag + ,f + ,m + heat + flow + amps + flux + vf + csg + sene + kene + jheat + js + jt + mre + volu + bfe + temp + + + etab + + + top + bottom + reverse + tri + + + all + p + + + refl + stat + eras + u + x + y + z + rot + temp + pres + volt + mag + v + ,a + curr + emf + enke + ends + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + evis + econ + yplu + tauw + lmd1 + lmd2 + lmd3 + lmd4 + lmd5 + lmd6 + emd1 + emd2 + emd3 + emd4 + emd5 + emd6 + s + xy + yz + zx + int + eqv + epto + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + tg + sum + tf + pg + ef + ,d + h + b + fmag + serr + sdsg + terr + tdsg + ,f + ,m + heat + flow + amps + flux + vf + csg + sene + aene + tene + kene + jheat + js + jt + mre + volu + cent + bfe + smisc + nmisc + surf + cont + stat + pene + sfric + stot + slide + gap + topo + + + eti + ite + tts + stt + mtt + fts + ets + + + all + + + elem + short + long1 + + + model + solu + all + nosave + + + rect + polar + modal + full + half + + + off + on + + + yes + no + + + on + off + stat + attr + esize + aclear + + + all + p + fx + fy + fz + mx + my + mz + heat + flow + amps + chrg + flux + csgx + csgy + csgz + + + fine + norml + wire + + + repl + add + igno + stat + + + emat + esav + full + sub + mode + tri + dsub + usub + osav + seld + keep + dele + + + all + + + p + + + solu + flow + turb + temp + comp + swrl + tran + spec + true + t + false + ,f + + + iter + exec + appe + over + + + term + pres + temp + vx + vy + vz + enke + ends + + + time + step + istep + bc + numb + glob + tend + appe + sumf + over + pres + temp + vx + vy + vz + enke + ends + + + step + appe + sumf + over + + + outp + sumf + debg + resi + dens + visc + cond + evis + econ + ttot + hflu + hflm + spht + strm + mach + ptot + pcoe + yplu + tauw + lmd + emd + + + conv + outp + iter + land + bloc + bnow + + + prot + dens + visc + cond + spht + constant + liquid + table + powl + carr + bing + usrv + air + air_b + air-si + air-si_b + air-cm + air-cm_b + air-mm + air-mm_b + air-ft + air-ft_b + air-in + air-in_b + cmix + user + + + nomi + dens + visc + cond + spht + + + cof1 + dens + visc + cond + spht + + + cof2 + dens + visc + cond + spht + + + cof3 + dens + visc + cond + spht + + + prop + ivis + ufrq + + + vary + dens + visc + cond + spht + t + ,f + + + temp + nomi + bulk + ttot + + + pres + refe + + + bulk + beta + + + gamm + comp + + + meth + pres + temp + vx + vy + vz + enke + ends + + + tdma + pres + temp + vx + vy + vz + enke + ends + + + srch + pres + temp + vx + vy + vz + enke + ends + + + pgmr + fill + modp + + + conv + pres + temp + vx + vy + vz + enke + ends + + + maxi + pres + temp + vx + vy + vz + enke + ends + + + delt + pres + temp + vx + vy + vz + enke + ends + + + turb + modl + rati + inin + insf + sctk + sctd + cmu + c1 + c2 + buc3 + buc4 + beta + kapp + ewll + wall + vand + tran + zels + + + rngt + sctk + sctd + cmu + c1 + c2 + beta + etai + + + nket + sctk + sctd + c2 + c1mx + + + girt + sctk + sctd + g0 + g1 + g2 + g3 + g4 + + + szlt + sctk + sctd + szl1 + szl2 + szl3 + + + relx + vx + vy + vz + pres + temp + enke + ends + evis + econ + dens + visc + cond + spht + + + stab + turb + mome + pres + temp + visc + + + prin + vx + vy + vz + pres + temp + enke + ends + dens + visc + cond + spht + evis + econ + + + modr + vx + vy + vz + pres + temp + enke + ends + dens + visc + cond + spht + evis + econ + ttot + t + ,f + + + modv + vx + vy + vz + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + pres + temp + enke + ends + dens + visc + cond + spht + evis + econ + ttot + lmd + emd + + + quad + momd + moms + prsd + prss + thrd + thrs + trbd + trbs + + + capp + velo + temp + pres + umin + umax + vmin + vmax + wmin + wmax + tmin + tmax + pmin + pmax + + + rest + nset + iter + lstp + time + rfil + wfil + over + clear + + + advm + mome + turb + pres + temp + msu + supg + + + all + p + + + all + + + noor + order + + + all + auto + user + + + total + static + damp + inert + + + reco + ten + long + + + g + ,f + e + + + all + + + all + + + rsys + + + emat + esav + full + redm + sub + mode + tri + dsub + usub + erot + osav + seld + all + ext + int + + + open + closed + + + toler + iter + + + toler + oesele + merge + remain + + + open + closed + all + + + tree + off + + + tri + bot + + + all + + + active + int + imme + menu + prkey + units + rout + time + wall + cpu + dbase + ldate + dbase + ltime + rev + title + jobnam + + parm + max + basic + loc + ,type + dim + x + y + z + + cmd + stat + nargs + field + + comp + ncomp + name + ,type + nscomp + sname + + graph + active + angle + contour + dist + dscale + dmult + edge + focus + gline + mode + normal + range + xmin + ymin + xmax + ymax + ratio + sscale + smult + ,type + vcone + view + vscale + vratio + display + erase + ndist + number + plopts + seg + shrink + + active + ,csys + ,dsys + ,mat + ,type + ,real + ,esys + ,cp + ,ce + wfront + max + rms + + cdsy + loc + ang + xy + yz + zx + attr + + node + loc + ,nsel + nxth + nxtl + ,f + fx + mx + csgx + ,d + ux + rotx + vx + ax + hgen + num + max + min + count + mxloc + mnloc + + elem + cent + adj + attr + leng + lproj + area + aproj + volu + ,esel + nxth + nxtl + hgen + hcoe + tbulk + pres + shpar + angd + aspe + jacr + maxa + para + warp + num + ,ksel + nxth + nxtl + div + + kp + ior + imc + irp + ixv + iyv + izv + nrelm + + line + ,lsel + + area + ,asel + loop + + volu + ,vsel + shell + + etyp + + rcon + + ex + alpx + reft + prxy + nuxy + gxy + damp + mu + dnes + c + enth + kxx + hf + emis + qrate + visc + sonc + rsvx + perx + murx + mgxx + lsst + temp + + fldata + flow + turb + temp + comp + swrl + tran + spec + exec + appe + over + pres + temp + vx + vy + vz + enke + ends + step + istep + bc + numb + glob + tend + appe + sumf + over + sumf + debg + resi + dens + visc + cond + evis + econ + ttot + hflu + hflm + spht + strm + mach + ptot + pcoe + yplu + tauw + lmd + emd + outp + iter + dens + visc + cond + ivis + ufrq + nomi + bulk + ttot + refe + beta + comp + fill + modp + modl + rati + inin + insf + sctk + sctd + cmu + c1 + c2 + buc3 + buc4 + beta + kapp + ewll + wall + vand + tran + zels + sctk + sctd + cmu + c1 + c2 + etai + c1mx + g0 + g1 + g2 + g3 + g4 + szl1 + szl2 + szl3 + evis + econ + mome + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + momd + moms + prsd + prss + thrd + thrs + trbd + trbs + velo + umin + umax + vmin + vmax + wmin + wmax + tmin + tmax + pmin + pmax + nset + iter + lstp + time + rfil + wfil + over + clear + + msdata + spec + ugas + + msprop + cond + mdif + spht + nomi + cof1 + cof2 + cof3 + + msspec + name + molw + schm + + msrelax + conc + emdi + stab + + mssolu + nswe + maxi + nsrc + conv + delt + + msmeth + + mscap + key + upp + low + + msvary + + msnomf + + active + anty + solu + dtime + ncmls + ncmss + eqit + ncmit + cnvg + mxdvl + resfrq + reseig + dsprm + focv + mocv + hfcv + mfcv + cscv + cucv + ffcv + dicv + rocv + tecv + vmcv + smcv + vocv + prcv + vecv + nc48 + nc49 + crprat + psinc + + elem + mtot + mc + ior + imc + fmc + mmor + mmmc + + mode + freq + pfact + mcoef + damp + + active + ,set + lstp + sbst + time + rsys + + node + u + sum + rot + ntemp + volt + mag + v + ,a + curr + emf + rf + fx + fy + fz + mx + my + mz + s + int + eqv + epto + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + tg + tf + pg + ef + ,d + h + b + fmag + hs + bfe + ttot + hflu + hflm + conc + pcoe + ptot + mach + strm + evis + cmuv + econ + yplu + tauw + + elem + serr + sdsg + terr + tdsg + sene + tene + kene + jheat + js + volu + etab + smisc + nmisc + + etab + ncol + nleng + + sort + max + min + imax + imin + + ssum + item + + fsum + + path + last + nval + + kcalc + k + + intsrf + + plnsol + bmax + bmin + + prerr + sepc + tepc + sersm + tersm + sensm + tensm + + section + inside + sx + sy + sz + sxxy + syz + szx + center + outside + + vari + extrem + vmax + tmax + vmin + tmin + vlast + tlast + cvar + rtime + itime + t + rset + iset + nsets + + opt + total + feas + term + best + + topo + act + conv + comp + porv + loads + + runst + rspeed + mips + smflop + vmflop + rfilsz + emat + erot + esav + full + mode + rdsp + redm + rfrq + rgeom + rst + tri + rtimst + tfirst + titer + eqprep + ,solve + bsub + eigen + elform + elstrs + nelm + rmemry + wsreq + wsavail + dbpsize + dbpdisk + dbpmem + dbsize + dbmem + scrsize + scravail + iomem + iopsiz + iobuf + rwfrnt + rms + mean + + ,nsel + ,esel + ,ksel + ,lsel + ,asel + ,vsel + ndnext + elnext + kpnext + lsnext + arnext + vlnext + centrx + centry + centrz + nx + ny + nz + kx + ky + kz + lx + ly + lz + lsx + lsy + lsz + node + kp + distnd + distkp + disten + anglen + anglek + nnear + knear + enearn + areand + areakp + arnode + normnx + normny + normnz + normkx + normky + normkz + enextn + nelem + eladj + ndface + nmface + arface + ux + uy + uz + rotx + roty + rotz + temp + pres + vx + vy + vz + enke + ends + volt + mag + ax + ay + az + + + g + ,f + e + + + all + + + stop + + + p + fx + fy + fz + mx + my + mz + + + all + + + full + power + + + axdv + axnm + axnsc + ascal + logx + logy + fill + cgrid + dig1 + dig2 + view + revx + revy + divx + divy + ltyp + off + on + front + + + disp + velo + acel + + + on + off + + + axis + grid + curve + + + all + node + elem + keyp + line + area + volu + grph + + + on + off + + + model + paper + color + direct + + + line + area + coord + ratio + + + all + p + + + all + + + full + reduc + msup + + + on + off + + + all + p + ux + uy + uz + rotx + roty + rotz + temp + pres + vx + vy + vz + enke + ends + sp01 + so02 + sp03 + sp04 + sp05 + sp06 + volt + mag + ax + ay + az + + + all + p + disp + velo + + + eq + ne + lt + gt + le + ge + ablt + abgt + stop + exit + cycle + then + + + all + basic + nsol + rsol + esol + nload + strs + epel + epth + eppl + epcr + fgrad + fflux + misc + + + pres + + + stat + defa + merg + yes + no + solid + gtoler + file + iges + stat + small + + + p + + + p + ratio + dist + + + p + kp + line + + + + all + p + coord + hpt + stat + + + all + p + off + smooth + clean + on + off + + + s + ,r + ,a + u + all + none + inve + stat + p + ,mat + ,type + ,real + ,esys + all + kp + ext + hpt + loc + x + y + z + + + s + ,r + ,a + u + + + all + p + x + y + z + + + p + + + fcmax + + + + + + all + p + + + erase + stat + all + + + zero + squa + sqrt + lprin + add + sub + srss + min + max + abmn + abmx + all + mult + + + s + ,r + ,a + u + all + none + inve + stat + + + temp + forc + hgen + hflu + ehflu + js + pres + reac + hflm + last + + + none + comment + remove + + + radius + layer + hpt + orient + + + off + on + auto + + + cart + cylin + sphe + toro + + + all + p + off + smooth + clean + on + + + p + all + sepo + delete + keep + + + solid + fe + iner + lfact + lsopt + all + + + s + ,r + ,a + u + all + none + inve + stat + p + line + ext + loc + x + y + z + tan1 + tan2 + ndiv + space + ,mat + ,type + ,real + ,esys + sec + lenght + radius + hpt + lcca + + + s + ,r + ,a + u + + + stat + init + + + x + y + z + all + p + + + off + on + + + all + p + ux + uy + uz + rotx + roty + rotz + temp + fx + fy + fz + mx + my + mz + heat + + + all + p + + + on + grph + + + fit + eval + + + copy + tran + + + stat + nocheck + check + detach + + + subsp + lanb + reduc + unsym + damp + off + on + + + mult + solv + sort + covar + corr + + + expnd + tetexpnd + trans + iesz + amesh + default + main + alternate + alt2 + qmesh + vmesh + split + lsmo + clear + pyra + timp + stat + defa + + + p + + + ex + ey + ez + alpx + alpy + alpz + reft + prxy + pryz + prxz + nuxy + nuyz + nuzx + gxy + gyz + gxz + damp + mu + dens + c + enth + kxx + kyy + kzz + hf + emis + qrate + visc + sonc + rsvx + rsvy + rsvz + perx + pery + perz + murx + mury + murz + mgxx + mgyy + mgzz + lsst + + + all + + + read + write + stat + + + all + evlt + + + msu + supg + + + off + on + + + info + note + warn + error + fatal + ui + + + 2d + 3d + + + dens + visc + cond + mdif + spht + constant + liquid + gas + + + main + input + grph + tool + zoom + work + wpset + abbr + parm + sele + anno + hard + help + off + on + + + dens + visc + cond + mdif + off + on + + + no + yes + + + all + p + + + off + on + + + all + p + coord + + + all + p + off + smooth + clean + on + + + disp + velo + acel + + + auto + full + modi + init + on + off + + + s + ,r + ,a + u + all + none + inve + stat + node + ext + loc + x + y + z + ang + xy + yz + zx + ,m + ,cp + ,ce + ,d + u + ux + uy + uz + rot + rotx + roty + rotz + temp + pres + volt + mag + v + vx + vy + vz + ,a + ax + ay + az + curr + emf + enke + ends + ,f + fx + fy + fz + ,m + mx + my + mz + heat + flow + amps + flux + csg + csgx + csgy + csgz + chrg + chrgd + ,bf + temp + flue + hgen + js + jsx + jsy + jsz + mvdi + int + eqv + epto + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + cont + pene + sfric + stot + slide + tg + tf + pg + ef + ,d + h + b + fmag + topo + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + evis + cmuv + econ + yplu + tauw + + + s + ,r + ,a + u + all + active + inactive + corner + mid + + + off + on + + + x + y + z + all + p + + + node + elem + kp + line + area + volu + ,mat + ,type + ,real + ,cp + ,ce + all + low + high + ,csys + defa + + + yes + no + + + p + + + all + + + full + + + best + last + ,n + + + off + on + + + main + 2fac + 3fac + + + top + prep + ignore + process + scalar + all + + + temp + + + off + on + full + + + subp + first + rand + run + fact + grad + sweep + user + + + dv + sv + obj + del + + + basic + nsol + rsol + esol + nload + veng + all + none + last + stat + erase + + + term + append + + + all + basic + nsol + rsol + esol + nload + strs + epel + epth + eppl + epcr + fgrad + fflux + misc + none + all + last + + + all + name + + + points + table + label + + + all + path + + + new + change + + + scalar + all + + + s + all + + + u + ux + uy + uz + rot + rotx + roty + rotz + temp + pres + v + vx + vy + vz + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + enke + ends + volt + mag + ,a + chrg + ,f + forc + fx + fy + fz + ,m + mome + mx + my + mz + heat + flow + amps + flux + csg + mast + ,cp + ,ce + nfor + nmom + rfor + rmom + path + acel + acelx + acely + acelz + omeg + omegx + omegy + omegz + all + + + temp + flue + hgen + js + jsx + jsy + jsz + phase + mvdi + chrgd + vltg + forc + + + add + mult + div + exp + deri + intg + sin + cos + asin + acos + log + + + stat + erase + dele + se + s + epel + u + rot + eqv + sum + p + top + mid + bot + x + y + z + xy + yz + xz + int + + + now + + + avg + noav + u + x + y + z + sum + rot + temp + pres + volt + mag + v + ,a + curr + emf + enke + ends + xy + yz + xz + eqv + epto + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + tg + tf + pg + ef + ,d + h + b + fmag + etab + bfe + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + evis + cmuv + econ + yplu + tauw + spht + + + x + y + z + + + all + stat + p + + + base + node + wave + spat + + + write + read + list + delete + clear + status + + + all + stat + p + + + on + off + + + all + se + s + epel + u + rot + top + mid + bot + xy + yz + xz + int + eqv + epel + u + rot + + + s + x + y + z + xy + yz + xz + int + eqv + epto + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + cont + stat + pene + pres + sfric + stot + slide + gap + tg + tf + pg + ef + ,d + h + b + fmag + serr + sdsg + terr + tdsg + ,f + ,m + heat + flow + amps + flux + vf + csg + sene + tene + kene + jheat + js + jt + mre + volu + cent + bfe + temp + smisc + nmisc + topo + + + noav + avg + + + u + x + y + z + sum + rot + temp + pres + volt + mag + v + y + enke + ends + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + s + int + eqv + epto + xy + yz + xz + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + cont + stat + pene + pres + sfric + stot + slide + gap + tg + tf + pg + ef + ,d + h + b + fmag + bfe + temp + topo + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + spht + evis + cmuv + econ + yplu + tauw + lmd1 + lmd2 + lmd3 + lmd4 + lmd5 + lmd6 + emd1 + emd2 + emd3 + emd4 + emd5 + emd6 + + + leg1 + leg2 + info + frame + title + minm + logo + wins + wp + off + on + auto + + + all + + + node + + + xg + yg + zg + s + + + s + x + y + z + xy + yz + xz + int + eqv + + + fluid + elec + magn + temp + pres + v + x + y + z + sum + enke + ends + ttot + cond + pcoe + ptot + mach + strm + dens + visc + spht + evis + cmuv + econ + volt + + + rast + vect + elem + node + off + on + u + rot + v + ,a + s + epto + epel + eppl + epcr + epth + tg + tf + pg + ef + ,d + h + b + fmag + js + jt + + + uniform + accurate + + + on + off + stat + + + node + elem + ,mat + ,type + ,real + ,esys + loc + kp + line + area + volu + sval + tabnam + off + on + + + b31.1 + nc + + + coax + te10 + te11circ + tm01circ + + + pick + + + off + on + + + s + epto + epel + eppl + epcr + epsw + nl + cont + tg + tf + pg + ef + ,d + h + b + fmag + ,f + ,m + heat + flow + amps + flux + vf + csg + forc + bfe + elem + serr + sdsg + terr + tdsg + sene + tene + kene + jheat + js + jt + mre + volu + cent + smisc + nmisc + topo + + + fx + fy + fz + ,f + mx + ym + mz + ,m + heat + flow + vfx + vfy + vfz + vf + amps + curt + vltg + flux + csgx + csgy + csgz + csg + + + u + x + y + z + comp + rot + temp + pres + volt + mag + v + ,a + curr + emf + enke + ends + sp01 + sp02 + sp03 + sp04 + sp05 + sp06 + dof + + s + comp + prin + epto + epel + eppl + epcr + epth + epsw + nl + cont + tg + tf + pg + ef + ,d + h + b + fmag + bfe + topo + + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + spht + evis + cmuv + econ + yplu + tauw + lmd + emd + + + u + rot + v + ,a + s + epto + epel + eppl + epcr + epth + tg + tf + pg + ef + ,d + h + b + fmag + js + jt + + + cmap + lwid + color + tranx + trany + rotate + scale + tiff + epsi + + + disp + velo + acel + rel + abs + off + + + disp + velo + acel + accg + forc + pres + + + off + + + s + ,r + ,a + u + all + none + inv + + + pres + norm + tanx + tany + conv + hcoef + tbulk + rad + emis + tamb + hflux + fsi + impd + shld + cond + mur + mxwf + inf + chrgs + mci + + + cgsol + eigdamp + eigexp + eigfull + eigreduc + eigunsym + elform + elprep + redwrite + triang + + + tran + rot + + + off + on + + + cs + ndir + ,esys + ldir + layr + pcon + econ + dot + xnod + defa + stat + + + none + + + stat + dele + + + ftin + metric + + + norm + tang + radi + + + p + + + all + + + ux + uy + uz + rotx + roty + rotz + uxyz + rxyz + all + + + all + + + resize + fast + + + off + dyna + + + p + ,f + x + y + z + ,m + heat + flow + amps + flux + vf + csg + vltg + durt + + + index + cntr + + + all + ux + uy + uz + rotx + roty + rotz + none + all + + + off + dyna + elem + stress + + + all + + + solu + + + factor + area + narrow + + + read + status + + + cent + shrc + origin + user + + + library + mesh + + + beam + rect + quad + csolid + ctube + chan + i + z + ,l + t + hats + hrec + asec + mesh + + + all + + + off + on + + + singl + multi + delet + off + stat + pc + + + x + y + z + + + + + first + last + next + near + list + none + + + all + p + pres + conv + hflux + rad + fsi + impd + ptot + mxwf + mci + chrgs + inf + port + shld + + + all + p + pres + conv + hflux + rad + fsi + impd + mxwf + mci + mxwf + chrgs + inf + port + shld + + + ,sf + ms + + + all + p + + + all + pres + conv + hflux + selv + chrgs + mxwf + inf + repl + add + igno + stat + + + all + p + pres + conv + hflux + rad + mxwf + chrgs + mci + inf + selv + fsi + impd + port + shld + + + all + p + pres + conv + hflux + rad + mxwf + chrgs + mci + inf + selv + fsi + impd + port + shld + + + pres + conv + hflux + chrgs + status + x + y + z + + + all + p + pres + conv + hflux + rad + fsi + impd + mci + mxwf + chrgs + inf + port + shdl + selv + + + facet + gouraud + phong + + + top + mid + bot + + + term + file + off + pscr + hpgl + hpgl2 + vrml + + + hpgl + hpgl2 + interleaf + postscript + dump + + + on + warn + off + silent + status + summary + default + object + modify + angd + aspect + paral + maxang + jacrat + warp + all + yes + no + + + factor + radius + length + + + stat + defa + off + on + + + on + off + + + allf + aldlf + arcl + cnvg + crprat + cscv + cucv + dicv + dsprm + dtime + eqit + ffcv + focv + hfcv + nc48 + nc49 + ncmit + ncmls + ncmss + mfcv + mocv + mxdvl + prcv + psinc + resfrq + reseig + rocv + smcv + tecv + vecv + vocv + vmcv + + + sprs + mprs + ddam + psd + no + yes + + + disp + velo + acel + + + all + + + off + on + + + argx + + + all + title + units + mem + db + config + global + solu + phys + + + merge + new + appen + alloc + psd + + + all + part + none + + + first + last + next + near + list + velo + acel + + + comp + prin + + + bkin + mkin + miso + biso + aniso + dp + melas + user + kinh + anand + creep + swell + bh + piez + fail + mooney + water + anel + concr + hflm + fcon + pflow + evisc + plaw + foam + honey + comp + nl + eos + + + all + + + mkin + kinh + melas + miso + bkin + biso + bh + nb + mh + sbh + snb + smh + + + defi + dele + + + wt + uft + + + copy + loop + noprom + + + off + on + all + struc + therm + elect + mag + fluid + + + all + p + + + all + p + + + orig + off + lbot + rbot + ltop + rtop + + + elem + area + volu + isurf + cm + curve + + + full + reduc + msup + damp + nodamp + + + all + p + + + iine + line + para + arc + carc + circ + tria + tri6 + quad + qua8 + cyli + cone + sphe + pilo + + + basic + sect + hidc + hidd + hidp + cap + zbuf + zcap + zqsl + hqsl + + + help + view + wpse + wpvi + result + query + copy + anno + select + ,nsel + ,esel + ,ksel + ,lsel + ,asel + ,vsel + refresh + s + ,r + ,a + u + node + element + grid + format + pscr + tiff + epsi + bmp + wmf + emf + screen + full + graph + color + mono + grey + krev + norm + reverse + orient + landscape + portrait + compress + yes + no + + + msgpop + replot + abort + dyna + pick + on + off + stat + defa + + + user + si + cgs + bft + bin + + + off + on + + + all + + + usrefl + userfl + usercv + userpr + userfx + userch + userfd + userou + usermc + usolbeg + uldbeg + ussbeg + uitbeg + uitfin + ussfin + uldfin + usolfin + uanbeg + uanfin + uelmatx + + + all + p + + + data + ramp + rand + gdis + tria + beta + gamm + + + acos + asin + asort + atan + comp + copy + cos + cosh + dircos + dsort + euler + exp + expa + log + log10 + nint + not + pwr + sin + sinh + sqrt + tan + tanh + tang + norm + local + global + + + all + p + + + node + loc + x + y + z + ang + xy + yz + zx + ,nsel + + elem + cent + adj + attr + geom + ,esel + shpar + + kp + div + ,ksel + + line + leng + ,lsel + + area + loop + ,asel + + volu + shell + volu + ,vsel + + cdsy + + rcon + const + + const + bkin + mkin + miso + biso + aniso + dp + melas + user + kinh + anand + creep + swell + bh + piez + fail + mooney + water + anel + concr + hflm + fcon + pflow + evisc + plaw + foam + honey + comp + nl + eos + + u + rot + temp + pres + volt + mag + v + ,a + curr + emf + enke + ends + + s + int + eqv + epto + epel + eppl + epcr + epth + epsw + + nl + sepl + srat + hpres + epeq + psv + plwk + hs + bfe + tg + tf + pg + ef + ,d + h + b + fmag + + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + evis + econ + yplu + tauw + + etab + + + all + p + + + all + wp + + + add + sub + mult + div + min + max + lt + le + eq + ne + ge + gt + der1 + der2 + int1 + int2 + dot + cross + gath + scat + + + all + p + + + all + dege + + + node + u + x + y + z + rot + temp + pres + volt + mag + v + ,a + curr + emf + enke + ends + s + xy + yz + xz + int + eqv + epto + epel + eppl + epcr + epth + epsw + nl + sepl + srat + hpres + epeq + psv + plwk + tg + tf + pg + ef + ,d + h + b + fmag + ttot + hflu + hflm + cond + pcoe + ptot + mach + strm + dens + visc + evis + econ + yplu + tauw + + elem + etab + + + all + p + + + all + p + sepo + delete + keep + + + max + min + lmax + lmin + first + last + sum + medi + mean + vari + stdv + rms + num + + + s + ,r + ,a + u + all + none + inve + stat + p + volu + loc + x + y + z + ,mat + ,type + ,real + ,esys + + + default + fine + + + p + + + x + y + z + all + p + -x + -y + -z + + + max + rms + + + off + on + full + left + righ + top + bot + ltop + lbot + rtop + rbot + squa + dele + + + p + + + x + y + z + all + max + rms + + + all + + + all + + + off + back + scrn + rect + + + + + diff --git a/extra/xmode/modes/applescript.xml b/extra/xmode/modes/applescript.xml new file mode 100644 index 0000000000..f4d18e0541 --- /dev/null +++ b/extra/xmode/modes/applescript.xml @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + (* + *) + + -- + + + " + " + + + ' + ' + + + ( + ) + + + - + ^ + * + / + & + < + <= + > + >= + = + ­ + + + application[\t\s]+responses + current[\t\s]+application + white[\t\s]+space + + + all[\t\s]+caps + all[\t\s]+lowercase + small[\t\s]+caps + + + missing[\t\s]+value + + + + script + property + prop + end + copy + to + set + global + local + on + to + of + in + given + with + without + return + continue + tell + if + then + else + repeat + times + while + until + from + exit + try + error + considering + ignoring + timeout + transaction + my + get + put + into + is + + + each + some + every + whose + where + id + index + first + second + third + fourth + fifth + sixth + seventh + eighth + ninth + tenth + last + front + back + st + nd + rd + th + middle + named + through + thru + before + after + beginning + the + + + close + copy + count + delete + duplicate + exists + launch + make + move + open + print + quit + reopen + run + save + saving + + + it + me + version + pi + result + space + tab + anything + + + case + diacriticals + expansion + hyphens + punctuation + + + bold + condensed + expanded + hidden + italic + outline + plain + shadow + strikethrough + subscript + superscript + underline + + + ask + no + yes + + + false + true + + + weekday + monday + mon + tuesday + tue + wednesday + wed + thursday + thu + friday + fri + saturday + sat + sunday + sun + + month + january + jan + february + feb + march + mar + april + apr + may + june + jun + july + jul + august + aug + september + sep + october + oct + november + nov + december + dec + + minutes + hours + days + weeks + + + div + mod + and + not + or + as + contains + equal + equals + isn't + + + diff --git a/extra/xmode/modes/asp.xml b/extra/xmode/modes/asp.xml new file mode 100644 index 0000000000..01735baabe --- /dev/null +++ b/extra/xmode/modes/asp.xml @@ -0,0 +1,518 @@ + + + + + + + + + + + + + <%@LANGUAGE="VBSCRIPT"% + <%@LANGUAGE="JSCRIPT"% + <%@LANGUAGE="JAVASCRIPT"% + <%@LANGUAGE="PERLSCRIPT"% + + + + <% + %> + + + + + <script language="vbscript" runat="server"> + </script> + + + + + <script language="jscript" runat="server"> + </script> + + + + <script language="javascript" runat="server"> + </script> + + + + + <script language="perlscript" runat="server"> + </script> + + + + + <script language="jscript"> + </script> + + + + <script language="javascript"> + </script> + + + + <script> + </script> + + + + + <!--# + --> + + + + + <!-- + --> + + + + + <STYLE> + </STYLE> + + + + + < + > + + + + + & + ; + + + + + + + + <% + %> + + + + + <script language="vbscript" runat="server"> + </script> + + + + + <script language="jscript" runat="server"> + </script> + + + + <script language="javascript" runat="server"> + </script> + + + + + <script language="perlscript" runat="server"> + </script> + + + + + <script language="jscript" + </script> + + + + <script language="javascript" + </script> + + + + <script> + </script> + + + + + <!--# + --> + + + + + <!-- + --> + + + + + <STYLE> + </STYLE> + + + + + </ + > + + + + < + > + + + + + & + ; + + + + + + + + <% + %> + + + + + <script language="vbscript" runat="server"> + </script> + + + + + <script language="jscript" runat="server"> + </script> + + + + <script language="javascript" runat="server"> + </script> + + + + + <script language="perlscript" runat="server"> + </script> + + + + + <script language="jscript" + </script> + + + + <script language="javascript" + </script> + + + + <script> + </script> + + + + + <!--# + --> + + + + + <!-- + --> + + + + + <STYLE> + </STYLE> + + + + + </ + > + + + + < + > + + + + + & + ; + + + + + + + + <% + %> + + + + + <script language="vbscript" runat="server"> + </script> + + + + + <script language="jscript" runat="server"> + </script> + + + + <script language="javascript" runat="server" + </script> + + + + + <script language="perlscript" runat="server"> + </script> + + + + + <script language="jscript" + </script> + + + + <script language="javascript" + </script> + + + + <script> + </script> + + + + + <!--# + --> + + + + + <!-- + --> + + + + + <STYLE> + </STYLE> + + + + + </ + > + + + + < + > + + + + + & + ; + + + + + + + + <% + %> + + + + " + " + + + + ' + ' + + + = + + + + + + <% + %> + + + + + + + <% + %> + + + + " + " + + + + ' + ' + + + = + + + + + + <% + %> + + + + + + + <% + %> + + + + " + " + + + + ' + ' + + + = + + + + + + <% + %> + + + + + + + + <% + %> + + + + + + + + <% + %> + + + + + + + + <% + %> + + + + + + + + + <% + %> + + + + + + + + <% + %> + + + + + + + + <% + %> + + + + + + + + + <% + %> + + + + + + + <% + %> + + + + + + + <% + %> + + + + diff --git a/extra/xmode/modes/aspect-j.xml b/extra/xmode/modes/aspect-j.xml new file mode 100644 index 0000000000..8c7609ae56 --- /dev/null +++ b/extra/xmode/modes/aspect-j.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + /**/ + + + + /** + */ + + + + + /* + */ + + + + " + " + + + ' + ' + + + // + + = + ! + >= + <= + + + - + / + + + .* + + * + > + < + % + & + | + ^ + ~ + } + { + : + + + ( + ) + + + abstract + break + case + catch + continue + default + do + else + extends + final + finally + for + if + implements + instanceof + native + new + private + protected + public + return + static + switch + synchronized + throw + throws + transient + try + volatile + while + + package + import + + boolean + byte + char + class + double + float + int + interface + long + short + void + + assert + strictfp + + false + null + super + this + true + + goto + const + + args + percflow + get + set + preinitialization + handler + adviceexecution + cflow + target + cflowbelow + withincode + declare + precedence + issingleton + perthis + pertarget + privileged + after + around + aspect + before + call + execution + initialization + pointcut + proceed + staticinitialization + within + .. + + + diff --git a/extra/xmode/modes/assembly-m68k.xml b/extra/xmode/modes/assembly-m68k.xml new file mode 100644 index 0000000000..03a6c4c7dc --- /dev/null +++ b/extra/xmode/modes/assembly-m68k.xml @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + ; + * + + + ' + ' + + + + " + " + + + + + $ + + : + + , + : + ( + ) + ] + [ + $ + + + + - + / + * + % + + | + ^ + & + ~ + ! + + = + < + > + + + + + + + + D0 + D1 + D2 + D3 + D4 + D5 + D6 + D7 + + + A0 + A1 + A2 + A3 + A4 + A5 + A6 + A7 + + + FP0 + FP1 + FP2 + FP3 + FP4 + FP5 + FP6 + FP7 + + SP + CCR + + + + + + + OPT + INCLUDE + FAIL + END + REG + + + PAGE + LIST + NOLIST + SPC + TTL + + + ORG + + + EQU + SET + + + DS + DC + + + FOR + ENDF + IF + THEN + ELSE + ENDI + REPEAT + UNTIL + WHILE + DO + ENDW + + MACRO + + + + ABCD + ADD + ADD.B + ADD.W + ADD.L + ADDA + ADDA.W + ADDA.L + ADDI + ADDI.B + ADDI.W + ADDI.L + ADDQ + ADDQ.B + ADDQ.W + ADDQ.L + ADDX + ADDX.B + ADDX.W + ADDX.L + AND + AND.B + AND.W + AND.L + ANDI + ANDI.B + ANDI.W + ANDI.L + ASL + ASL.B + ASL.W + ASL.L + ASR + ASR.B + ASR.W + ASR.L + + BCC + BCS + BEQ + BGE + BGT + BHI + BLE + BLS + BLT + BMI + BNE + BPL + BVC + BVS + BCHG + BCLR + BFCHG + BFCLR + BFEXTS + BFEXTU + BFFF0 + BFINS + BFSET + BFTST + BGND + BKPT + BRA + BSET + BSR + BTST + CALLM + CAS + CAS2 + CHK + CHK2 + CINV + CLR + CLR.B + CLR.W + CLR.L + CMP + CMP.B + CMP.W + CMP.L + CMPA + CMPA.W + CMPA.L + CMPI + CMPI.B + CMPI.W + CMPI.L + CMPM + CMPM.B + CMPM.W + CMPM.L + CMP2 + CMP2.B + CMP2.W + CMP2.L + + CPUSH + + DBCC + DBCS + DBEQ + DBGE + DBGT + DBHI + DBLE + DBLS + DBLT + DBMI + DBNE + DBPL + DBVC + DBVS + + DIVS + DIVSL + DIVU + DIVUL + EOR + EOR.B + EOR.W + EOR.L + EORI + EORI.B + EORI.W + EORI.L + EXG + EXT + EXTB + FABS + FSABS + FDABS + FACOS + FADD + FSADD + FDADD + FASIN + FATAN + FATANH + + FCMP + FCOS + FCOSH + + FDIV + FSDIV + FDDIV + FETOX + FETOXM1 + FGETEXP + FGETMAN + FINT + FINTRZ + FLOG10 + FLOG2 + FLOGN + FLOGNP1 + FMOD + FMOVE + FSMOVE + FDMOVE + FMOVECR + FMOVEM + FMUL + FSMUL + FDMUL + FNEG + FSNEG + FDNEG + FNOP + FREM + FRESTORE + FSAVE + FSCALE + + FSGLMUL + FSIN + FSINCOS + FSINH + FSQRT + FSSQRT + FDSQRT + FSUB + FSSUB + FDSUB + FTAN + FTANH + FTENTOX + + FTST + FTWOTOX + ILLEGAL + JMP + JSR + LEA + LINK + LPSTOP + LSL + LSL.B + LSL.W + LSL.L + LSR + LSR.B + LSR.W + LSR.L + MOVE + MOVE.B + MOVE.W + MOVE.L + MOVEA + MOVEA.W + MOVEA.L + MOVE16 + MOVEC + MOVEM + MOVEP + MOVEQ + MOVES + MULS + MULU + NBCD + NEG + NEG.B + NEG.W + NEG.L + NEGX + NEGX.B + NEGX.W + NEGX.L + NOP + NOT + NOT.B + NOT.W + NOT.L + OR + OR.B + OR.W + OR.L + ORI + ORI.B + ORI.W + ORI.L + PACK + + + PEA + PFLUSH + PFLUSHA + PFLUSHR + PFLUSHS + PLOAD + PMOVE + PRESTORE + PSAVE + + PTEST + + PVALID + RESET + ROL + ROL.B + ROL.W + ROL.L + ROR + ROR.B + ROR.W + ROR.L + ROXL + ROXL.B + ROXL.W + ROXL.L + ROXR + ROXR.B + ROXR.W + ROXR.L + RTD + RTE + RTM + RTR + RTS + SBCD + + SCC + SCS + SEQ + SF + SGE + SGT + SHI + SLE + SLS + SLT + SMI + SNE + SPL + ST + SVC + SVS + + STOP + SUB + SUB.B + SUB.W + SUB.L + SUBA + SUBI + SUBI.B + SUBI.W + SUBI.L + SUBQ + SUBQ.B + SUBQ.W + SUBQ.L + SUBX + SUBX.B + SUBX.W + SUBX.L + SWAP + TAS + TBLS + TBLSN + TBLU + TBLUN + TRAP + + TRAPCC + TRAPCS + TRAPEQ + TRAPF + TRAPGE + TRAPGT + TRAPHI + TRAPLE + TRAPLS + TRAPLT + TRAPMI + TRAPNE + TRAPPL + TRAPT + TRAPVC + TRAPVS + + TRAPV + TST + TST.B + TST.W + TST.L + UNLK + UNPK + + + + + diff --git a/extra/xmode/modes/assembly-macro32.xml b/extra/xmode/modes/assembly-macro32.xml new file mode 100644 index 0000000000..763d17ea9e --- /dev/null +++ b/extra/xmode/modes/assembly-macro32.xml @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + ; + + + ' + ' + + + + " + " + + + + %% + + % + + : + + + B^ + D^ + O^ + X^ + A^ + M^ + F^ + C^ + L^ + G^ + ^ + + + + + - + / + * + @ + # + & + ! + \ + + + + .ADDRESS + .ALIGN + .ALIGN + .ASCIC + .ASCID + .ASCII + .ASCIZ + .BLKA + .BLKB + .BLKD + .BLKF + .BLKG + .BLKH + .BLKL + .BLKO + .BLKQ + .BLKW + .BYTE + .CROSS + .CROSS + .DEBUG + .DEFAULT + .D_FLOATING + .DISABLE + .DOUBLE + .DSABL + .ENABL + .ENABLE + .END + .ENDC + .ENDM + .ENDR + .ENTRY + .ERROR + .EVEN + .EXTERNAL + .EXTRN + .F_FLOATING + .FLOAT + .G_FLOATING + .GLOBAL + .GLOBL + .H_FLOATING + .IDENT + .IF + .IFF + .IF_FALSE + .IFT + .IFTF + .IF_TRUE + .IF_TRUE_FALSE + .IIF + .IRP + .IRPC + .LIBRARY + .LINK + .LIST + .LONG + .MACRO + .MASK + .MCALL + .MDELETE + .MEXIT + .NARG + .NCHR + .NLIST + .NOCROSS + .NOCROSS + .NOSHOW + .NOSHOW + .NTYPE + .OCTA + .OCTA + .ODD + .OPDEF + .PACKED + .PAGE + .PRINT + .PSECT + .PSECT + .QUAD + .QUAD + .REF1 + .REF2 + .REF4 + .REF8 + .REF16 + .REPEAT + .REPT + .RESTORE + .RESTORE_PSECT + .SAVE + .SAVE_PSECT + .SBTTL + .SHOW + .SHOW + .SIGNED_BYTE + .SIGNED_WORD + .SUBTITLE + .TITLE + .TRANSFER + .WARN + .WEAK + .WORD + + + R0 + R1 + R2 + R3 + R4 + R5 + R6 + R7 + R8 + R9 + R10 + R11 + R12 + AP + FP + SP + PC + + + ACBB + ACBD + ACBF + ACBG + ACBH + ACBL + ACBW + ADAWI + ADDB2 + ADDB3 + ADDD2 + ADDD3 + ADDF2 + ADDF3 + ADDG2 + ADDG3 + ADDH2 + ADDH3 + ADDL2 + ADDL3 + ADDP4 + ADDP6 + ADDW2 + ADDW3 + ADWC + AOBLEQ + AOBLSS + ASHL + ASHP + ASHQ + BBC + BBCC + BBCCI + BBCS + BBS + BBSC + BBSS + BBSSI + BCC + BCS + BEQL + BEQLU + BGEQ + BGEQU + BGTR + BGTRU + BICB2 + BICB3 + BICL2 + BICL3 + BICPSW + BICW2 + BICW3 + BISB2 + BISB3 + BISL2 + BISL3 + BISPSW + BISW2 + BISW3 + BITB + BITL + BITW + BLBC + BLBS + BLEQ + BLEQU + BLSS + BLSSU + BNEQ + BNEQU + BPT + BRB + BRW + BSBB + BSBW + BVC + BVS + CALLG + CALLS + CASEB + CASEL + CASEW + CHME + CHMK + CHMS + CHMU + CLRB + CLRD + CLRF + CLRG + CLRH + CLRL + CLRO + CLRQ + CLRW + CMPB + CMPC3 + CMPC5 + CMPD + CMPF + CMPG + CMPH + CMPL + CMPP3 + CMPP4 + CMPV + CMPW + CMPZV + CRC + CVTBD + CVTBF + CVTBG + CVTBH + CVTBL + CVTBW + CVTDB + CVTDF + CVTDH + CVTDL + CVTDW + CVTFB + CVTFD + CVTFG + CVTFH + CVTFL + CVTFW + CVTGB + CVTGF + CVTGH + CVTGL + CVTGW + CVTHB + CVTHD + CVTHF + CVTHG + CVTHL + CVTHW + CVTLB + CVTLD + CVTLF + CVTLG + CVTLH + CVTLP + CVTLW + CVTPL + CVTPS + CVTPT + CVTRDL + CVTRFL + CVTRGL + CVTRHL + CVTSP + CVTTP + CVTWB + CVTWD + CVTWF + CVTWG + CVTWH + CVTWL + DECB + DECL + DECW + DIVB2 + DIVB3 + DIVD2 + DIVD3 + DIVF2 + DIVF3 + DIVG2 + DIVG3 + DIVH2 + DIVH3 + DIVL2 + DIVL3 + DIVP + DIVW2 + DIVW3 + EDITPC + EDIV + EMODD + EMODF + EMODG + EMODH + EMUL + EXTV + EXTZV + FFC + FFS + HALT + INCB + INCL + INCW + INDEX + INSQHI + INSQTI + INSQUE + INSV + IOTA + JMP + JSB + LDPCTX + LOCC + MATCHC + MCOMB + MCOML + MCOMW + MFPR + MFVP + MNEGB + MNEGD + MNEGF + MNEGG + MNEGH + MNEGL + MNEGW + MOVAB + MOVAD + MOVAF + MOVAG + MOVAH + MOVAL + MOVAO + MOVAQ + MOVAW + MOVB + MOVC3 + MOVC5 + MOVD + MOVF + MOVG + MOVH + MOVL + MOVO + MOVP + MOVPSL + MOVQ + MOVTC + MOVTUC + MOVW + MOVZBL + MOVZBW + MOVZWL + MTPR + MTVP + MULB2 + MULB3 + MULD2 + MULD3 + MULF2 + MULF3 + MULG2 + MULG3 + MULH2 + MULH3 + MULL2 + MULL3 + MULP + MULW2 + MULW3 + NOP + POLYD + POLYF + POLYG + POLYH + POPR + PROBER + PROBEW + PUSHAB + PUSHABL + PUSHAL + PUSHAD + PUSHAF + PUSHAG + PUSHAH + PUSHAL + PUSHAO + PUSHAQ + PUSHAW + PUSHL + PUSHR + REI + REMQHI + REMQTI + REMQUE + RET + ROTL + RSB + SBWC + SCANC + SKPC + SOBGEQ + SOBGTR + SPANC + SUBB2 + SUBB3 + SUBD2 + SUBD3 + SUBF2 + SUBF3 + SUBG2 + SUBG3 + SUBH2 + SUBH3 + SUBL2 + SUBL3 + SUBP4 + SUBP6 + SUBW2 + SUBW3 + SVPCTX + TSTB + TSTD + TSTF + TSTG + TSTH + TSTL + TSTW + VGATHL + VGATHQ + VLDL + VLDQ + VSADDD + VSADDF + VSADDG + VSADDL + VSBICL + VSBISL + VSCATL + VSCATQ + VSCMPD + VSCMPF + VSCMPG + VSCMPL + VSDIVD + VSDIVF + VSDIVG + VSMERGE + VSMULD + VSMULF + VSMULG + VSMULL + VSSLLL + VSSRLL + VSSUBD + VSSUBF + VSSUBG + VSSUBL + VSTL + VSTQ + VSXORL + VSYNC + VVADDD + VVADDF + VVADDG + VVADDL + VVBICL + VVBISL + VVCMPD + VVCMPF + VVCMPG + VVCMPL + VVCVT + VVDIVD + VVDIVF + VVDIVG + VVMERGE + VVMULD + VVMULF + VVMULG + VVMULL + VVSLLL + VVSRLL + VVSUBD + VVSUBF + VVSUBG + VVSUBL + VVXORL + XFC + XORB2 + XORB3 + XORL2 + XORL3 + XORW2 + XORW3 + + + diff --git a/extra/xmode/modes/assembly-mcs51.xml b/extra/xmode/modes/assembly-mcs51.xml new file mode 100644 index 0000000000..113e196b83 --- /dev/null +++ b/extra/xmode/modes/assembly-mcs51.xml @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + ; + + + ' + ' + + + + " + " + + + + %% + + $ + + : + + , + : + ( + ) + ] + [ + $ + + + + - + / + * + % + + | + ^ + & + ~ + ! + + = + < + > + + + MOD + SHR + SHL + NOT + AND + OR + XOR + HIGH + LOW + LT + LE + NE + EQ + GE + GT + DPTR + PC + EQU + SET + NUMBER + CSEG + XSEG + DSEG + ISEG + BSEG + RSEG + NUL + DB + DW + DWR + DS + DBIT + ORG + USING + END + NAME + PUBLIC + EXTRN + SEGMENT + UNIT + BITADDRESSABLE + INPAGE + INBLOCK + PAGE + OVERLAYABLE + AT + STACKLEN + SBIT + SFR + SFR16 + __ERROR__ + ACALL + ADD + ADDC + AJMP + ANL + CALL + CJNE + CLR + CPL + DA + DEC + DIV + DJNZ + INC + JB + JBC + JC + JMP + JNB + JNC + JNZ + JZ + LCALL + LJMP + MOV + MOVC + MOVX + MUL + NOP + ORL + POP + PUSH + RET + RETI + RL + RLC + RR + RRC + SETB + SJMP + SUBB + SWAP + XCH + XCHD + XRL + IF + ELSEIF + ELSE + ENDIF + MACRO + REPT + IRP + IRPC + ENDM + EXITM + LOCAL + DPTX + DPTN + DPTR8 + DPTR16 + WR0 + WR2 + WR4 + WR6 + DR0 + DR4 + RJC + RJNC + RJZ + RJNZ + JMPI + MOVB + PUSHA + POPA + SUB + ADDM + SUBM + SLEEP + SYNC + DEFINE + SUBSTR + THEN + LEN + EQS + IF + FI + + $IF + $ELSEIF + $ELSE + $ENDIF + $MOD167 + $CASE + $SEGMENTED + $INCLUDE + + + CODE + XDATA + DATA + IDATA + BIT + + + R0 + R1 + R2 + R3 + R4 + R5 + R6 + R7 + + SP + A + C + AB + + + + + + diff --git a/extra/xmode/modes/assembly-parrot.xml b/extra/xmode/modes/assembly-parrot.xml new file mode 100644 index 0000000000..212e182cc1 --- /dev/null +++ b/extra/xmode/modes/assembly-parrot.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + " + " + + + # + + : + + , + + [ISNP]\d{1,2} + + + abs + acos + add + and + asec + asin + atan + bounds + branch + bsr + chopm + cleari + clearn + clearp + clears + clone + close + cmod + concat + cos + cosh + debug + dec + div + end + entrytype + eq + err + exp + find_global + find_type + ge + getfile + getline + getpackage + gt + if + inc + index + jsr + jump + le + length + ln + log2 + log10 + lt + mod + mul + ne + new + newinterp + noop + not + not + open + or + ord + pack + pop + popi + popn + popp + pops + pow + print + profile + push + pushi + pushn + pushp + pushs + read + readline + repeat + restore + ret + rotate_up + runinterp + save + sec + sech + set + set_keyed + setfile + setline + setpackage + shl + shr + sin + sinh + sleep + sub + substr + tan + tanh + time + trace + typeof + unless + warningsoff + warningson + write + xor + + + diff --git a/extra/xmode/modes/assembly-r2000.xml b/extra/xmode/modes/assembly-r2000.xml new file mode 100644 index 0000000000..4023f54582 --- /dev/null +++ b/extra/xmode/modes/assembly-r2000.xml @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + # + + + + ' + ' + + + + " + " + + + + : + + + + .align + .ascii + .asciiz + .byte + .data + .double + .extern + .float + .globl + .half + .kdata + .ktext + .space + .text + .word + + + add + addi + addu + addiu + and + andi + div + divu + mul + mulo + mulou + mult + multu + neg + negu + nor + not + or + ori + rem + remu + rol + ror + sll + sllv + sra + srav + srl + srlv + sub + subu + xor + xori + li + lui + seq + sge + sgt + sgtu + sle + sleu + slt + slti + sltu + sltiu + sne + b + bczt + bczf + beq + beqz + bge + bgeu + bgez + bgezal + bgt + bgtu + bgtz + ble + bleu + blez + bgezal + bltzal + blt + bltu + bltz + bne + bnez + j + jal + jalr + jr + la + lb + blu + lh + lhu + lw + lwcz + lwl + lwr + ulh + ulhu + ulw + sb + sd + sh + sw + swcz + swl + swr + ush + usw + move + mfhi + mflo + mthi + mtlo + mfcz + mfc1.d + mtcz + abs.d + abs.s + add.d + add.s + c.eq.d + c.eq.s + c.le.d + c.le.s + c.lt.d + c.lt.s + cvt.d.s + cbt.d.w + cvt.s.d + cvt.s.w + cvt.w.d + cvt.w.s + div.d + div.s + l.d + l.s + mov.d + mov.s + mul.d + mul.s + neg.d + neg.s + s.d + s.s + sub.d + sub.s + rfe + syscall + break + nop + + + $zero + $at + $v0 + $v1 + $a0 + $a1 + $a2 + $a3 + $t0 + $t1 + $t2 + $t3 + $t4 + $t5 + $t6 + $t7 + $s0 + $s1 + $s2 + $s3 + $s4 + $s5 + $s6 + $s7 + $t8 + $t9 + $k0 + $k1 + $gp + $sp + $fp + $ra + + + $f0 + $f1 + $f2 + $f3 + $f4 + $f5 + $f6 + $f7 + $f8 + $f9 + $f10 + $f11 + $f12 + $f13 + $f14 + $f15 + $f16 + $f17 + $f18 + $f19 + $f20 + $f21 + $f22 + $f23 + $f24 + $f25 + $f26 + $f27 + $f28 + $f29 + $f30 + $f31 + + + diff --git a/extra/xmode/modes/assembly-x86.xml b/extra/xmode/modes/assembly-x86.xml new file mode 100644 index 0000000000..76882ae57c --- /dev/null +++ b/extra/xmode/modes/assembly-x86.xml @@ -0,0 +1,863 @@ + + + + + + + + + + + + + + ; + + + ' + ' + + + + " + " + + + + %% + + % + + : + + + + - + / + * + % + + | + ^ + & + ~ + ! + + = + < + > + + + .186 + .286 + .286P + .287 + .386 + .386P + .387 + .486 + .486P + .586 + .586P + .686 + .686P + .8086 + .8087 + .ALPHA + .BREAK + .BSS + .CODE + .CONST + .CONTINUE + .CREF + .DATA + .DATA? + .DOSSEG + .ELSE + .ELSEIF + .ENDIF + .ENDW + .ERR + .ERR1 + .ERR2 + .ERRB + .ERRDEF + .ERRDIF + .ERRDIFI + .ERRE + .ERRIDN + .ERRIDNI + .ERRNB + .ERRNDEF + .ERRNZ + .EXIT + .FARDATA + .FARDATA? + .IF + .K3D + .LALL + .LFCOND + .LIST + .LISTALL + .LISTIF + .LISTMACRO + .LISTMACROALL + .MMX + .MODEL + .MSFLOAT + .NO87 + .NOCREF + .NOLIST + .NOLISTIF + .NOLISTMACRO + .RADIX + .REPEAT + .SALL + .SEQ + .SFCOND + .STACK + .STARTUP + .TEXT + .TFCOND + .UNTIL + .UNTILCXZ + .WHILE + .XALL + .XCREF + .XLIST + .XMM + __FILE__ + __LINE__ + A16 + A32 + ADDR + ALIGN + ALIGNB + ASSUME + BITS + CARRY? + CATSTR + CODESEG + COMM + COMMENT + COMMON + DATASEG + DOSSEG + ECHO + ELSE + ELSEIF + ELSEIF1 + ELSEIF2 + ELSEIFB + ELSEIFDEF + ELSEIFE + ELSEIFIDN + ELSEIFNB + ELSEIFNDEF + END + ENDIF + ENDM + ENDP + ENDS + ENDSTRUC + EVEN + EXITM + EXPORT + EXTERN + EXTERNDEF + EXTRN + FAR + FOR + FORC + GLOBAL + GOTO + GROUP + HIGH + HIGHWORD + IEND + IF + IF1 + IF2 + IFB + IFDEF + IFDIF + IFDIFI + IFE + IFIDN + IFIDNI + IFNB + IFNDEF + IMPORT + INCBIN + INCLUDE + INCLUDELIB + INSTR + INVOKE + IRP + IRPC + ISTRUC + LABEL + LENGTH + LENGTHOF + LOCAL + LOW + LOWWORD + LROFFSET + MACRO + NAME + NEAR + NOSPLIT + O16 + O32 + OFFSET + OPATTR + OPTION + ORG + OVERFLOW? + PAGE + PARITY? + POPCONTEXT + PRIVATE + PROC + PROTO + PTR + PUBLIC + PURGE + PUSHCONTEXT + RECORD + REPEAT + REPT + SECTION + SEG + SEGMENT + SHORT + SIGN? + SIZE + SIZEOF + SIZESTR + STACK + STRUC + STRUCT + SUBSTR + SUBTITLE + SUBTTL + THIS + TITLE + TYPE + TYPEDEF + UNION + USE16 + USE32 + USES + WHILE + WRT + ZERO? + + DB + DW + DD + DF + DQ + DT + RESB + RESW + RESD + RESQ + REST + EQU + TEXTEQU + TIMES + DUP + + BYTE + WORD + DWORD + FWORD + QWORD + TBYTE + SBYTE + TWORD + SWORD + SDWORD + REAL4 + REAL8 + REAL10 + + + AL + BL + CL + DL + AH + BH + CH + DH + AX + BX + CX + DX + SI + DI + SP + BP + EAX + EBX + ECX + EDX + ESI + EDI + ESP + EBP + CS + DS + SS + ES + FS + GS + ST + ST0 + ST1 + ST2 + ST3 + ST4 + ST5 + ST6 + ST7 + MM0 + MM1 + MM2 + MM3 + MM4 + MM5 + MM6 + MM7 + XMM0 + XMM1 + XMM2 + XMM3 + XMM4 + XMM5 + XMM6 + XMM7 + CR0 + CR2 + CR3 + CR4 + DR0 + DR1 + DR2 + DR3 + DR4 + DR5 + DR6 + DR7 + TR3 + TR4 + TR5 + TR6 + TR7 + + + AAA + AAD + AAM + AAS + ADC + ADD + ADDPS + ADDSS + AND + ANDNPS + ANDPS + ARPL + BOUND + BSF + BSR + BSWAP + BT + BTC + BTR + BTS + CALL + CBW + CDQ + CLC + CLD + CLI + CLTS + CMC + CMOVA + CMOVAE + CMOVB + CMOVBE + CMOVC + CMOVE + CMOVG + CMOVGE + CMOVL + CMOVLE + CMOVNA + CMOVNAE + CMOVNB + CMOVNBE + CMOVNC + CMOVNE + CMOVNG + CMOVNGE + CMOVNL + CMOVNLE + CMOVNO + CMOVNP + CMOVNS + CMOVNZ + CMOVO + CMOVP + CMOVPE + CMOVPO + CMOVS + CMOVZ + CMP + CMPPS + CMPS + CMPSB + CMPSD + CMPSS + CMPSW + CMPXCHG + CMPXCHGB + COMISS + CPUID + CWD + CWDE + CVTPI2PS + CVTPS2PI + CVTSI2SS + CVTSS2SI + CVTTPS2PI + CVTTSS2SI + DAA + DAS + DEC + DIV + DIVPS + DIVSS + EMMS + ENTER + F2XM1 + FABS + FADD + FADDP + FBLD + FBSTP + FCHS + FCLEX + FCMOVB + FCMOVBE + FCMOVE + FCMOVNB + FCMOVNBE + FCMOVNE + FCMOVNU + FCMOVU + FCOM + FCOMI + FCOMIP + FCOMP + FCOMPP + FCOS + FDECSTP + FDIV + FDIVP + FDIVR + FDIVRP + FFREE + FIADD + FICOM + FICOMP + FIDIV + FIDIVR + FILD + FIMUL + FINCSTP + FINIT + FIST + FISTP + FISUB + FISUBR + FLD1 + FLDCW + FLDENV + FLDL2E + FLDL2T + FLDLG2 + FLDLN2 + FLDPI + FLDZ + FMUL + FMULP + FNCLEX + FNINIT + FNOP + FNSAVE + FNSTCW + FNSTENV + FNSTSW + FPATAN + FPREM + FPREMI + FPTAN + FRNDINT + FRSTOR + FSAVE + FSCALE + FSIN + FSINCOS + FSQRT + FST + FSTCW + FSTENV + FSTP + FSTSW + FSUB + FSUBP + FSUBR + FSUBRP + FTST + FUCOM + FUCOMI + FUCOMIP + FUCOMP + FUCOMPP + FWAIT + FXAM + FXCH + FXRSTOR + FXSAVE + FXTRACT + FYL2X + FYL2XP1 + HLT + IDIV + IMUL + IN + INC + INS + INSB + INSD + INSW + INT + INTO + INVD + INVLPG + IRET + JA + JAE + JB + JBE + JC + JCXZ + JE + JECXZ + JG + JGE + JL + JLE + JMP + JNA + JNAE + JNB + JNBE + JNC + JNE + JNG + JNGE + JNL + JNLE + JNO + JNP + JNS + JNZ + JO + JP + JPE + JPO + JS + JZ + LAHF + LAR + LDMXCSR + LDS + LEA + LEAVE + LES + LFS + LGDT + LGS + LIDT + LLDT + LMSW + LOCK + LODS + LODSB + LODSD + LODSW + LOOP + LOOPE + LOOPNE + LOOPNZ + LOOPZ + LSL + LSS + LTR + MASKMOVQ + MAXPS + MAXSS + MINPS + MINSS + MOV + MOVAPS + MOVD + MOVHLPS + MOVHPS + MOVLHPS + MOVLPS + MOVMSKPS + MOVNTPS + MOVNTQ + MOVQ + MOVS + MOVSB + MOVSD + MOVSS + MOVSW + MOVSX + MOVUPS + MOVZX + MUL + MULPS + MULSS + NEG + NOP + NOT + OR + ORPS + OUT + OUTS + OUTSB + OUTSD + OUTSW + PACKSSDW + PACKSSWB + PACKUSWB + PADDB + PADDD + PADDSB + PADDSW + PADDUSB + PADDUSW + PADDW + PAND + PANDN + PAVGB + PAVGW + PCMPEQB + PCMPEQD + PCMPEQW + PCMPGTB + PCMPGTD + PCMPGTW + PEXTRW + PINSRW + PMADDWD + PMAXSW + PMAXUB + PMINSW + PMINUB + PMOVMSKB + PMULHUW + PMULHW + PMULLW + POP + POPA + POPAD + POPAW + POPF + POPFD + POPFW + POR + PREFETCH + PSADBW + PSHUFW + PSLLD + PSLLQ + PSLLW + PSRAD + PSRAW + PSRLD + PSRLQ + PSRLW + PSUBB + PSUBD + PSUBSB + PSUBSW + PSUBUSB + PSUBUSW + PSUBW + PUNPCKHBW + PUNPCKHDQ + PUNPCKHWD + PUNPCKLBW + PUNPCKLDQ + PUNPCKLWD + PUSH + PUSHA + PUSHAD + PUSHAW + PUSHF + PUSHFD + PUSHFW + PXOR + RCL + RCR + RDMSR + RDPMC + RDTSC + REP + REPE + REPNE + REPNZ + REPZ + RET + RETF + RETN + ROL + ROR + RSM + SAHF + SAL + SAR + SBB + SCAS + SCASB + SCASD + SCASW + SETA + SETAE + SETB + SETBE + SETC + SETE + SETG + SETGE + SETL + SETLE + SETNA + SETNAE + SETNB + SETNBE + SETNC + SETNE + SETNG + SETNGE + SETNL + SETNLE + SETNO + SETNP + SETNS + SETNZ + SETO + SETP + SETPE + SETPO + SETS + SETZ + SFENCE + SGDT + SHL + SHLD + SHR + SHRD + SHUFPS + SIDT + SLDT + SMSW + SQRTPS + SQRTSS + STC + STD + STI + STMXCSR + STOS + STOSB + STOSD + STOSW + STR + SUB + SUBPS + SUBSS + SYSENTER + SYSEXIT + TEST + UB2 + UCOMISS + UNPCKHPS + UNPCKLPS + WAIT + WBINVD + VERR + VERW + WRMSR + XADD + XCHG + XLAT + XLATB + XOR + XORPS + + + FEMMS + PAVGUSB + PF2ID + PFACC + PFADD + PFCMPEQ + PFCMPGE + PFCMPGT + PFMAX + PFMIN + PFMUL + PFRCP + PFRCPIT1 + PFRCPIT2 + PFRSQIT1 + PFRSQRT + PFSUB + PFSUBR + PI2FD + PMULHRW + PREFETCHW + + + PF2IW + PFNACC + PFPNACC + PI2FW + PSWAPD + + + PREFETCHNTA + PREFETCHT0 + PREFETCHT1 + PREFETCHT2 + + + + diff --git a/extra/xmode/modes/awk.xml b/extra/xmode/modes/awk.xml new file mode 100644 index 0000000000..2be33ea118 --- /dev/null +++ b/extra/xmode/modes/awk.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + " + " + + + ' + ' + + + # + = + ! + >= + <= + + + - + / + * + > + < + % + & + | + ^ + ~ + } + { + : + + + break + close + continue + delete + do + else + exit + fflush + for + huge + if + in + function + next + nextfile + print + printf + return + while + + atan2 + cos + exp + gensub + getline + gsub + index + int + length + log + match + rand + sin + split + sprintf + sqrt + srand + sub + substr + system + tolower + toupper + + BEGIN + END + $0 + ARGC + ARGIND + ARGV + CONVFMT + ENVIRON + ERRNO + FIELDSWIDTH + FILENAME + FNR + FS + IGNORECASE + NF + NR + OFMT + OFS + ORS + RLENGTH + RS + RSTART + RT + SUBSEP + + + diff --git a/extra/xmode/modes/b.xml b/extra/xmode/modes/b.xml new file mode 100644 index 0000000000..6609b19ef0 --- /dev/null +++ b/extra/xmode/modes/b.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + /*? + ?*/ + + + + /* + */ + + + + " + " + + + ' + ' + + + + // + ! + # + $0 + % + = + + & + + > + < + + * + + + + / + \ + ~ + : + ; + | + - + + ^ + + . + , + ( + ) + } + { + ] + [ + + + + + ABSTRACT_CONSTANTS + ABSTRACT_VARIABLES + CONCRETE_CONSTANTS + CONCRETE_VARIABLES + CONSTANTS + VARIABLES + ASSERTIONS + CONSTRAINTS + DEFINITIONS + EXTENDS + IMPLEMENTATION + IMPORTS + INCLUDES + INITIALISATION + INVARIANT + LOCAL_OPERATIONS + MACHINE + OPERATIONS + PROMOTES + PROPERTIES + REFINES + REFINEMENT + SEES + SETS + USES + VALUES + + + + ANY + ASSERT + BE + BEGIN + CASE + CHOICE + DO + EITHER + ELSE + ELSIF + + END + IF + IN + LET + OF + OR + PRE + SELECT + THEN + VAR + VARIANT + WHEN + WHERE + WHILE + + + FIN + FIN1 + INT + INTEGER + INTER + MAXINT + MININT + NAT + NAT1 + NATURAL + NATURAL1 + PI + POW + POW1 + SIGMA + UNION + + arity + bin + bool + btree + card + closure + closure1 + conc + const + dom + father + first + fnc + front + id + infix + inter + iseq + iseq1 + iterate + last + left + max + min + mirror + mod + not + or + perm + postfix + pred + prefix + prj1 + prj2 + r~ + ran + rank + rec + rel + rev + right + seq + seq1 + size + sizet + skip + son + sons + struct + subtree + succ + tail + top + tree + union + + + + + diff --git a/extra/xmode/modes/batch.xml b/extra/xmode/modes/batch.xml new file mode 100644 index 0000000000..ebfe13affd --- /dev/null +++ b/extra/xmode/modes/batch.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + @ + + + + | + & + ! + > + < + + + : + + + REM\s + + + + " + " + + + + %0 + %1 + %2 + %3 + %4 + %5 + %6 + %7 + %8 + %9 + + %%[\p{Alpha}] + + % + % + + + + + cd + chdir + md + mkdir + + cls + + for + if + + echo + echo. + + move + copy + move + ren + del + set + + + call + exit + setlocal + shift + endlocal + pause + + + + defined + exist + errorlevel + + + else + + in + do + + NUL + AUX + PRN + + not + + + goto + + + + APPEND + ATTRIB + CHKDSK + CHOICE + DEBUG + DEFRAG + DELTREE + DISKCOMP + DISKCOPY + DOSKEY + DRVSPACE + EMM386 + EXPAND + FASTOPEN + FC + FDISK + FIND + FORMAT + GRAPHICS + KEYB + LABEL + LOADFIX + MEM + MODE + MORE + MOVE + MSCDEX + NLSFUNC + POWER + PRINT + RD + REPLACE + RESTORE + SETVER + SHARE + SORT + SUBST + SYS + TREE + UNDELETE + UNFORMAT + VSAFE + XCOPY + + + diff --git a/extra/xmode/modes/bbj.xml b/extra/xmode/modes/bbj.xml new file mode 100644 index 0000000000..91f684c774 --- /dev/null +++ b/extra/xmode/modes/bbj.xml @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + /* + */ + + + " + " + + + // + REM + + = + >= + <= + + + - + / + * + > + < + <> + ^ + and + or + + : + ( + ) + + + ABS + ADJN + ARGC + ARGV + ASC + ATH + ATN + BACKGROUND + BIN + BSZ + CALLBACK + CHANOPT + CHR + CLIPCLEAR + CLIPFROMFILE + CLIPFROMSTR + CLIPISFORMAT + CLIPLOCK + CLIPREGFORMAT + CLIPTOFILE + CLIPTOSTR + CLIPUNLOCK + COS + CPL + CRC + CRC16 + CTRL + CVS + CVT + DATE + DEC + DIMS + DSK + DSZ + EPT + ERRMES + FATTR + FBIN + FDEC + FIELD + FILEOPT + FILL + FLOATINGPOINT + FPT + GAP + HSA + HSH + HTA + IMP + INFO + INT + JUL + LCHECKIN + LCHECKOUT + LEN + LINFO + LOG + LRC + LST + MASK + MAX + MENUINFO + MIN + MOD + MSGBOX + NEVAL + NFIELD + NOTICE + NOTICETPL + NUM + PAD + PCK + PGM + POS + PROCESS_EVENTS + PROGRAM + PSZ + PUB + REMOVE_CALLBACK + RESERVE + RND + ROUND + SCALL + SENDMSG + SEVAL + SGN + SIN + SQR + SSORT + SSZ + STBL + STR + SWAP + SYS + TCB + TMPL + TSK + UPK + WINFIRST + WININFO + WINNEXT + + CHDIR + CISAM + CLOSE + CONTINUE + DIRECT + DIR + DISABLE + DOM + DUMP + ENABLE + END + ENDTRACE + ERASE + EXTRACT + FID + FILE + FIN + FIND + FROM + IND + INDEXED + INPUT + INPUTE + INPUTN + IOL + IOLIST + KEY + KEYF + KEYL + KEYN + KEYP + KGEN + KNUM + LIST + LOAD + LOCK + MERGE + MKDIR + MKEYED + OPEN + PREFIX + PRINT + READ_RESOURCE + READ + RECORD + REMOVE + RENAME + RESCLOSE + RESFIRST + RESGET + RESINFO + RESNEXT + RESOPEN + REV + RMDIR + SAVE + SELECT + SERIAL + SETDAY + SETDRIVE + SETTRACE + SIZ + SORT + SQLCHN + SQLCLOSE + SQLERR + SQLEXEC + SQLFETCH + SQLLIST + SQLOPEN + SQLPREP + SQLSET + SQLTABLES + SQLTMPL + SQLUNT + STRING + TABLE + TBL + TIM + UNLOCK + WHERE + WRITE + XFID + XFILE + XFIN + + ADDR + ALL + AUTO + BEGIN + BREAK + CALL + CASE + CHN + CLEAR + CTL + DATA + DAY + DEF + DEFAULT + DEFEND + DELETE + DIM + DREAD + DROP + EDIT + ELSE + ENDIF + ENTER + ERR + ESCAPE + ESCOFF + ESCON + EXECUTE + EXIT + EXITTO + FI + FOR + GOSUB + GOTO + IF + IFF + INITFILE + IOR + LET + NEXT + NOT + ON + OPTS + OR + PFX + PRECISION + RELEASE + RENUM + REPEAT + RESET + RESTORE + RETRY + RETURN + RUN + SET_CASE_SENSITIVE_OFF + SET_CASE_SENSITIVE_ON + SETERR + SETESC + SETOPTS + SETTIME + SSN + START + STEP + STOP + SWEND + SWITCH + THEN + TO + UNT + UNTIL + WAIT + WEND + WHILE + XOR + + + diff --git a/extra/xmode/modes/bcel.xml b/extra/xmode/modes/bcel.xml new file mode 100644 index 0000000000..19ab3cfd67 --- /dev/null +++ b/extra/xmode/modes/bcel.xml @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + /**/ + + + + /** + */ + + + + + /* + */ + + + // + + + ' + ' + + + + " + " + + + % + # + + : + + > + < + + + + abstract + + + + + + + + extends + final + + + + implements + + native + + private + protected + public + + static + + synchronized + throw + throws + transient + + volatile + + + + + + boolean + byte + char + class + double + float + int + interface + long + short + void + + + + + + + + clinit + init + + nop + aconst_null + iconst_m1 + iconst_0 + iconst_1 + iconst_2 + iconst_3 + iconst_4 + iconst_5 + lconst_0 + lconst_1 + fconst_0 + fconst_1 + fconst_2 + dconst_0 + dconst_1 + bipush + sipush + ldc + ldc_w + ldc2_w + iload + lload + fload + dload + aload + iload_0 + iload_1 + iload_2 + iload_3 + lload_0 + lload_1 + lload_2 + lload_3 + fload_0 + fload_1 + fload_2 + fload_3 + dload_0 + dload_1 + dload_2 + dload_3 + aload_0 + aload_1 + aload_2 + aload_3 + iaload + laload + faload + daload + aaload + baload + caload + saload + istore + lstore + fstore + dstore + astore + istore_0 + istore_1 + istore_2 + istore_3 + lstore_0 + lstore_1 + lstore_2 + lstore_3 + fstore_0 + fstore_1 + fstore_2 + fstore_3 + dstore_0 + dstore_1 + dstore_2 + dstore_3 + astore_0 + astore_1 + astore_2 + astore_3 + iastore + lastore + fastore + dastore + aastore + bastore + castore + sastore + pop + pop2 + dup + dup_x1 + dup_x2 + dup2 + dup2_x1 + dup2_x2 + swap + iadd + ladd + fadd + dadd + isub + lsub + fsub + dsub + imul + lmul + fmul + dmul + idiv + ldiv + fdiv + ddiv + irem + lrem + frem + drem + ineg + lneg + fneg + dneg + ishl + lshl + ishr + lshr + iushr + lushr + iand + land + ior + lor + ixor + lxor + iinc + i2l + i2f + i2d + l2i + l2f + l2d + f2i + f2l + f2d + d2i + d2l + d2f + i2b + i2c + i2s + lcmp + fcmpl + fcmpg + dcmpl + dcmpg + ifeq + ifne + iflt + ifge + ifgt + ifle + if_icmpeq + if_icmpne + if_icmplt + if_icmpge + if_icmpgt + if_icmple + if_acmpeq + if_acmpne + goto + jsr + ret + tableswitch + lookupswitch + ireturn + lreturn + freturn + dreturn + areturn + return + getstatic + putstatic + getfield + putfield + invokevirtual + invokespecial + invokestatic + invokeinterface + + new + newarray + anewarray + arraylength + athrow + checkcast + instanceof + monitorenter + monitorexit + wide + multianewarray + ifnull + ifnonnull + goto_w + jsr_w + + + breakpoint + impdep1 + impdep2 + + + diff --git a/extra/xmode/modes/bibtex.xml b/extra/xmode/modes/bibtex.xml new file mode 100644 index 0000000000..d9211c0910 --- /dev/null +++ b/extra/xmode/modes/bibtex.xml @@ -0,0 +1,960 @@ + + + + + + + + + + + + + + + + + + % + + + + @article{} + @article() + @book{} + @book() + @booklet{} + @booklet() + @conference{} + @conference() + @inbook{} + @inbook() + @incollection{} + @incollection() + @inproceedings{} + @inproceedings() + @manual{} + @manual() + @mastersthesis{} + @mastersthesis() + @misc{} + @misc() + @phdthesis{} + @phdthesis() + @proceedings{} + @proceedings() + @techreport{} + @techreport() + @unpublished{} + @unpublished() + @string{} + @string() + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + journal + title + year + + month + note + number + pages + volume + + address + annote + booktitle + chapter + crossref + edition + editor + howpublished + institution + key + organization + publisher + school + series + type + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + editor + publisher + title + year + + address + edition + month + note + number + series + volume + + annote + booktitle + chapter + crossref + howpublished + institution + journal + key + organization + pages + school + type + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + title + + address + author + howpublished + month + note + year + + annote + booktitle + chapter + crossref + edition + editor + institution + journal + key + number + organization + pages + publisher + school + series + type + volume + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + booktitle + title + year + + address + editor + month + note + number + organization + pages + publisher + series + volume + + annote + chapter + crossref + edition + howpublished + institution + journal + key + school + type + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + chapter + editor + pages + publisher + title + year + + address + edition + month + note + number + series + type + volume + + annote + booktitle + crossref + howpublished + institution + journal + key + organization + school + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + booktitle + publisher + title + year + + address + chapter + edition + editor + month + note + number + pages + series + type + volume + + annote + crossref + howpublished + institution + journal + key + organization + school + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + booktitle + title + year + + address + editor + month + note + number + organization + pages + publisher + series + volume + + annote + chapter + crossref + edition + howpublished + institution + journal + key + school + type + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + title + + address + author + edition + month + note + organization + year + + annote + booktitle + chapter + crossref + editor + howpublished + institution + journal + key + number + pages + publisher + school + series + type + volume + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + school + title + year + + address + month + note + type + + annote + booktitle + chapter + crossref + edition + editor + howpublished + institution + journal + key + number + organization + pages + publisher + series + volume + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + + author + howpublished + month + note + title + year + + address + annote + booktitle + chapter + crossref + edition + editor + institution + journal + key + number + organization + pages + publisher + school + series + type + volume + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + school + title + year + + address + month + note + type + + annote + booktitle + chapter + crossref + edition + editor + howpublished + institution + journal + key + number + organization + pages + publisher + series + volume + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + title + year + + address + editor + month + note + number + organization + publisher + series + volume + + annote + author + booktitle + chapter + crossref + edition + howpublished + institution + journal + key + pages + school + type + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + institution + title + year + + address + month + note + number + type + + annote + booktitle + chapter + crossref + edition + editor + howpublished + journal + key + organization + pages + publisher + school + series + volume + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + "" + {} + = + , + [1-9][0-9]* + + + author + note + title + + month + year + + address + annote + booktitle + chapter + crossref + edition + editor + howpublished + institution + journal + key + number + organization + pages + publisher + school + series + type + volume + + abstract + annotation + day + keywords + lccn + location + references + url + + jan + feb + mar + apr + may + jun + jul + aug + sep + oct + nov + dec + + + + + + \{\} + {} + "" + \" + + + + \{\} + {} + \" + + + + "" + {} + \{\} + = + , + \" + + + + diff --git a/extra/xmode/modes/c.xml b/extra/xmode/modes/c.xml new file mode 100644 index 0000000000..a4a94694a0 --- /dev/null +++ b/extra/xmode/modes/c.xml @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + # + + + + + + + + + + /**/ + + /**< + */ + + + /** + */ + + ///< + /// + + + + /*!< + */ + + + /*! + */ + + //!< + //! + + + + /* + */ + + // + + + L" + " + + + " + " + + + L' + ' + + + ' + ' + + + + ??( + ??/ + ??) + ??' + ??< + ??! + ??> + ??- + ??= + + + <: + :> + <% + %> + %: + + + : + + + ( + + = + ! + + + - + / + * + > + < + % + & + | + ^ + ~ + ? + : + . + , + [ + ] + ) + } + { + ; + + + + __DATE__ + __FILE__ + __LINE__ + __STDC_HOSTED__ + __STDC_ISO_10646__ + __STDC_VERSION__ + __STDC__ + __TIME__ + __cplusplus + + + BUFSIZ + CLOCKS_PER_SEC + EDOM + EILSEQ + EOF + ERANGE + EXIT_FAILURE + EXIT_SUCCESS + FILENAME_MAX + FOPEN_MAX + HUGE_VAL + LC_ALL + LC_COLLATE + LC_CTYPE + LC_MONETARY + LC_NUMERIC + LC_TIME + L_tmpnam + MB_CUR_MAX + NULL + RAND_MAX + SEEK_CUR + SEEK_END + SEEK_SET + SIGABRT + SIGFPE + SIGILL + SIGINT + SIGSEGV + SIGTERM + SIG_DFL + SIG_ERR + SIG_IGN + TMP_MAX + WCHAR_MAX + WCHAR_MIN + WEOF + _IOFBF + _IOLBF + _IONBF + assert + errno + offsetof + setjmp + stderr + stdin + stdout + va_arg + va_end + va_start + + + CHAR_BIT + CHAR_MAX + CHAR_MIN + DBL_DIG + DBL_EPSILON + DBL_MANT_DIG + DBL_MAX + DBL_MAX_10_EXP + DBL_MAX_EXP + DBL_MIN + DBL_MIN_10_EXP + DBL_MIN_EXP + FLT_DIG + FLT_EPSILON + FLT_MANT_DIG + FLT_MAX + FLT_MAX_10_EXP + FLT_MAX_EXP + FLT_MIN + FLT_MIN_10_EXP + FLT_MIN_EXP + FLT_RADIX + FLT_ROUNDS + INT_MAX + INT_MIN + LDBL_DIG + LDBL_EPSILON + LDBL_MANT_DIG + LDBL_MAX + LDBL_MAX_10_EXP + LDBL_MAX_EXP + LDBL_MIN + LDBL_MIN_10_EXP + LDBL_MIN_EXP + LONG_MAX + LONG_MIN + MB_LEN_MAX + SCHAR_MAX + SCHAR_MIN + SHRT_MAX + SHRT_MIN + UCHAR_MAX + UINT_MAX + ULONG_MAX + USRT_MAX + + + and + and_eq + bitand + bitor + compl + not + not_eq + or + or_eq + xor + xor_eq + + + + + + + + bool + char + double + enum + float + int + long + short + signed + struct + union + unsigned + + asm + auto + break + case + const + continue + default + do + else + extern + false + for + goto + if + inline + register + return + sizeof + static + switch + true + typedef + void + volatile + while + + restrict + _Bool + _Complex + _Pragma + _Imaginary + + + + + + + include\b + define\b + endif\b + elif\b + if\b + + + + + + ifdef + ifndef + else + error + line + pragma + undef + warning + + + + + + + + < + > + + + " + " + + + + + + + + # + + + + + + + + + + defined + + true + false + + + + + diff --git a/extra/xmode/modes/catalog b/extra/xmode/modes/catalog new file mode 100644 index 0000000000..f4300b456b --- /dev/null +++ b/extra/xmode/modes/catalog @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extra/xmode/modes/chill.xml b/extra/xmode/modes/chill.xml new file mode 100644 index 0000000000..2ef3b8f4f4 --- /dev/null +++ b/extra/xmode/modes/chill.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + <> + <> + + + + /* + */ + + + + ' + ' + + + H' + ; + + + ) + ( + ] + [ + + + - + / + * + . + , + ; + ^ + @ + := + : + = + /= + > + < + >= + <= + + + + AND + BEGIN + CASE + DIV + DO + ELSE + ELSIF + END + ESAC + EXIT + FI + FOR + GOTO + IF + IN + MOD + NOT + OD + OF + ON + OR + OUT + RESULT + RETURN + THEN + THEN + TO + UNTIL + USES + WHILE + WITH + XOR + + ARRAY + DCL + GRANT + LABEL + MODULE + NEWMODE + PROC + POWERSET + SEIZE + SET + STRUCT + SYN + SYNMODE + TYPE + PACK + + BIN + CHAR + INT + RANGE + + BOOL + + PTR + REF + + + + + + + + + FALSE + NULL + TRUE + + + diff --git a/extra/xmode/modes/cil.xml b/extra/xmode/modes/cil.xml new file mode 100644 index 0000000000..93b3816477 --- /dev/null +++ b/extra/xmode/modes/cil.xml @@ -0,0 +1,385 @@ + + + + + + + + + + + + + + + + + + + + + ' + ' + + + // + + ( + ) + + + " + " + + + : + + + public + private + family + assembly + famandassem + famorassem + autochar + abstract + ansi + beforefieldinit + explicit + interface + nested + rtspecialname + sealed + sequential + serializable + specialname + unicode + final + hidebysig + newslot + pinvokeimpl + static + virtual + cil + forwardref + internalcall + managed + native + noinlining + runtime + synchronized + unmanaged + typedref + cdecl + fastcall + stdcall + thiscall + platformapi + initonly + literal + marshal + notserialized + addon + removeon + catch + fault + filter + handler + + + .assembly + .assembly extern + .class + .class extern + .field + .method + .property + .get + .set + .other + .ctor + .corflags + .custom + .data + .file + .mresource + .module + .module extern + .subsystem + .vtfixup + .publickeytoken + .ver + .hash algorithm + .culture + .namespace + .event + .fire + .override + .try + .catch + .finally + .locals + .maxstack + .entrypoint + .pack + .size + + + .file alignment + .imagebase + .language + .namespace + + + string + object + bool + true + false + bytearray + char + float32 + float64 + int8 + int16 + int32 + int64 + nullref + + + & + * + } + { + + + add + add.ovf + add.ovf.un + div + div.un + mul + mul.ovf + mul.ovf.un + sub + sub.ovf + sub.ovf.un + + + and + not + or + xor + + + beq + beq.s + bge + bge.s + bge.un + bge.un.s + bgt + bgt.s + bgt.un + bgt.un.s + ble + ble.s + ble.un + ble.un.s + blt + blt.s + blt.un + blt.un.s + bne.un + bne.un.s + br + brfalse + brfalse.s + brtrue + brtrue.s + br.s + + + conv.i + conv.i1 + conv.i2 + conv.i4 + conv.i8 + conv.ovf.i + conv.ovf.i1 + conv.ovf.i1.un + conv.ovf.i2 + conv.ovf.i2.un + conv.ovf.i4 + conv.ovf.i4.un + conv.ovf.i8 + conv.ovf.i8.un + conv.ovf.i.un + conv.ovf.u + conv.ovf.u1 + conv.ovf.u1.un + conv.ovf.u2 + conv.ovf.u2.un + conv.ovf.u4 + conv.ovf.u4.un + conv.ovf.u8 + conv.ovf.u8.un + conv.ovf.u.un + conv.r4 + conv.r8 + conv.r.un + conv.u + conv.u1 + conv.u2 + conv.u4 + conv.u8 + + + ldarg + ldarga + ldarga.s + ldarg.0 + ldarg.1 + ldarg.2 + ldarg.3 + ldarg.s + ldc.i4 + ldc.i4.0 + ldc.i4.1 + ldc.i4.2 + ldc.i4.3 + ldc.i4.4 + ldc.i4.5 + ldc.i4.6 + ldc.i4.7 + ldc.i4.8 + ldc.i4.m1 + ldc.i4.s + ldc.i8 + ldc.r4 + ldc.r8 + ldelema + ldelem.i + ldelem.i1 + ldelem.i2 + ldelem.i4 + ldelem.i8 + ldelem.r4 + ldelem.r8 + ldelem.ref + ldelem.u1 + ldelem.u2 + ldelem.u4 + ldfld + ldflda + ldftn + ldind.i + ldind.i1 + ldind.i2 + ldind.i4 + ldind.i8 + ldind.r4 + ldind.r8 + ldind.ref + ldind.u1 + ldind.u2 + ldind.u4 + ldlen + ldloc + ldloca + ldloca.s + ldloc.0 + ldloc.1 + ldloc.2 + ldloc.3 + ldloc.s + ldnull + ldobj + ldsfld + ldsflda + ldstr + ldtoken + ldvirtftn + starg + starg.s + stelem.i + stelem.i1 + stelem.i2 + stelem.i4 + stelem.i8 + stelem.r4 + stelem.r8 + stelem.ref + stfld + stind.i + stind.i1 + stind.i2 + stind.i4 + stind.i8 + stind.r4 + stind.r8 + stind.ref + stloc + stloc.0 + stloc.1 + stloc.2 + stloc.3 + stloc.s + stobj + stsfld + + call + calli + callvirt + castclass + ceq + cgt + cgt.un + ckfinite + clt + clt.un + cpblk + cpobj + + initblk + initobj + newarr + newobj + + dup + endfilter + isinst + box + unbox + arglist + break + jmp + ret + leave + leave.s + localloc + mkrefany + neg + switch + nop + pop + refanytype + refanyval + rem + rem.un + throw + rethrow + endfinally + shl + shr + shr.un + sizeof + tailcall + unaligned + volatile + + + diff --git a/extra/xmode/modes/clips.xml b/extra/xmode/modes/clips.xml new file mode 100644 index 0000000000..ce2efcabab --- /dev/null +++ b/extra/xmode/modes/clips.xml @@ -0,0 +1,434 @@ + + + + + + + + + + + + + + + + ; + + + + ' + ' + + + " + " + + + + + [ + ] + + + + => + ? + >< + > + >= + < + <= + >- + + + - + * + / + = + ** + ~ + \ + | + & + : + $ + + + ( + ) + [ + ] + { + } + + + + deffacts + deftemplate + defglobal + defrule + deffunction + defgeneric + defmethod + defclass + definstance + defmessage + defmodule + deffacts-module + deffunction-module + defgeneric-module + defglobal-module + definstances-module + slot + multislot + default + default-dynamic + declare + salience + auto-focus + object + is-a + pattern-match + single-slot + reactive + non-reactive + storage + local + shared + access + read-write + read-only + initialize-only + propagation + inherit + non-inherit + source + exclusive + composite + visibility + private + public + create-accessor + ?NONE + read + write + ?DEFAULT + primary + around + before + after + import + export + ?ALL + type + allowed-symbols + allowed-strings + allowed-lexemes + allowed-integers + allowed-floats + allowed-numbers + allowed-instance-names + allowed-values + ?VARIABLE + + if + while + then + else + or + and + eq + evenp + floatp + integerp + lexemep + multifieldp + neq + not + numberp + oddp + pointerp + stringp + symbolp + switch + while + + assert + bind + class-abstractp + class-existp + class-subclasses + class-superclasses + defclass-module + describe-classes + get-class-defaults-mode + get-defclass-list + agenda + list-defclasses + ppdefclass + set-class-defaults-mode + slot-allowed-values + slot-cardinality + slot-default-value + slot-direct-accessp + slot-existp + slot-facest + slot-initablep + slot-publicp + slot-range + slot-sources + slot-types + slot-writablep + subsclassp + undefclass + get-deffacts-list + list-deffacts + ppdeffacts + undeffacts + get-deffunction-list + list-deffunction + ppdeffunction + undeffunction + get-defgeneric-list + list-defgenerics + ppdefgeneric + preview-generic + type + undefgeneric + get-defglobal-list + get-reset-globals + list-defglobals + ppdefglobal + set-reset-globals + undefglobal + get-definstances-list + list-definstances + ppdefinstances + undefinstances + call-next-handler + get-defmessage-handler + list-defmessage-handlers + message-handler-existp + handler-type + next-handlerp + override-next-handler + ppdefmessage-handler + undefmessage-handler + call-next-method + call-specific-method + get-defmethod-list + get-method-restrictions + list-defmethods + next-methodp + override-next-method + undefmethod + preview-generic + get-current-module + get-defmodule-list + list-defmodules + ppdefmodules + set-current-module + defrule-module + get-defrule-list + get-incremental-reset + list-defrules + matches + ppdefrule + refresh + remove-break + set-break + set-incremental-reset + show-breaks + undefrule + deftemplate-module + get-deftemaplate-list + list-deftemplates + ppdeftemplate + undeftemplate + apropos + bacth + batch* + bload + bsave + clear + exit + get-auto-float-dividend + get-dynamic-constraints-checking + get-static-constraints-checking + load + load* + options + reset + save + set-auto-float-dividend + set-dynamic-constriants-checking + set-static-constriants-checking + system + assert-string + dependencies + dependents + duplicate + facts + fact-existp + fact-index + fact-relation + fact-slot-names + fact-slot-value + get-fact-duplication + get-fact-list + load-facts + modify + retract + save-facts + set-fact-duplication + any-instancep + class + delayed-do-for-all-instances + delete-instance + direct-slot-delete$ + direct-slot-insert$ + direct-slot-replace$ + do-for-instance + do-for-all-instances + dynamic-get + dynamic-put + find-instance + find-all-instances + init-slot + instance-address + instance-addressp + instance-existp + instance-name + instance-namep + instance-name-to-symbol + instancep + instances + load-instances + make-intance + ppinstance + restore-instances + save-instances + send + slot-delete$ + slot-insert$ + slot-replace$ + symbol-to-instance-name + unmake-instance + create$ + delete$ + delete-member$ + explode$ + first$ + implode$ + insert$ + length$ + member$ + nth$ + replace$ + rest$ + subseq$ + subsetp + break + loop-for-count + progn + progn$ + return + get-profile-percent-threshold + profile-contructs + profile-info + profile-reset + set-profile-percent-threshold + expand$ + get-sequence-operator-recognition + aet-sequence-operator-recognition + build + check-syntax + eval + lowcase + str-cat + str-compare + str-index + str-length + string-to-field + sub-string + sym-cat + upcase + fetch + print-region + toss + + abs + div + float + integer + max + min + deg-grad + deg-rad + exp + grad-deg + log + log10 + mod + pi + rad-deg + round + sqrt + close + format + open + printout + read + readline + remove + rename + conserve-mem + mem-used + mem-requests + release-mem + funcall + gensym + gemsym* + get-function-restriction + length + random + seed + setgen + sort + time + timer + acos + acosh + acot + acoth + acsc + acsch + asec + asin + asinh + atan + atanh + cos + cosh + cot + coth + csc + sec + sech + sin + sinh + tan + tanh + + + + + + diff --git a/extra/xmode/modes/cobol.xml b/extra/xmode/modes/cobol.xml new file mode 100644 index 0000000000..31339bceff --- /dev/null +++ b/extra/xmode/modes/cobol.xml @@ -0,0 +1,998 @@ + + + + + + + + .{6}(\*|/) + + + " + " + + + ' + ' + + + = + >= + <= + + + - + / + * + ** + > + < + % + & + | + ^ + ~ + + + EXEC SQL + END-EXEC + + + + ACCEPT + ACCESS + ACTUAL + ADD + ADDRESS + ADVANCING + AFTER + ALL + ALPHABET + ALPHABETIC + ALPHABETIC-LOWER + ALPHABETIC-UPPER + ALPHANUMERIC + ALPHANUMERIC-EDITED + ALSO + ALTER + ALTERNATE + AND + ANY + API + APPLY + ARE + AREA + AREAS + ASCENDING + ASSIGN + AT + AUTHOR + AUTO + AUTO-SKIP + AUTOMATIC + + BACKGROUND-COLOR + BACKGROUND-COLOUR + BACKWARD + BASIS + BEEP + BEFORE + BEGINNING + BELL + BINARY + BLANK + BLINK + BLOCK + BOTTOM + BY + + C01 + C02 + C03 + C04 + C05 + C06 + C07 + C08 + C09 + C10 + C11 + C12 + CALL + CALL-CONVENTION + CANCEL + CBL + CD + CF + CH + CHAIN + CHAINING + CHANGED + CHARACTER + CHARACTERS + CLASS + CLOCK-UNITS + CLOSE + COBOL + CODE + CODE-SET + COL + COLLATING + COLUMN + COM-REG + COMMA + COMMIT + COMMON + COMMUNICATION + COMP + COMP-0 + COMP-1 + COMP-2 + COMP-3 + COMP-4 + COMP-5 + COMP-6 + COMP-X + COMPUTATIONAL + COMPUTATIONAL-0 + COMPUTATIONAL-1 + COMPUTATIONAL-2 + COMPUTATIONAL-3 + COMPUTATIONAL-4 + COMPUTATIONAL-5 + COMPUTATIONAL-6 + COMPUTATIONAL-X + COMPUTE + CONFIGURATION + CONSOLE + CONTAINS + CONTENT + CONTINUE + CONTROL + CONTROLS + CONVERTING + COPY + CORE-INDEX + CORR + CORRESPONDING + COUNT + CRT + CRT-UNDER + CURRENCY + CURRENT-DATE + CURSOR + CYCLE + CYL-INDEX + CYL-OVERFLOW + + DATA + DATE + DATE-COMPILED + DATE-WRITTEN + DAY + DAY-OF-WEEK + DBCS + DE + DEBUG + DEBUG-CONTENTS + DEBUG-ITEM + DEBUG-LINE + DEBUG-NAME + DEBUG-SUB-1 + DEBUG-SUB-2 + DEBUG-SUB-3 + DEBUGGING + DECIMAL-POINT + DECLARATIVES + DELETE + DELIMITED + DELIMITER + DEPENDING + DESCENDING + DESTINATION + DETAIL + DISABLE + DISK + DISP + DISPLAY + DISPLAY-1 + DISPLAY-ST + DIVIDE + DIVISION + DOWN + DUPLICATES + DYNAMIC + + ECHO + EGCS + EGI + EJECT + ELSE + EMI + EMPTY-CHECK + ENABLE + END + END-ACCEPT + END-ADD + END-CALL + END-CHAIN + END-COMPUTE + END-DELETE + END-DISPLAY + END-DIVIDE + END-EVALUATE + END-IF + END-INVOKE + END-MULTIPLY + END-OF-PAGE + END-PERFORM + END-READ + END-RECEIVE + END-RETURN + END-REWRITE + END-SEARCH + END-START + END-STRING + END-SUBTRACT + END-UNSTRING + END-WRITE + ENDING + ENTER + ENTRY + ENVIRONMENT + EOL + EOP + EOS + EQUAL + EQUALS + ERASE + ERROR + ESCAPE + ESI + EVALUATE + EVERY + EXAMINE + EXCEEDS + EXCEPTION + EXCESS-3 + EXCLUSIVE + EXEC + EXECUTE + EXHIBIT + EXIT + EXTEND + EXTENDED-SEARCH + EXTERNAL + + FACTORY + FALSE + FD + FH-FCD + FH-KEYDEF + FILE + FILE-CONTROL + FILE-ID + FILE-LIMIT + FILE-LIMITS + FILLER + FINAL + FIRST + FIXED + FOOTING + FOR + FOREGROUND-COLOR + FOREGROUND-COLOUR + FROM + FULL + FUNCTION + + GENERATE + GIVING + GLOBAL + GO + GOBACK + GREATER + GRID + GROUP + + HEADING + HIGH + HIGH-VALUE + HIGH-VALUES + HIGHLIGHT + + I-O + I-O-CONTROL + ID + IDENTIFICATION + IF + IGNORE + IN + INDEX + INDEXED + INDICATE + INHERITING + INITIAL + INITIALIZE + INITIATE + INPUT + INPUT-OUTPUT + INSERT + INSPECT + INSTALLATION + INTO + INVALID + INVOKE + IS + + JAPANESE + JUST + JUSTIFIED + + KANJI + KEPT + KEY + KEYBOARD + + LABEL + LAST + LEADING + LEAVE + LEFT + LEFT-JUSTIFY + LEFTLINE + LENGTH + LENGTH-CHECK + LESS + LIMIT + LIMITS + LIN + LINAGE + LINAGE-COUNTER + LINE + LINE-COUNTER + LINES + LINKAGE + LOCAL-STORAGE + LOCK + LOCKING + LOW + LOW-VALUE + LOW-VALUES + LOWER + LOWLIGHT + + MANUAL + MASTER-INDEX + MEMORY + MERGE + MESSAGE + METHOD + MODE + MODULES + MORE-LABELS + MOVE + MULTIPLE + MULTIPLY + + NAME + NAMED + NATIONAL + NATIONAL-EDITED + NATIVE + NCHAR + NEGATIVE + NEXT + NO + NO-ECHO + NOMINAL + NOT + NOTE + NSTD-REELS + NULL + NULLS + NUMBER + NUMERIC + NUMERIC-EDITED + + OBJECT + OBJECT-COMPUTER + OBJECT-STORAGE + OCCURS + OF + OFF + OMITTED + ON + OOSTACKPTR + OPEN + OPTIONAL + OR + ORDER + ORGANIZATION + OTHER + OTHERWISE + OUTPUT + OVERFLOW + OVERLINE + + PACKED-DECIMAL + PADDING + PAGE + PAGE-COUNTER + PARAGRAPH + PASSWORD + PERFORM + PF + PH + PIC + PICTURE + PLUS + POINTER + POS + POSITION + POSITIONING + POSITIVE + PREVIOUS + PRINT + PRINT-SWITCH + PRINTER + PRINTER-1 + PRINTING + PRIVATE + PROCEDURE + PROCEDURE-POINTER + PROCEDURES + PROCEED + PROCESSING + PROGRAM + PROGRAM-ID + PROMPT + PROTECTED + PUBLIC + PURGE + + QUEUE + QUOTE + QUOTES + + RANDOM + RANGE + RD + READ + READY + RECEIVE + RECORD + RECORD-OVERFLOW + RECORDING + RECORDS + REDEFINES + REEL + REFERENCE + REFERENCES + RELATIVE + RELEASE + RELOAD + REMAINDER + REMARKS + REMOVAL + RENAMES + REORG-CRITERIA + REPLACE + REPLACING + REPORT + REPORTING + REPORTS + REQUIRED + REREAD + RERUN + RESERVE + RESET + RETURN + RETURN-CODE + RETURNING + REVERSE + REVERSE-VIDEO + REVERSED + REWIND + REWRITE + RF + RH + RIGHT + RIGHT-JUSTIFY + ROLLBACK + ROUNDED + RUN + + S01 + S02 + S03 + S04 + S05 + SAME + SCREEN + SD + SEARCH + SECTION + SECURE + SECURITY + SEEK + SEGMENT + SEGMENT-LIMIT + SELECT + SELECTIVE + SEND + SENTENCE + SEPARATE + SEQUENCE + SEQUENTIAL + SERVICE + SET + SHIFT-IN + SHIFT-OUT + SIGN + SIZE + SKIP1 + SKIP2 + SKIP3 + SORT + SORT-CONTROL + SORT-CORE-SIZE + SORT-FILE-SIZE + SORT-MERGE + SORT-MESSAGE + SORT-MODE-SIZE + SORT-OPTION + SORT-RETURN + SOURCE + SOURCE-COMPUTER + SPACE + SPACE-FILL + SPACES + SPECIAL-NAMES + STANDARD + STANDARD-1 + STANDARD-2 + START + STATUS + STOP + STORE + STRING + SUB-QUEUE-1 + SUB-QUEUE-2 + SUB-QUEUE-3 + SUBTRACT + SUM + SUPER + SUPPRESS + SYMBOLIC + SYNC + SYNCHRONIZED + SYSIN + SYSIPT + SYSLST + SYSOUT + SYSPCH + SYSPUNCH + + TAB + TABLE + TALLY + TALLYING + TAPE + TERMINAL + TERMINATE + TEST + TEXT + THAN + THEN + THROUGH + THRU + TIME + TIME-OF-DAY + TIME-OUT + TIMEOUT + TIMES + TITLE + TO + TOP + TOTALED + TOTALING + TRACE + TRACK-AREA + TRACK-LIMIT + TRACKS + TRAILING + TRAILING-SIGN + TRANSFORM + TRUE + TYPE + TYPEDEF + + UNDERLINE + UNEQUAL + UNIT + UNLOCK + UNSTRING + UNTIL + UP + UPDATE + UPON + UPPER + UPSI-0 + UPSI-1 + UPSI-2 + UPSI-3 + UPSI-4 + UPSI-5 + UPSI-6 + UPSI-7 + USAGE + USE + USER + USING + + VALUE + VALUES + VARIABLE + VARYING + + WAIT + WHEN + WHEN-COMPILED + WITH + WORDS + WORKING-STORAGE + WRITE + WRITE-ONLY + WRITE-VERIFY + + ZERO + ZERO-FILL + ZEROES + ZEROS + + ACOS + ANNUITY + ASIN + ATAN + CHAR + COS + CURRENT-DATE + DATE-OF-INTEGER + DAY-OF-INTEGER + FACTORIAL + INTEGER + INTEGER-OF-DATE + INTEGER-OF-DAY + INTEGER-PART + + LOG + LOG10 + LOWER-CASE + MAX + MEAN + MEDIAN + MIDRANGE + MIN + MOD + NUMVAL + NUMVAL-C + ORD + ORD-MAX + ORD-MIN + PRESENT-VALUE + RANDOM + RANGE + REM + REVERSE + SIN + SQRT + STANDARD-DEVIATION + SUM + TAN + UPPER-CASE + VARIANCE + WHEN-COMPILED + + + + + + [COPY-PREFIX] + [COUNT] + [DISPLAY] + [EXECUTE] + [PG] + [PREFIX] + [PROGRAM] + [SPECIAL-PREFIX] + [TESTCASE] + + + diff --git a/extra/xmode/modes/coldfusion.xml b/extra/xmode/modes/coldfusion.xml new file mode 100644 index 0000000000..8385df768e --- /dev/null +++ b/extra/xmode/modes/coldfusion.xml @@ -0,0 +1,645 @@ + + + + + + + + + + + + + + <!--- + ---> + + + + + /* + */ + + + + // + + + + <!-- + --> + + + + + <CFSCRIPT + </CFSCRIPT> + + + + + <CF + > + + + + + </CF + > + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + < + > + + + + + & + ; + + + + + + " + " + + + ' + ' + + + = + + + + <CF + > + + + + + </CF + > + + + + + <CFSCRIPT + </CFSCRIPT> + + + + + + + + /* + */ + + + + // + + + " + " + + + ' + ' + + + ( + ) + + = + + + - + / + >= + <= + >< + * + !! + && + + + { + } + for + while + if + }else + }else{ + if( + else + break + + ArrayAppend + ArrayAvg + ArrayClear + ArrayDeleteAt + ArrayInsertAt + ArrayIsEmpty + ArrayLen + ArrayMax + ArrayMin + ArrayNew + ArrayPrepend + ArrayResize + ArraySet + ArraySort + ArraySum + ArraySwap + ArrayToList + IsArray + ListToArray + + CreateDate + CreateDateTime + CreateODBCTime + CreateODBCDate + CreateODBCDateTime + CreateTime + CreateTimeSpan + DateAdd + DateCompare + DateDiff + DatePart + Day + DayOfWeek + DayOfWeekAsString + DayOfYear + DaysInMonth + DaysInYear + FirstDayOfMonth + Hour + Minute + Month + MonthAsString + Now + ParseDateTime + Quarter + Second + Week + Year + + IsArray + IsAuthenticated + IsAuthorized + IsBoolean + IsDate + IsDebugMode + IsDefined + IsLeapYear + IsNumeric + IsNumericDate + IsQuery + IsSimpleValue + IsStruct + + DateFormat + DecimalFormat + DollarFormat + FormatBaseN + HTMLCodeFormat + HTMLEditFormat + NumberFormat + ParagraphFormat + TimeFormat + YesNoFormat + + DE + Evaluate + IIf + SetVariable + + ArrayToList + ListAppend + ListChangeDelims + ListContains + ListContainsNoCase + ListDeleteAt + ListFind + ListFindNoCase + ListFirst + ListGetAt + ListInsertAt + ListLast + ListLen + ListPrepend + ListRest + ListSetAt + ListToArray + + StructClear + StructCopy + StructCount + StructDelete + StructFind + StructInsert + StructIsEmpty + StructKeyExists + StructNew + StructUpdate + + GetLocale + LSCurrencyFormat + LSDateFormat + LSIsCurrency + LSIsDate + LSIsNumeric + LSNumberFormat + LSParseCurrency + LSParseDateTime + LSParseNumber + LSTimeFormat + SetLocale + + Abs + Atn + BitAnd + BitMaskClear + BitMaskRead + BitMaskSet + BitNot + BitOr + BitSHLN + BitSHRN + BitXor + Ceiling + Cos + DecrementValue + Exp + Fix + IncrementValue + InputBaseN + Int + Log + Log10 + Max + Min + Pi + Rand + Randomize + RandRange + Round + Sgn + Sin + Sqr + Tan + + Asc + Chr + CJustify + Compare + CompareNoCase + Find + FindNoCase + FindOneOf + GetToken + Insert + LCase + Left + Len + LJustify + LTrim + Mid + REFind + REFindNoCase + RemoveChars + RepeatString + Replace + ReplaceList + ReplaceNoCase + REReplace + REReplaceNoCase + Reverse + Right + RJustify + RTrim + SpanExcluding + SpanIncluding + Trim + UCase + Val + + DirectoryExists + ExpandPath + FileExists + GetDirectoryFromPath + GetFileFromPath + GetTempDirectory + GetTempFile + GetTemplatePath + + QueryAddRow + QueryNew + QuerySetCell + + Decrypt + DeleteClientVariable + Encrypt + GetBaseTagData + GetBaseTagList + GetClientVariablesList + GetTickCount + PreserveSingleQuotes + QuotedValueList + StripCR + URLEncodedFormat + ValueList + WriteOutput + + ParameterExists + + IS + EQ + NEQ + GT + GTE + LT + LTE + + LESS + GREATER + THAN + + AND + OR + NOT + XOR + + + + + + " + " + + + ' + ' + + + = + ## + + + # + # + + + + ArrayAppend + ArrayAvg + ArrayClear + ArrayDeleteAt + ArrayInsertAt + ArrayIsEmpty + ArrayLen + ArrayMax + ArrayMin + ArrayNew + ArrayPrepend + ArrayResize + ArraySet + ArraySort + ArraySum + ArraySwap + ArrayToList + IsArray + ListToArray + + CreateDate + CreateDateTime + CreateODBCTime + CreateODBCDate + CreateODBCDateTime + CreateTime + CreateTimeSpan + DateAdd + DateCompare + DateDiff + DatePart + Day + DayOfWeek + DayOfWeekAsString + DayOfYear + DaysInMonth + DaysInYear + FirstDayOfMonth + Hour + Minute + Month + MonthAsString + Now + ParseDateTime + Quarter + Second + Week + Year + + IsArray + IsAuthenticated + IsAuthorized + IsBoolean + IsDate + IsDebugMode + IsDefined + IsLeapYear + IsNumeric + IsNumericDate + IsQuery + IsSimpleValue + IsStruct + + DateFormat + DecimalFormat + DollarFormat + FormatBaseN + HTMLCodeFormat + HTMLEditFormat + NumberFormat + ParagraphFormat + TimeFormat + YesNoFormat + + DE + Evaluate + IIf + SetVariable + + ArrayToList + ListAppend + ListChangeDelims + ListContains + ListContainsNoCase + ListDeleteAt + ListFind + ListFindNoCase + ListFirst + ListGetAt + ListInsertAt + ListLast + ListLen + ListPrepend + ListRest + ListSetAt + ListToArray + + StructClear + StructCopy + StructCount + StructDelete + StructFind + StructInsert + StructIsEmpty + StructKeyExists + StructNew + StructUpdate + + GetLocale + LSCurrencyFormat + LSDateFormat + LSIsCurrency + LSIsDate + LSIsNumeric + LSNumberFormat + LSParseCurrency + LSParseDateTime + LSParseNumber + LSTimeFormat + SetLocale + + Abs + Atn + BitAnd + BitMaskClear + BitMaskRead + BitMaskSet + BitNot + BitOr + BitSHLN + BitSHRN + BitXor + Ceiling + Cos + DecrementValue + Exp + Fix + IncrementValue + InputBaseN + Int + Log + Log10 + Max + Min + Pi + Rand + Randomize + RandRange + Round + Sgn + Sin + Sqr + Tan + + Asc + Chr + CJustify + Compare + CompareNoCase + Find + FindNoCase + FindOneOf + GetToken + Insert + LCase + Left + Len + LJustify + LTrim + Mid + REFind + REFindNoCase + RemoveChars + RepeatString + Replace + ReplaceList + ReplaceNoCase + REReplace + REReplaceNoCase + Reverse + Right + RJustify + RTrim + SpanExcluding + SpanIncluding + Trim + UCase + Val + + DirectoryExists + ExpandPath + FileExists + GetDirectoryFromPath + GetFileFromPath + GetTempDirectory + GetTempFile + GetTemplatePath + + QueryAddRow + QueryNew + QuerySetCell + + Decrypt + DeleteClientVariable + Encrypt + GetBaseTagData + GetBaseTagList + GetClientVariablesList + GetTickCount + PreserveSingleQuotes + QuotedValueList + StripCR + URLEncodedFormat + ValueList + WriteOutput + + ParameterExists + + IS + EQ + NEQ + GT + GTE + LT + LTE + + LESS + GREATER + THAN + + AND + OR + NOT + XOR + + + \ No newline at end of file diff --git a/extra/xmode/modes/cplusplus.xml b/extra/xmode/modes/cplusplus.xml new file mode 100644 index 0000000000..b7810562f1 --- /dev/null +++ b/extra/xmode/modes/cplusplus.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + # + + + + + + + + + + :: + + + + + + + + + + + catch + class + const_cast + delete + dynamic_cast + explicit + export + friend + mutable + namespace + new + operator + private + protected + public + reinterpret_cast + static_assert + static_cast + template + this + throw + try + typeid + typename + using + virtual + + + + + + + include\b + define\b + endif\b + elif\b + if\b + + + + + + ifdef + ifndef + else + error + line + pragma + undef + warning + + + + + + + # + + + + + + diff --git a/extra/xmode/modes/csharp.xml b/extra/xmode/modes/csharp.xml new file mode 100644 index 0000000000..f28d2389b7 --- /dev/null +++ b/extra/xmode/modes/csharp.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + /* + */ + + + + /// + + // + + + + @" + " + + + + " + " + + + + ' + ' + + + #if + #else + #elif + #endif + #define + #undef + #warning + #error + #line + #region + #endregion + + ~ + ! + : + ; + { + } + , + . + ! + [ + ] + + + - + > + < + = + * + / + \ + ^ + | + & + % + ? + + ( + ) + + + abstract + as + base + break + case + catch + checked + const + continue + decimal + default + delegate + do + else + explicit + extern + finally + fixed + for + foreach + goto + if + implicit + in + internal + is + lock + new + operator + out + override + params + private + protected + public + readonly + ref + return + sealed + sizeof + stackalloc + static + switch + throw + try + typeof + unchecked + unsafe + virtual + while + + using + namespace + + bool + byte + char + class + double + enum + event + float + int + interface + long + object + sbyte + short + string + struct + uint + ulong + ushort + void + + false + null + this + true + + + + + + + <-- + --> + + + + < + > + + + + diff --git a/extra/xmode/modes/css.xml b/extra/xmode/modes/css.xml new file mode 100644 index 0000000000..5f8708fc13 --- /dev/null +++ b/extra/xmode/modes/css.xml @@ -0,0 +1,679 @@ + + + + + + + + + + + + + + + + + + . + + # + + > + + + + : + , + + + + { + } + + + + + + + + + + + + , + + { + + + lang\s*\( + ) + + + + lang\s*\( + ) + + + + + + + after + before + first-child + link + visited + active + hover + focus + + + + + + + + + + + } + + : + + + + + + + + background + background-attachment + background-color + background-image + background-position + background-repeat + color + + + font + font-family + font-size + font-size-adjust + font-style + font-variant + font-weight + font-stretch + src + definition-src + unicode-range + panose-1 + stemv + stemh + units-per-em + slope + cap-height + x-height + ascent + descent + baseline + centerline + mathline + topline + + + letter-spacing + text-align + text-shadow + text-decoration + text-indent + text-transform + word-spacing + letter-spacing + white-space + + + border + bottom + border-collapse + border-spacing + border-bottom + border-bottom-style + border-bottom-width + border-bottom-color + border-left + border-left-style + border-left-width + border-left-color + border-right + border-right-style + border-right-width + border-right-color + border-top + border-top-style + border-top-width + border-top-color + border-color + border-style + border-width + clear + float + height + margin + margin-bottom + margin-left + margin-right + margin-top + padding + padding-bottom + padding-left + padding-right + padding-top + clear + + + display + position + top + right + bottom + left + float + z-index + direction + unicode-bidi + width + min-width + max-width + height + min-height + max-height + line-height + vertical-align + + + overflow + clip + visibility + + + size + marks + page-break-before + page-break-after + page-break-inside + page + orphans + widows + + + caption-side + table-layout + border-collapse + border-spacing + empty-cells + speak-headers + + + cursor + outline + outline-width + outline-style + outline-color + + + azimuth + volume + speak + pause + pause-before + pause-after + cue + cue-before + cue-after + play-during + elevation + speech-rate + voice-family + pitch + pitch-range + stress + richness + speak-punctuation + speak-numeral + speak-header-cell + + + + + + + + + " + " + + + + + (rgb|url)\s*\( + ) + + + + # + + !\s*important + + + + expression\s*\( + ) + + + + ; + } + + + + + left + right + below + level + above + higher + lower + show + hide + normal + wider + narrower + ultra-condensed + extra-condensed + condensed + semi-condensed + semi-expanded + expanded + extra-expanded + ultra-expanded + normal + italic + oblique + normal + xx-small + x-small + small + large + x-large + xx-large + thin + thick + smaller + larger + small-caps + inherit + bold + bolder + lighter + inside + outside + disc + circle + square + decimal + decimal-leading-zero + lower-roman + upper-roman + lower-greek + lower-alpha + lower-latin + upper-alpha + upper-latin + hebrew + armenian + georgian + cjk-ideographic + hiragana + katakana + hiragana-iroha + katakana-iroha + crop + cross + invert + hidden + always + avoid + x-low + low + high + x-high + absolute + fixed + relative + static + portrait + landscape + spell-out + digits + continuous + x-slow + slow + fast + x-fast + faster + slower + underline + overline + line-through + blink + capitalize + uppercase + lowercase + embed + bidi-override + baseline + sub + super + top + text-top + middle + bottom + text-bottom + visible + hidden + collapse + soft + loud + x-loud + pre + nowrap + dotted + dashed + solid + double + groove + ridge + inset + outset + once + both + silent + medium + mix + male + female + child + code + + + left-side + far-left + center-left + center + right + center-right + far-right + right-side + justify + behind + leftwards + rightwards + inherit + scroll + fixed + transparent + none + repeat + repeat-x + repeat-y + no-repeat + collapse + separate + auto + open-quote + close-quote + no-open-quote + no-close-quote + cue-before + cue-after + crosshair + default + pointer + move + e-resize + ne-resize + nw-resize + n-resize + se-resize + sw-resize + s-resize + w-resize + text + wait + help + ltr + rtl + inline + block + list-item + run-in + compact + marker + table + inline-table + inline-block + table-row-group + table-header-group + table-footer-group + table-row + table-column-group + table-column + table-cell + table-caption + + + aliceblue + antiquewhite + aqua + aquamarine + azure + beige + bisque + black + blanchedalmond + blue + blueviolet + brown + burlywood + cadetblue + chartreuse + chocolate + coral + cornflowerblue + cornsilk + crimson + cyan + darkblue + darkcyan + darkgoldenrod + darkgray + darkgreen + darkgrey + darkkhaki + darkmagenta + darkolivegreen + darkorange + darkorchid + darkred + darksalmon + darkseagreen + darkslateblue + darkslategray + darkslategrey + darkturquoise + darkviolet + darkpink + deepskyblue + dimgray + dimgrey + dodgerblue + firebrick + floralwhite + forestgreen + fushia + gainsboro + ghostwhite + gold + goldenrod + gray + green + greenyellow + grey + honeydew + hotpink + indianred + indigo + ivory + khaki + lavender + lavenderblush + lawngreen + lemonchiffon + lightblue + lightcoral + lightcyan + lightgoldenrodyellow + lightgray + lightgreen + lightgrey + lightpink + lightsalmon + lightseagreen + lightskyblue + lightslategray + lightslategrey + lightsteelblue + lightyellow + lime + limegreen + linen + magenta + maroon + mediumaquamarine + mediumblue + mediumorchid + mediumpurple + mediumseagreen + mediumslateblue + mediumspringgreen + mediumturquoise + mediumvioletred + midnightblue + mintcream + mistyrose + mocassin + navawhite + navy + oldlace + olive + olidrab + orange + orangered + orchid + palegoldenrod + palegreen + paleturquoise + paletvioletred + papayawhip + peachpuff + peru + pink + plum + powderblue + purple + red + rosybrown + royalblue + saddlebrown + salmon + sandybrown + seagreen + seashell + sienna + silver + skyblue + slateblue + slategray + slategrey + snow + springgreen + steelblue + tan + teal + thistle + tomato + turquoise + violet + wheat + white + whitesmoke + yellow + yellowgreen + + + rgb + url + + + + + + : + ; + + ( + ) + + { + } + , + . + ! + + + /* + */ + + + + + content + quotes + counter-reset + counter-increment + marker-offset + list-style + list-style-image + list-style-position + list-style-type + + @import + @media + @page + @font-face + + + + + + diff --git a/extra/xmode/modes/csv.xml b/extra/xmode/modes/csv.xml new file mode 100644 index 0000000000..2e6c7734f0 --- /dev/null +++ b/extra/xmode/modes/csv.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + " + ," + ;" + ,(?=[^,]*$) + ;(?=[^;]*$) + , + ; + + + + "" + "(?=,[^"][^,]*$) + "(?=;[^"][^;]*$) + "," + ";" + ",$ + ";$ + ", + "; + "$ + " + + + + ," + ;" + , + ; + + + + "" + "," + ";" + ", + "; + " + + + + + + " + ," + ,(?=[^,]*$) + , + + + + "" + "(?=,[^"][^,]*$) + "," + ",$ + ", + "$ + " + + + + ," + , + + + + "" + "," + ", + " + + + + + + + + + " + ;" + ;(?=[^;]*$) + ; + + + + "" + "(?=;[^"][^;]*$) + ";" + ";$ + "; + "$ + " + + + + ;" + ; + + + + "" + ";" + "; + " + + + + + + diff --git a/extra/xmode/modes/cvs-commit.xml b/extra/xmode/modes/cvs-commit.xml new file mode 100644 index 0000000000..d89eee4542 --- /dev/null +++ b/extra/xmode/modes/cvs-commit.xml @@ -0,0 +1,25 @@ + + + + + + + + + CVS: + + + CVS: + Committing in + Added Files: + Modified Files: + Removed Files: + + + diff --git a/extra/xmode/modes/d.xml b/extra/xmode/modes/d.xml new file mode 100644 index 0000000000..8b8e710618 --- /dev/null +++ b/extra/xmode/modes/d.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + /**/ + + + + /** + */ + + + + + /*! + */ + + + + + /* + */ + + + + + /+ + +/ + + + // + + + + r" + " + + + + ` + ` + + + + " + " + + + + x" + " + + + + ' + ' + + + = + ! + >= + <= + + + - + / + + * + > + < + % + & + | + ^ + ~ + } + { + + : + + + ( + ) + + + @ + + + abstract + alias + align + asm + assert + auto + bit + body + break + byte + case + cast + catch + cent + char + class + cfloat + cdouble + creal + const + continue + dchar + debug + default + delegate + delete + deprecated + do + double + else + enum + export + extern + false + final + finally + float + for + foreach + function + goto + idouble + if + ifloat + import + in + inout + int + interface + invariant + ireal + is + long + module + new + null + out + override + package + pragma + private + protected + public + real + return + short + static + struct + super + switch + synchronized + template + this + throw + true + try + typedef + typeof + ubyte + ucent + uint + ulong + union + unittest + ushort + version + void + volatile + wchar + while + with + + + + + /+ + +/ + + + diff --git a/extra/xmode/modes/django.xml b/extra/xmode/modes/django.xml new file mode 100644 index 0000000000..e9162d5040 --- /dev/null +++ b/extra/xmode/modes/django.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + {% comment %} + {% endcomment %} + + + {% + %} + + + + {{ + }} + + + + + + + + + + + as + block + blocktrans + by + endblock + endblocktrans + comment + endcomment + cycle + date + debug + else + extends + filter + endfilter + firstof + for + endfor + if + endif + ifchanged + endifchanged + ifnotequal + endifnotequal + in + load + not + now + or + parsed + regroup + ssi + trans + with + widthratio + + + + + + " + " + + : + , + | + + openblock + closeblock + openvariable + closevariable + + add + addslashes + capfirst + center + cut + date + default + dictsort + dictsortreversed + divisibleby + escape + filesizeformat + first + fix_ampersands + floatformat + get_digit + join + length + length_is + linebreaks + linebreaksbr + linenumbers + ljust + lower + make_list + phone2numeric + pluralize + pprint + random + removetags + rjust + slice + slugify + stringformat + striptags + time + timesince + title + truncatewords + unordered_list + upper + urlencode + urlize + urlizetrunc + wordcount + wordwrap + yesno + + + + + diff --git a/extra/xmode/modes/doxygen.xml b/extra/xmode/modes/doxygen.xml new file mode 100644 index 0000000000..a1e448af5e --- /dev/null +++ b/extra/xmode/modes/doxygen.xml @@ -0,0 +1,313 @@ + + + + + + + + + + + # + + = + += + + + + " + " + + + ' + ' + + + ` + ` + + + YES + NO + + + + + + * + + + + <!-- + --> + + + + << + <= + < + + + + < + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extra/xmode/modes/dsssl.xml b/extra/xmode/modes/dsssl.xml new file mode 100644 index 0000000000..789c5c03fb --- /dev/null +++ b/extra/xmode/modes/dsssl.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + ; + + + + <!-- + --> + + + + '( + + ' + + + " + " + + + + + $ + $ + + + + % + % + + + # + + + + <!ENTITY + > + + + + + <![CDATA[ + ]]> + + + + + <! + > + + + + <= + + + </style-specification + > + + + + </style-sheet + > + + + + <style-specification + > + + + + <external-specification + > + + + + <style-sheet + > + + + + + & + ; + + + + and + cond + define + else + lambda + or + quote + if + let + let* + loop + not + list + append + children + normalize + + car + cdr + cons + node-list-first + node-list-rest + + eq? + null? + pair? + zero? + equal? + node-list-empty? + + external-procedure + root + make + process-children + current-node + node + empty-sosofo + default + attribute-string + select-elements + with-mode + literal + process-node-list + element + mode + gi + sosofo-append + sequence + + + + + + diff --git a/extra/xmode/modes/eiffel.xml b/extra/xmode/modes/eiffel.xml new file mode 100644 index 0000000000..41ed1bd66c --- /dev/null +++ b/extra/xmode/modes/eiffel.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + -- + + + + " + " + + + ' + ' + + + + + + + alias + all + and + as + check + class + creation + debug + deferred + do + else + elseif + end + ensure + expanded + export + external + feature + from + frozen + if + implies + indexing + infix + inherit + inspect + invariant + is + like + local + loop + not + obsolete + old + once + or + prefix + redefine + rename + require + rescue + retry + select + separate + then + undefine + until + variant + when + xor + + current + false + precursor + result + strip + true + unique + void + + + diff --git a/extra/xmode/modes/embperl.xml b/extra/xmode/modes/embperl.xml new file mode 100644 index 0000000000..4dcc35e188 --- /dev/null +++ b/extra/xmode/modes/embperl.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + [# + #] + + + + [+ + +] + + + + [- + -] + + + + [$ + $] + + + + [! + !] + + + + + diff --git a/extra/xmode/modes/erlang.xml b/extra/xmode/modes/erlang.xml new file mode 100644 index 0000000000..eaf39e1ae5 --- /dev/null +++ b/extra/xmode/modes/erlang.xml @@ -0,0 +1,266 @@ + + + + + + + + + + + % + + + " + " + + + + ' + ' + + + ( + ) + + : + + \$.\w* + + badarg + nocookie + false + true + + -> + <- + . + ; + = + / + | + # + + + * + + : + { + } + [ + ] + , + ? + ! + + + \bdiv\b + + \brem\b + + \bor\b + + \bxor\b + + \bbor\b + + \bbxor\b + + \bbsl\b + + \bbsr\b + + \band\b + + \bband\b + + \bnot\b + + \bbnot\b + + + + after + begin + case + catch + cond + end + fun + if + let + of + query + receive + when + + + abs + alive + apply + atom_to_list + binary_to_list + binary_to_term + concat_binary + date + disconnect_node + element + erase + exit + float + float_to_list + get + get_keys + group_leader + halt + hd + integer_to_list + is_alive + length + link + list_to_atom + list_to_binary + list_to_float + list_to_integer + list_to_pid + list_to_tuple + load_module + make_ref + monitor_node + node + nodes + now + open_port + pid_to_list + process_flag + process_info + process + put + register + registered + round + self + setelement + size + spawn + spawn_link + split_binary + statistics + term_to_binary + throw + time + tl + trunc + tuple_to_list + unlink + unregister + whereis + + + atom + binary + constant + function + integer + list + number + pid + ports + port_close + port_info + reference + record + + + check_process_code + delete_module + get_cookie + hash + math + module_loaded + preloaded + processes + purge_module + set_cookie + set_node + + + acos + asin + atan + atan2 + cos + cosh + exp + log + log10 + pi + pow + power + sin + sinh + sqrt + tan + tanh + + + -behaviour + -compile + -define + -else + -endif + -export + -file + -ifdef + -ifndef + -import + -include + -include_lib + -module + -record + -undef + + + + diff --git a/extra/xmode/modes/factor.xml b/extra/xmode/modes/factor.xml new file mode 100644 index 0000000000..9aa545eaec --- /dev/null +++ b/extra/xmode/modes/factor.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + #! + ! + + + \\\s+(\S+) + :\s+(\S+) + IN:\s+(\S+) + USE:\s+(\S+) + CHAR:\s+(\S+) + BIN:\s+(\S+) + OCT:\s+(\S+) + HEX:\s+(\S+) + + + ( + ) + + + SBUF" + " + + + " + " + + + USING: + ; + + + [ + ] + { + } + + + >r + r> + + ; + + t + f + + #! + ! + + + + + -- + + + + + + + + + + + diff --git a/extra/xmode/modes/fhtml.xml b/extra/xmode/modes/fhtml.xml new file mode 100644 index 0000000000..68646e2321 --- /dev/null +++ b/extra/xmode/modes/fhtml.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + <% + %> + + + + + diff --git a/extra/xmode/modes/forth.xml b/extra/xmode/modes/forth.xml new file mode 100644 index 0000000000..450676b8e6 --- /dev/null +++ b/extra/xmode/modes/forth.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + | + + $ + ' + + + :\s+(\S+) + + + ( + ) + + + + s" + " + + + + ." + " + + + + f" + " + + + + m" + " + + + + " + " + + + + ; + ;; + 0; + + swap + drop + dup + nip + over + rot + -rot + 2dup + 2drop + 2over + 2swap + >r + r> + + and + or + xor + >> + << + not + + + * + negate + - + / + mod + /mod + */ + 1+ + 1- + base + hex + decimal + binary + octal + + @ + ! + c@ + c! + +! + cell+ + cells + char+ + chars + + [ + ] + create + does> + variable + variable, + literal + last + 1, + 2, + 3, + , + here + allot + parse + find + compile + + if + =if + <if + >if + <>if + then + repeat + until + + forth + macro + + + + + -- + + diff --git a/extra/xmode/modes/fortran.xml b/extra/xmode/modes/fortran.xml new file mode 100644 index 0000000000..1bc26266cf --- /dev/null +++ b/extra/xmode/modes/fortran.xml @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + +C +! +* +! +D + + + " + " + + + ' + ' + + + + <= + >= + > + < + & + /= + == + .lt. + .gt. + .eq. + .ne. + .le. + .ge. + .AND. + .OR. + + + +INCLUDE + +PROGRAM +MODULE +SUBROUTINE +FUNCTION +CONTAINS +USE +CALL +RETURN + +IMPLICIT +EXPLICIT +NONE +DATA +PARAMETER +ALLOCATE +ALLOCATABLE +ALLOCATED +DEALLOCATE +INTEGER +REAL +DOUBLE +PRECISION +COMPLEX +LOGICAL +CHARACTER +DIMENSION +KIND + +CASE +SELECT +DEFAULT +CONTINUE +CYCLE +DO +WHILE +ELSE +IF +ELSEIF +THEN +ELSEWHERE +END +ENDIF +ENDDO +FORALL +WHERE +EXIT +GOTO +PAUSE +STOP + +BACKSPACE +CLOSE +ENDFILE +INQUIRE +OPEN +PRINT +READ +REWIND +WRITE +FORMAT + +AIMAG +AINT +AMAX0 +AMIN0 +ANINT +CEILING +CMPLX +CONJG +DBLE +DCMPLX +DFLOAT +DIM +DPROD +FLOAT +FLOOR +IFIX +IMAG +INT +LOGICAL +MODULO +NINT +REAL +SIGN +SNGL +TRANSFER +ZEXT + +ABS +ACOS +AIMAG +AINT +ALOG +ALOG10 +AMAX0 +AMAX1 +AMIN0 +AMIN1 +AMOD +ANINT +ASIN +ATAN +ATAN2 +CABS +CCOS +CHAR +CLOG +CMPLX +CONJG +COS +COSH +CSIN +CSQRT +DABS +DACOS +DASIN +DATAN +DATAN2 +DBLE +DCOS +DCOSH +DDIM +DEXP +DIM +DINT +DLOG +DLOG10 +DMAX1 +DMIN1 +DMOD +DNINT +DPROD +DREAL +DSIGN +DSIN +DSINH +DSQRT +DTAN +DTANH +EXP +FLOAT +IABS +ICHAR +IDIM +IDINT +IDNINT +IFIX +INDEX +INT +ISIGN +LEN +LGE +LGT +LLE +LLT +LOG +LOG10 +MAX +MAX0 +MAX1 +MIN +MIN0 +MIN1 +MOD +NINT +REAL +SIGN +SIN +SINH +SNGL +SQRT +TAN +TANH + +.false. +.true. + + + + diff --git a/extra/xmode/modes/foxpro.xml b/extra/xmode/modes/foxpro.xml new file mode 100644 index 0000000000..b49b233f08 --- /dev/null +++ b/extra/xmode/modes/foxpro.xml @@ -0,0 +1,1858 @@ + + + + + + + + + + + + + + + + + + " + " + + + ' + ' + + + + #if + #else + #end + #define + #include + #Elif + #Else + #Endif + #If + #Itsexpression + #Readclauses + #Region + #Section + #Undef + #Wname + + + && + * + + + < + <= + >= + > + = + <> + . + + + + + + - + * + / + \ + + ^ + + + + + + + + + + + + : + + + Function + Procedure + EndFunc + EndProc + + + if + then + else + elseif + select + case + + + + for + to + step + next + + each + in + + do + while + until + loop + + wend + + + exit + end + endif + + + class + property + get + let + set + + + byval + byref + + + const + dim + redim + preserve + as + + + set + with + new + + + public + default + private + + + rem + + + call + execute + eval + + + on + error + goto + resume + option + explicit + erase + randomize + + + + is + + mod + + and + or + not + xor + imp + ? + + + false + true + empty + nothing + null + + + Activate + ActivateCell + AddColumn + AddItem + AddListItem + AddObject + AfterCloseTables + AfterDock + AfterRowColChange + BeforeDock + BeforeOpenTables + BeforeRowColChange + Box + Circle + Clear + Click + CloneObject + CloseEditor + CloseTables + Cls + DblClick + Deactivate + Delete + DeleteColumn + Deleted + Destroy + Dock + DoScroll + DoVerb + DownClick + Drag + DragDrop + DragOver + Draw + DropDown + Error + ErrorMessage + FormatChange + GotFocus + Hide + IndexToItemId + Init + InteractiveChange + ItemIdToIndex + KeyPress + Line + Load + LostFocus + Message + MouseDown + MouseMove + MouseUp + Move + Moved + OpenEditor + OpenTables + Paint + Point + Print + ProgrammaticChange + PSet + QueryUnload + RangeHigh + RangeLow + ReadActivate + ReadDeactivate + ReadExpression + ReadMethod + ReadShow + ReadValid + ReadWhen + Refresh + Release + RemoveItem + RemoveListItem + RemoveObject + Requery + Reset + Resize + RightClick + SaveAs + SaveAsClass + Scrolled + SetAll + SetFocus + Show + TextHeight + TextWidth + Timer + UIEnable + UnDock + Unload + UpClick + Valid + When + WriteExpression + WriteMethod + ZOrder + DataToClip + DoCmd + MiddleClick + MouseWheel + RequestData + SetVar + ShowWhatsThis + WhatsThisMode + AddProperty + NewObject + CommandTargetExec + CommandTargetQueryStas + ContainerRelease + EnterFocus + ExitFocus + HideDoc + Run + ShowDoc + ClearData + GetData + GetFormat + SetData + SetFormat + OLECompleteDrag + OLEGiveFeedback + OLESetData + OLEStartDrag + OLEDrag + OLEDragDrop + OLEDragOver + SetMain + AfterBuild + BeforeBuild + QueryAddFile + QueryModifyFile + QueryRemoveFile + QueryRunFile + Add + AddToSCC + CheckIn + CheckOut + GetLatestVersion + RemoveFromSCC + UndoCheckOut + Modify + + + Accelerate + ActiveColumn + ActiveControl + ActiveForm + ActiveObjectId + ActivePage + ActiveRow + Alias + Alignment + AllowResize + AllowTabs + AlwaysOnTop + ATGetColors + ATListColors + AutoActivate + AutoCenter + AutoCloseTables + AutoOpenTables + AutoRelease + AutoSize + AvailNum + BackColor + BackStyle + BaseClass + BorderColor + BorderStyle + BorderWidth + Bound + BoundColumn + BrowseAlignment + BrowseCellMarg + BrowseDestWidth + BufferMode + BufferModeOverride + ButtonCount + ButtonIndex + Buttons + CanAccelerate + Cancel + CanGetFocus + CanLoseFocus + Caption + ChildAlias + ChildOrder + Class + ClassLibrary + ClipControls + ClipRect + Closable + ColorScheme + ColorSource + ColumnCount + ColumnHeaders + ColumnLines + ColumnOrder + Columns + ColumnWidths + Comment + ControlBox + ControlCount + ControlIndex + Controls + ControlSource + CurrentControl + CurrentX + CurrentY + CursorSource + Curvature + Database + DataSession + DataSessionId + DataSourceObj + DataType + Default + DefButton + DefButtonOrig + DefHeight + DefineWindows + DefLeft + DefTop + DefWidth + DeleteMark + Desktop + Dirty + DisabledBackColor + DisabledByEOF + DisabledForeColor + DisabledItemBackColor + DisabledItemForeColor + DisabledPicture + DisplayValue + DispPageHeight + DispPageWidth + Docked + DockPosition + DoCreate + DocumentFile + DownPicture + DragIcon + DragMode + DragState + DrawMode + DrawStyle + DrawWidth + DynamicAlignment + DynamicBackColor + DynamicCurrentControl + DynamicFontBold + DynamicFontItalic + DynamicFontName + DynamicFontOutline + DynamicFontShadow + DynamicFontSize + DynamicFontStrikethru + DynamicFontUnderline + DynamicForeColor + EditFlags + Enabled + EnabledByReadLock + EnvLevel + ErasePage + FillColor + FillStyle + Filter + FirstElement + FontBold + FontItalic + FontName + FontOutline + FontShadow + FontSize + FontStrikethru + FontUnderline + ForceFocus + ForeColor + Format + FormCount + FormIndex + FormPageCount + FormPageIndex + Forms + FoxFont + GoFirst + GoLast + GridLineColor + GridLines + GridLineWidth + HalfHeightCaption + HasClip + HeaderGap + HeaderHeight + Height + HelpContextID + HideSelection + Highlight + HostName + HotKey + HPROJ + HWnd + Icon + IgnoreInsert + Increment + IncrementalSearch + InitialSelectedAlias + InputMask + InResize + Interval + ItemBackColor + ItemData + ItemForeColor + ItemIDData + JustReadLocked + KeyboardHighValue + KeyboardLowValue + KeyPreview + Left + LeftColumn + LineSlant + LinkMaster + List + ListCount + ListIndex + ListItem + ListItemId + LockDataSource + LockScreen + Margin + MaxButton + MaxHeight + MaxLeft + MaxLength + MaxTop + MaxWidth + MDIForm + MemoWindow + MinButton + MinHeight + MinWidth + MousePointer + Movable + MoverBars + MultiSelect + Name + NapTime + NewIndex + NewItemId + NoDataOnLoad + NoDefine + NotifyContainer + NumberOfElements + OleClass + OleClassId + OleControlContainer + OleIDispatchIncoming + OleIDispatchOutgoing + OleIDispInValue + OleIDispOutValue + OLETypeAllowed + OneToMany + OnResize + OpenWindow + PageCount + PageHeight + PageOrder + Pages + PageWidth + Panel + PanelLink + Parent + ParentAlias + ParentClass + Partition + PasswordChar + Picture + ReadColors + ReadCycle + ReadFiller + ReadLock + ReadMouse + ReadOnly + ReadSave + ReadSize + ReadTimeout + RecordMark + RecordSource + RecordSourceType + Rect + RelationalExpr + RelativeColumn + RelativeRow + ReleaseErase + ReleaseType + ReleaseWindows + Resizable + RowHeight + RowSource + RowSourceType + ScaleMode + ScrollBars + Selected + SelectedBackColor + SelectedForeColor + SelectedID + SelectedItemBackColor + SelectedItemForeColor + SelectOnEntry + SelfEdit + SelLength + SelStart + SelText + ShowTips + Sizable + Skip + SkipForm + Sorted + SourceType + Sparse + SpecialEffect + SpinnerHighValue + SpinnerLowValue + StatusBarText + Stretch + Style + SystemRefCount + Tabhit + TabIndex + Tabs + TabStop + TabStretch + Tag + TerminateRead + ToolTipText + Top + TopIndex + TopItemId + UnlockDataSource + Value + ValueDirty + View + Visible + WasActive + WasOpen + Width + WindowList + WindowNTIList + WindowState + WindowType + WordWrap + ZOrderSet + AllowAddNew + AllowHeaderSizing + AllowRowSizing + Application + AutoVerbMenu + AutoYield + BoundTo + DateFormat + DateMark + DefaultFilePath + FullName + Hours + IMEMode + IntegralHeight + ItemTips + MouseIcon + NullDisplay + OLERequestPendingTimou + OLEServerBusyRaiseErro + OLEServerBusyTimout + OpenViews + RightToLeft + SDIForm + ShowWindow + SplitBar + StrictDateEntry + TabStyle + WhatsThisButton + WhatsThisHelp + WhatsThisHelpID + DisplayCount + ContinuousScroll + HscrollSmallChange + TitleBar + VscrollSmallChange + ViewPortTop + ViewPortLeft + ViewPortHeight + ViewPortWidth + SetViewPort + Scrolled + StartMode + ServerName + OLEDragMode + OLEDragPicture + OLEDropEffects + OLEDropHasData + OLEDropMode + ActiveProject + Projects + AutoIncrement + BuildDateTime + Debug + Encrypted + Files + HomeDir + MainClass + MainFile + ProjectHookClass + ProjectHookLibrary + SCCProvider + ServerHelpFile + ServerProject + TypeLibCLSID + TypeLibDesc + TypeLibName + VersionComments + VersionCompany + VersionCopyright + VersionDescription + VersionNumber + VersionProduct + VersionTrademarks + Item + CodePage + Description + FileClass + FileClassLibrary + LastModified + SCCStatus + CLSID + Instancing + ProgID + ServerClass + ServerClassLibrary + ThreadID + ProcessID + AddLineFeeds + + + MULTILOCKS + FULLPATH + UNIQUE + CLASSLIB + LIBRARY + structure + last + production + path + date + datetime + rest + fields + array + free + structure + ASCENDING + window + nowait + between + dbf + noconsole + dif + xls + csv + delimited + right + decimal + additive + between + noupdate + + Abs + Accept + Access + Aclass + Acopy + Acos + Adatabases + Adbobjects + Add + Addrelationtoenv + Addtabletoenv + Adel + Adir + Aelement + Aerror + Afields + Afont + Again + Ains + Ainstance + Alen + All + Alltrim + Alter + Amembers + Ansitooem + Append + Aprinters + Ascan + Aselobj + Asin + Asort + Assist + Asubscript + Asynchronous + Atan + Atc + Atcline + Atline + Atn2 + Aused + Autoform + Autoreport + Average + Bar + BatchMode + BatchUpdateCount + Begin + Bell + BellSound + Bitand + Bitclear + Bitlshift + Bitnot + Bitor + Bitrshift + Bitset + Bittest + Bitxor + Bof + Bottom + Browse + BrowseRefresh + Buffering + Build + BuilderLock + By + Calculate + Call + Capslock + Case + Cd + Cdow + Ceiling + Central + Century + Change + Char + Chdir + Checkbox + Chr + Chrsaw + Chrtran + Close + Cmonth + Cntbar + Cntpad + Col + Column + ComboBox + CommandButton + CommandGroup + Compile + Completed + Compobj + Compute + Concat + ConnectBusy + ConnectHandle + ConnectName + ConnectString + ConnectTimeOut + Container + Continue + Control + Copy + Cos + Cot + Count + Cpconvert + Cpcurrent + CPDialog + Cpdbf + Cpnotrans + Create + Createobject + CrsBuffering + CrsFetchMemo + CrsFetchSize + CrsMaxRows + CrsMethodUsed + CrsNumBatch + CrsShareConnection + CrsUseMemoSize + CrsWhereClause + Ctod + Ctot + Curdate + Curdir + CurrLeft + CurrSymbol + Cursor + Curtime + Curval + Custom + DataEnvironment + Databases + Datetime + Day + Dayname + Dayofmonth + Dayofweek + Dayofyear + Dbalias + Dbused + DB_BufLockRow + DB_BufLockTable + DB_BufOff + DB_BufOptRow + DB_BufOptTable + DB_Complette + DB_DeleteInsert + DB_KeyAndModified + DB_KeyAndTimestamp + DB_KeyAndUpdatable + DB_LocalSQL + DB_NoPrompt + DB_Prompt + DB_RemoteSQL + DB_TransAuto + DB_TransManual + DB_TransNone + DB_Update + Ddeaborttrans + Ddeadvise + Ddeenabled + Ddeexecute + Ddeinitiate + Ddelasterror + Ddepoke + Dderequest + Ddesetoption + Ddesetservice + Ddesettopic + Ddeterminate + Declare + DefaultValue + Define + Degrees + DeleteTrigger + Desc + Description + Difference + Dimension + Dir + Directory + Diskspace + Display + DispLogin + DispWarnings + Distinct + Dmy + Do + Doc + Dow + Drop + Dtoc + Dtor + Dtos + Dtot + Edit + EditBox + Eject + Elif + Else + Empty + End + Endcase + Enddefine + Enddo + Endfor + Endif + Endprintjob + Endscan + Endtext + Endwith + Eof + Erase + Evaluate + Exact + Exclusive + Exit + Exp + Export + External + Fchsize + Fclose + Fcount + Fcreate + Feof + Ferror + FetchMemo + FetchSize + Fflush + Fgets + File + Filer + Find + Fklabel + Fkmax + Fldlist + Flock + Floor + Flush + FontClass + Fontmetric + Fopen + For + Form + FormsClass + Formset + FormSetClass + FormSetLib + FormsLib + Found + Foxcode + Foxdoc + Foxgen + Foxgraph + FoxPro + Foxview + Fputs + Fread + From + Fseek + Fsize + Fv + Fwrite + Gather + General + Getbar + Getcolor + Getcp + Getdir + Getenv + Getexpr + Getfile + Getfldstate + Getfont + Getnextmodified + Getobject + Getpad + Getpict + Getprinter + Go + Gomonth + Goto + Graph + Grid + GridHorz + GridShow + GridShowPos + GridSnap + GridVert + Header + Help + HelpOn + HelpTo + Hour + IdleTimeOut + Idxcollate + If + Ifdef + Ifndef + Iif + Image + Import + Include + Indbc + Index + Inkey + Inlist + Input + Insert + InsertTrigger + Insmode + Into + Isalpha + Iscolor + Isdigit + Isexclusive + Islower + Isnull + Isreadonly + Isupper + Join + Keyboard + KeyField + KeyFieldList + Keymatch + Label + Lastkey + LastProject + Lcase + Len + Length + Lineno + ListBox + Local + Locate + Locfile + Log + Log10 + Logout + Lookup + Loop + Lower + Lparameters + Ltrim + Lupdate + Mail + MaxRecords + Mcol + Md + Mdown + Mdx + Mdy + Memlines + Memo + Menu + Messagebox + Minute + Mkdir + Mline + Modify + Month + Monthname + Mouse + Mrkbar + Mrkpad + Mrow + Mton + Mwindow + Native + Ndx + Network + Next + Nodefault + Normalize + Note + Now + Ntom + NullString + Numlock + Nvl + Objnum + Objref + Objtoclient + Objvar + Occurs + ODBChdbc + ODBChstmt + Oemtoansi + Off + Oldval + OleBaseControl + OleBoundControl + OleClassIDispOut + OleControl + On + Open + OptionButton + OptionGroup + Oracle + Order + Os + Otherwise + Pack + PacketSize + Padc + Padl + Padr + Page + PageFrame + Parameters + Payment + Pcol + Percent + Pi + Pivot + Play + Pop + Power + PrimaryKey + Printjob + Printstatus + Private + Prmbar + Prmpad + Program + ProjectClick + Proper + Protected + Prow + Prtinfo + Public + Push + Putfile + Pv + Qpr + Quater + QueryTimeOut + Quit + Radians + Rand + Rat + Ratline + Rd + Rdlevel + Read + Readkey + Recall + Reccount + RecentlyUsedFiles + Recno + Recsize + RectClass + Regional + Reindex + RelatedChild + RelatedTable + RelatedTag + Relation + Remove + Rename + Repeat + Replace + Replicate + Report + Reprocess + ResHeight + ResourceOn + ResourceTo + Restore + Resume + ResWidth + Retry + Return + Rgbscheme + Rlock + Rmdir + Rollback + Round + Rtod + Rtrim + RuleExpression + RuleText + Run + Runscript + Rview + Save + Safety + ScaleUnits + Scan + Scatter + Scols + Scroll + Sec + Second + Seek + Select + SendUpdates + Separator + Set + SetDefault + Setfldstate + Setup + Shape + Shared + ShareConnection + ShowOLEControls + ShowOLEInsertable + ShowVCXs + Sign + Sin + Size + Skpbar + Skppad + Sort + Soundex + SourceName + Spinner + SQLAsynchronous + SQLBatchMode + Sqlcommit + SQLConnectTimeOut + SQLDispLogin + SQLDispWarnings + SQLIdleTimeOut + Sqll + SQLQueryTimeOut + Sqlrollback + Sqlstringconnect + SQLTransactions + SQLWaitTime + Sqrt + Srows + StatusBar + Status + Store + Str + Strtran + Stuff + Substr + Substring + Sum + Suspend + Sys + Sysmetric + Table + TableRefresh + Tablerevert + Tableupdate + TabOrdering + Talk + Tan + Target + Text + TextBox + Timestamp + Timestampdiff + To + Toolbar + Total + Transaction + Transform + Trim + Truncate + Ttoc + Ttod + Txnlevel + Txtwidth + Type + Ucase + Undefine + Unlock + Unpack + Updatable + UpdatableFieldList + Update + Updated + UpdateName + UpdateNameList + UpdateTrigger + UpdateType + Upper + Upsizing + Use + Used + UseMemoSize + Val + Validate + Values + Varread + Version + Wait + WaitTime + Wborder + Wchild + Wcols + Week + Wexist + Wfont + Where + WhereType + While + Windcmd + Windhelp + Windmemo + Windmenu + Windmodify + Windquery + Windscreen + Windsnip + Windstproc + With + WizardPrompt + Wlast + Wlcol + Wlrow + Wmaximum + Wminimum + Wontop + Woutput + Wparent + Wread + Wrows + Wtitle + Wvisible + Year + Zap + [ + ] + ^ + _Alignment + _Asciicols + _Asciirows + _Assist + _Beautify + _Box + _Browser + _Builder + _Calcmem + _Calcvalue + _Cliptext + _Converter + _Curobj + _Dblclick + _Diarydate + _Dos + _Foxdoc + _Foxgraph + _Gengraph + _Genmenu + _Genpd + _Genscrn + _Genxtab + _Indent + _Lmargin + _Mac + _Mbrowse + _Mbr_appnd + _Mbr_cpart + _Mbr_delet + _Mbr_font + _Mbr_goto + _Mbr_grid + _Mbr_link + _Mbr_mode + _Mbr_mvfld + _Mbr_mvprt + _Mbr_seek + _Mbr_sp100 + _Mbr_sp200 + _Mbr_szfld + _Mdata + _Mda_appnd + _Mda_avg + _Mda_brow + _Mda_calc + _Mda_copy + _Mda_count + _Mda_label + _Mda_pack + _Mda_reprt + _Mda_rindx + _Mda_setup + _Mda_sort + _Mda_sp100 + _Mda_sp200 + _Mda_sp300 + _Mda_sum + _Mda_total + _Mdiary + _Medit + _Med_clear + _Med_copy + _Med_cut + _Med_cvtst + _Med_find + _Med_finda + _Med_goto + _Med_insob + _Med_link + _Med_obj + _Med_paste + _Med_pref + _Med_pstlk + _Med_redo + _Med_repl + _Med_repla + _Med_slcta + _Med_sp100 + _Med_sp200 + _Med_sp300 + _Med_sp400 + _Med_sp500 + _Med_undo + _Mfile + _Mfiler + _Mfirst + _Mfi_clall + _Mfi_close + _Mfi_export + _Mfi_import + _Mfi_new + _Mfi_open + _Mfi_pgset + _Mfi_prevu + _Mfi_print + _Mfi_quit + _Mfi_revrt + _Mfi_savas + _Mfi_save + _Mfi_send + _Mfi_setup + _Mfi_sp100 + _Mfi_sp200 + _Mfi_sp300 + _Mfi_sp400 + _Mlabel + _Mlast + _Mline + _Mmacro + _Mmbldr + _Mprog + _Mproj + _Mpr_beaut + _Mpr_cancl + _Mpr_compl + _Mpr_do + _Mpr_docum + _Mpr_formwz + _Mpr_gener + _Mpr_graph + _Mpr_resum + _Mpr_sp100 + _Mpr_sp200 + _Mpr_sp300 + _Mpr_suspend + _Mrc_appnd + _Mrc_chnge + _Mrc_cont + _Mrc_delet + _Mrc_goto + _Mrc_locat + _Mrc_recal + _Mrc_repl + _Mrc_seek + _Mrc_sp100 + _Mrc_sp200 + _Mrecord + _Mreport + _Mrqbe + _Mscreen + _Msm_data + _Msm_edit + _Msm_file + _Msm_format + _Msm_prog + _Msm_recrd + _Msm_systm + _Msm_text + _Msm_tools + _Msm_view + _Msm_windo + _Mst_about + _Mst_ascii + _Mst_calcu + _Mst_captr + _Mst_dbase + _Mst_diary + _Mst_filer + _Mst_help + _Mst_hphow + _Mst_hpsch + _Mst_macro + _Mst_office + _Mst_puzzl + _Mst_sp100 + _Mst_sp200 + _Mst_sp300 + _Mst_specl + _Msysmenu + _Msystem + _Mtable + _Mtb_appnd + _Mtb_cpart + _Mtb_delet + _Mtb_delrc + _Mtb_goto + _Mtb_link + _Mtb_mvfld + _Mtb_mvprt + _Mtb_props + _Mtb_recal + _Mtb_sp100 + _Mtb_sp200 + _Mtb_sp300 + _Mtb_sp400 + _Mtb_szfld + _Mwindow + _Mwizards + _Mwi_arran + _Mwi_clear + _Mwi_cmd + _Mwi_color + _Mwi_debug + _Mwi_hide + _Mwi_hidea + _Mwi_min + _Mwi_move + _Mwi_rotat + _Mwi_showa + _Mwi_size + _Mwi_sp100 + _Mwi_sp200 + _Mwi_toolb + _Mwi_trace + _Mwi_view + _Mwi_zoom + _Mwz_all + _Mwz_form + _Mwz_foxdoc + _Mwz_import + _Mwz_label + _Mwz_mail + _Mwz_pivot + _Mwz_query + _Mwz_reprt + _Mwz_setup + _Mwz_table + _Mwz_upsizing + _Netware + _Oracle + _Padvance + _Pageno + _Pbpage + _Pcolno + _Pcopies + _Pdparms + _Pdriver + _Pdsetup + _Pecode + _Peject + _Pepage + _Pform + _Plength + _Plineno + _Ploffset + _Ppitch + _Pquality + _Pretext + _Pscode + _Pspacing + _Pwait + _Rmargin + _Screen + _Shell + _Spellchk + _Sqlserver + _Startup + _Tabs + _Tally + _Text + _Throttle + _Transport + _Triggerlevel + _Unix + _Windows + _Wizard + _Wrap + French + German + Italian + Japan + Usa + Lparameter + This + Thisform + Thisformset + F + T + N + Y + OlePublic + Hidden + Each + DoEvents + Dll + Outer + At_c + Atcc + Ratc + Leftc + Rightc + Substrc + Stuffc + Lenc + Chrtranc + IsLeadByte + IMEStatus + Strconv + BinToC + CToBin + IsFLocked + IsRLocked + LoadPicture + SavePicture + Assert + DoDefault + _WebMenu + _scctext + _WebVFPHomePage + _WebVfpOnlineSupport + _WebDevOnly + _WebMsftHomePage + _Coverage + _vfp + Bintoc + Resources + Ctobin + Createoffline + Debugout + Doevents + Dropoffline + Each + Isflocked + Isrlocked + Loadpicture + Revertoffline + Savepicture + Asserts + Coverage + Eventtracking + DBGetProp + DBSetProp + CursorGetProp + CursorSetProp + Addbs + Agetclass + Agetfileversion + Alines + Amouseobj + Anetresources + Avcxclasses + Comclassinfo + Createobjectex + Defaultext + Drivetype + Filetostr + Forceext + Forcepath + Gethost + Indexseek + Ishosted + Justdrive + Justext + Justfname + Justpath + Juststem + Newobject + Olereturnerror + Strtofile + Vartype + _Coverage + _Gallery + _Genhtml + _Getexpr + _Include + _Runactivedoc + ProjectHook + ActiveDoc + HyperLink + Session + Mtdll + + + ADOCKTIP + ADirtip + ADockState + AEvents + AFONTTIP + ALanguage + AProcInfo + AStackInfo + ATagInfo + Adlls + Alentip + Amemberstip + Amemberstip2 + Ascantip + Aselobjtip + Asessions + Asorttip + Asorttip2 + BINDEVENTTIP + BindEvent + COMARRAYTIP + COMPROPTIP + Candidate + Cdx + ComArray + ComReturnError + Comprop + CreateBinary + CursorToXML + DIRTIP + Descending + DisplayPath + EditSource + EventHandler + Evl + ExecScript + FCREATETIP + FIELDTIP + FILETIP + FOPENTIP + FSEEKTIP + Fdate + Ftime + GetCursorAdapter + GetInterface + GetPem + GetWordCount + GetWordNum + InputBox + IsBlank + IsMouse + Like + Likec + Memory + Msgboxtip + Pcount + PemStatus + Popup + Quarter + RaiseEvent + RemoveProperty + SQLCancel + SQLColumns + SQLDisconnect + SQLExec + SQLGetProp + SQLMoreResults + SQLPrepare + SQLSetProp + SQLTables + STRTOFILETIP + Seconds + StrExTip + StrExtract + Strtrantip + Tagcount + Tagno + Textmerge + Try + UnBindEvents + WDockable + XMLTIP + XMLTIP2 + XMLTIP3 + XMLTIP4 + XMLTIP5 + XMLTIP6 + XMLToCursor + XMLUpdategram + Blank + Catch + Dotip + EndTry + Finally + Implements + Opendatatip + Repltip + Throw + Usetip + + + + diff --git a/extra/xmode/modes/freemarker.xml b/extra/xmode/modes/freemarker.xml new file mode 100644 index 0000000000..065e5f9ab9 --- /dev/null +++ b/extra/xmode/modes/freemarker.xml @@ -0,0 +1,205 @@ + + + + + + + + + + + + <script + </script> + + + <Script + </Script> + + + <SCRIPT + </SCRIPT> + + + + + <style + </style> + + + <Style + </Style> + + + <STYLE + </STYLE> + + + + + <!-- + --> + + + + + <! + > + + + + + + ${ + } + + + + #{ + } + + + + <#ftl\b + > + + + + <#?(if|elseif|switch|foreach|list|case|assign|local|global|setting|include|import|stop|escape|macro|function|transform|call|visit|recurse)(\s|/|$) + > + + + </#?(assign|local|global|if|switch|foreach|list|escape|macro|function|transform|compress|noescape)> + + + <#?(else|compress|noescape|default|break|flush|nested|t|rt|lt|return|recurse)\b + > + + + + </@(([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*)*?)? + > + + + + <@([_@\p{Alpha}][_@\p{Alnum}]*)(\.[_@\p{Alpha}][_@\p{Alnum}]*?)* + > + + + + <#-- + --> + + + <stop> + + <comment> + </comment> + + + <# + > + + + </# + > + + + + + < + > + + + + + + <#-- + --> + + + <!-- + --> + + + + " + " + + + () + + = + ! + | + & + < + > + * + / + - + + + % + . + : + . + . + [ + ] + { + } + ; + + ? + + true + false + as + in + using + gt + gte + lt + lte + + + + + + " + " + + + + ' + ' + + + = + + + + + + + ${ + } + + + #{ + } + + + + + + diff --git a/extra/xmode/modes/gettext.xml b/extra/xmode/modes/gettext.xml new file mode 100644 index 0000000000..b84e7c4b64 --- /dev/null +++ b/extra/xmode/modes/gettext.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + #: + # + #. + #~ + + #, + % + $ + @ + + + " + " + + + + + msgid + msgid_plural + msgstr + fuzzy + + c-format + no-c-format + + + + + + + \" + \" + + + % + $ + @ + + + diff --git a/extra/xmode/modes/gnuplot.xml b/extra/xmode/modes/gnuplot.xml new file mode 100644 index 0000000000..f66a16955c --- /dev/null +++ b/extra/xmode/modes/gnuplot.xml @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + # + + + + " + " + + + ' + ' + + + + [ + ] + + + + { + } + + + + - + + + ~ + ! + $ + * + % + = + > + < + & + >= + <= + | + ^ + ? + : + + + ( + ) + + + + + + + cd + call + clear + exit + fit + help + history + if + load + pause + plot + using + with + index + every + smooth + thru + print + pwd + quit + replot + reread + reset + save + set + show + unset + shell + splot + system + test + unset + update + + + abs + acos + acosh + arg + asin + asinh + atan + atan2 + atanh + besj0 + besj1 + besy0 + besy1 + ceil + cos + cosh + erf + erfc + exp + floor + gamma + ibeta + inverf + igamma + imag + invnorm + int + lambertw + lgamma + log + log10 + norm + rand + real + sgn + sin + sinh + sqrt + tan + tanh + column + defined + tm_hour + tm_mday + tm_min + tm_mon + tm_sec + tm_wday + tm_yday + tm_year + valid + + + angles + arrow + autoscale + bars + bmargin + border + boxwidth + clabel + clip + cntrparam + colorbox + contour + datafile + decimalsign + dgrid3d + dummy + encoding + fit + fontpath + format + functions + function + grid + hidden3d + historysize + isosamples + key + label + lmargin + loadpath + locale + logscale + mapping + margin + mouse + multiplot + mx2tics + mxtics + my2tics + mytics + mztics + offsets + origin + output + parametric + plot + pm3d + palette + pointsize + polar + print + rmargin + rrange + samples + size + style + surface + terminal + tics + ticslevel + ticscale + timestamp + timefmt + title + tmargin + trange + urange + variables + version + view + vrange + x2data + x2dtics + x2label + x2mtics + x2range + x2tics + x2zeroaxis + xdata + xdtics + xlabel + xmtics + xrange + xtics + xzeroaxis + y2data + y2dtics + y2label + y2mtics + y2range + y2tics + y2zeroaxis + ydata + ydtics + ylabel + ymtics + yrange + ytics + yzeroaxis + zdata + zdtics + cbdata + cbdtics + zero + zeroaxis + zlabel + zmtics + zrange + ztics + cblabel + cbmtics + cbrange + cbtics + + + + + diff --git a/extra/xmode/modes/groovy.xml b/extra/xmode/modes/groovy.xml new file mode 100644 index 0000000000..5e0d8ea1a8 --- /dev/null +++ b/extra/xmode/modes/groovy.xml @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + /**/ + + + + /** + */ + + + + + /* + */ + + + + " + " + + + ' + ' + + + + + + $1 + + + =~ + = + | + ! + <=> + >= + <= + + + -> + - + ? + & + + + .* + + + // + + + ( + ) + + + abstract + break + case + catch + continue + default + do + else + extends + final + finally + for + if + implements + instanceof + native + new + private + protected + public + return + static + switch + synchronized + throw + throws + transient + try + volatile + while + + strictfp + + package + import + + + as + assert + def + mixin + property + test + using + in + + + boolean + byte + char + class + double + float + int + interface + long + short + void + + + abs + any + append + asList + asWritable + call + collect + compareTo + count + div + dump + each + eachByte + eachFile + eachLine + every + find + findAll + flatten + getAt + getErr + getIn + getOut + getText + grep + immutable + inject + inspect + intersect + invokeMethods + isCase + join + leftShift + minus + multiply + newInputStream + newOutputStream + newPrintWriter + newReader + newWriter + next + plus + pop + power + previous + print + println + push + putAt + read + readBytes + readLines + reverse + reverseEach + round + size + sort + splitEachLine + step + subMap + times + toInteger + toList + tokenize + upto + waitForOrKill + withPrintWriter + withReader + withStream + withWriter + withWriterAppend + write + writeLine + + false + null + super + this + true + + + it + + goto + const + + + + + + + ${ + } + + + $ + + + + + { + + + * + + + + <!-- + --> + + + + << + <= + < + + + + < + > + + + @ + + + diff --git a/extra/xmode/modes/haskell.xml b/extra/xmode/modes/haskell.xml new file mode 100644 index 0000000000..b38b42db87 --- /dev/null +++ b/extra/xmode/modes/haskell.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + {-# + #-} + + + + {- + -} + + + -- + + + " + " + + + + ' ' + '!' + '"' + '$' + '%' + '/' + '(' + ')' + '[' + ']' + '+' + '-' + '*' + '=' + '/' + '^' + '.' + ',' + ':' + ';' + '<' + '>' + '|' + '@' + + + ' + ' + + + .. + && + :: + + < + > + + + - + * + / + % + ^ + = + | + @ + ~ + ! + $ + + + + + + + case + class + data + default + deriving + do + else + if + import + in + infix + infixl + infixr + instance + let + module + newtype + of + then + type + where + _ + as + qualified + hiding + + Addr + Bool + Bounded + Char + Double + Either + Enum + Eq + FilePath + Float + Floating + Fractional + Functor + IO + IOError + IOResult + Int + Integer + Integral + Ix + Maybe + Monad + Num + Ord + Ordering + Ratio + Rational + Read + ReadS + Real + RealFloat + RealFrac + Show + ShowS + String + + : + EQ + False + GT + Just + LT + Left + Nothing + Right + True + + quot + rem + div + mod + elem + notElem + seq + + + + diff --git a/extra/xmode/modes/hex.xml b/extra/xmode/modes/hex.xml new file mode 100644 index 0000000000..73a8db921b --- /dev/null +++ b/extra/xmode/modes/hex.xml @@ -0,0 +1,20 @@ + + + + + + + + + + : + + ; + + diff --git a/extra/xmode/modes/hlsl.xml b/extra/xmode/modes/hlsl.xml new file mode 100644 index 0000000000..0f361c5a29 --- /dev/null +++ b/extra/xmode/modes/hlsl.xml @@ -0,0 +1,479 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + + ## + #@ + # + + + + asm + } + + + ASM + } + + + Asm + } + + + asm_fragment + } + + + + // + + + ++ + -- + && + || + == + :: + << + <<= + >> + >>= + ... + <= + >= + != + *= + /= + += + -= + %= + &= + |= + ^= + -> + + + } + { + + + - + * + / + % + = + < + > + ! + + + ( + + + .(([xyzw]{1,4})|([rgba]{1,4})|((_m[0123][0123])+)|((_[1234][1234])+))(?!\p{Alnum}) + + + bool[1234](x[1234])?\b + int[1234](x[1234])?\b + half[1234](x[1234])?\b + float[1234](x[1234])?\b + double[1234](x[1234])?\b + + + :\s*(register\s*\(\w+(\s*\,\s*\w+\s*)?\)|\w+) + + + + discard + do + else + for + if + return + typedef + while + + + compile + compile_fragment + register + sampler_state + stateblock_state + technique + Technique + TECHNIQUE + pass + Pass + PASS + decl + Decl + DECL + + + void + bool + int + half + float + double + vector + matrix + + + string + texture + texture1D + texture2D + texture3D + textureCUBE + sampler + sampler1D + sampler2D + sampler3D + samplerCUBE + pixelfragment + vertexfragment + pixelshader + vertexshader + stateblock + struct + + + static + uniform + extern + volatile + inline + shared + const + row_major + column_major + in + inout + out + + + false + true + NULL + + + abs + acos + all + any + asin + atan + atan2 + ceil + clamp + clip + cos + cosh + cross + D3DCOLORtoUBYTE4 + ddx + ddy + degrees + determinant + distance + dot + exp + exp2 + faceforward + floor + fmod + frac + frexp + fwidth + isfinite + isinf + isnan + ldexp + length + lerp + lit + log + log10 + log2 + max + min + modf + mul + noise + normalize + pow + radians + reflect + refract + round + rsqrt + saturate + sign + sin + sincos + sinh + smoothstep + sqrt + step + tan + tanh + transpose + + + tex1D + tex1Dgrad + tex1Dbias + tex1Dgrad + tex1Dlod + tex1Dproj + tex2D + tex2D + tex2Dbias + tex2Dgrad + tex2Dlod + tex2Dproj + tex3D + tex3D + tex3Dbias + tex3Dgrad + tex3Dlod + tex3Dproj + texCUBE + texCUBE + texCUBEbias + texCUBEgrad + texCUBElod + texCUBEproj + + + auto + break + case + catch + char + class + const_cast + continue + default + delete + dynamic_cast + enum + explicit + friend + goto + long + mutable + namespace + new + operator + private + protected + public + reinterpret_cast + short + signed + sizeof + static_cast + switch + template + this + throw + try + typename + union + unsigned + using + virtual + + + + + + + + + + /* + */ + + + + include + + + + define + elif + else + endif + error + if + ifdef + ifndef + line + pragma + undef + + + pack_matrix + warning + def + defined + D3DX + D3DX_VERSION + DIRECT3D + DIRECT3D_VERSION + __FILE__ + __LINE__ + + + + + + + { + + + + /* + */ + + // + ; + + + + + - + , + + + .(([xyzw]{1,4})) + + + abs(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + add(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + bem(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + break_comp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + breakp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + callnz(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + cmp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + cnd(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + crs(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + dp2add(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + dp3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + dp4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + dst(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + dsx(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + dsy(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + else(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + endif(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + endloop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + endrep(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + exp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + frc(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + if(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + label(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + lit(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + logp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + loop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + lrp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + m3x2(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + m3x3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + m3x4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + m4x3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + m4x4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + mad(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + mov(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + max(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + min(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + mova(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + mul(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + nop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + nrm(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + phase(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + pow(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + rcp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + rep(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + ret(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + rsq(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + setp_comp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + sge(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + sgn(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + sincos(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + slt(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + sub(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + + neg(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b + + + tex\w* + + + ps\w* + vs\w* + def\w* + dcl\w* + + + + + + diff --git a/extra/xmode/modes/htaccess.xml b/extra/xmode/modes/htaccess.xml new file mode 100644 index 0000000000..33bf6c41ad --- /dev/null +++ b/extra/xmode/modes/htaccess.xml @@ -0,0 +1,563 @@ + + + + + + + + + + + + # + + + " + " + + + + ]*>]]> + ]]> + + + + + AcceptPathInfo + Action + AddAlt + AddAltByEncoding + AddAltByType + AddCharset + AddDefaultCharset + AddDescription + AddEncoding + AddHandler + AddIcon + AddIconByEncoding + AddIconByType + AddInputFilter + AddLanguage + AddOutputFilter + AddOutputFilterByType + AddType + Allow + Anonymous + Anonymous_Authoritative + Anonymous_LogEmail + Anonymous_MustGiveEmail + Anonymous_NoUserID + Anonymous_VerifyEmail + AuthAuthoritative + AuthDBMAuthoritative + AuthDBMGroupFile + AuthDBMType + AuthDBMUserFile + AuthDigestAlgorithm + AuthDigestDomain + AuthDigestFile + AuthDigestGroupFile + AuthDigestNonceFormat + AuthDigestNonceLifetime + AuthDigestQop + AuthGroupFile + AuthLDAPAuthoritative + AuthLDAPBindDN + AuthLDAPBindPassword + AuthLDAPCompareDNOnServer + AuthLDAPDereferenceAliases + AuthLDAPEnabled + AuthLDAPFrontPageHack + AuthLDAPGroupAttribute + AuthLDAPGroupAttributeIsDN + AuthLDAPRemoteUserIsDN + AuthLDAPUrl + AuthName + AuthType + AuthUserFile + BrowserMatch + BrowserMatchNoCase + CGIMapExtension + CharsetDefault + CharsetOptions + CharsetSourceEnc + CheckSpelling + ContentDigest + CookieDomain + CookieExpires + CookieName + CookieStyle + CookieTracking + DefaultIcon + DefaultLanguage + DefaultType + Deny + DirectoryIndex + DirectorySlash + EnableMMAP + EnableSendfile + ErrorDocument + Example + ExpiresActive + ExpiresByType + ExpiresDefault + FileETag + ForceLanguagePriority + ForceType + Header + HeaderName + ImapBase + ImapDefault + ImapMenu + IndexIgnore + IndexOptions + IndexOrderDefault + ISAPIAppendLogToErrors + ISAPIAppendLogToQuery + ISAPIFakeAsync + ISAPILogNotSupported + ISAPIReadAheadBuffer + LanguagePriority + LimitRequestBody + LimitXMLRequestBody + MetaDir + MetaFiles + MetaSuffix + MultiviewsMatch + Options + Order + PassEnv + ReadmeName + Redirect + RedirectMatch + RedirectPermanent + RedirectTemp + RemoveCharset + RemoveEncoding + RemoveHandler + RemoveInputFilter + RemoveLanguage + RemoveOutputFilter + RemoveType + RequestHeader + Require + RewriteBase + RewriteCond + RewriteEngine + RewriteOptions + RewriteRule + RLimitCPU + RLimitMEM + RLimitNPROC + Satisfy + ScriptInterpreterSource + ServerSignature + SetEnv + SetEnvIf + SetEnvIfNoCase + SetHandler + SetInputFilter + SetOutputFilter + SSIErrorMsg + SSITimeFormat + SSLCipherSuite + SSLOptions + SSLProxyCipherSuite + SSLProxyVerify + SSLProxyVerifyDepth + SSLRequire + SSLRequireSSL + SSLUserName + SSLVerifyClient + SSLVerifyDepth + UnsetEnv + XBitHack + + Basic + Digest + None + Off + On + + + + + + + # + + + " + " + + + + ]*>]]> + ]]> + + + + + AcceptMutex + AcceptPathInfo + AccessFileName + Action + AddAlt + AddAltByEncoding + AddAltByType + AddCharset + AddDefaultCharset + AddDescription + AddEncoding + AddHandler + AddIcon + AddIconByEncoding + AddIconByType + AddInputFilter + AddLanguage + AddModuleInfo + AddOutputFilter + AddOutputFilterByType + AddType + Alias + AliasMatch + Allow + AllowCONNECT + AllowEncodedSlashes + AllowOverride + Anonymous + Anonymous_Authoritative + Anonymous_LogEmail + Anonymous_MustGiveEmail + Anonymous_NoUserID + Anonymous_VerifyEmail + AuthAuthoritative + AuthDBMAuthoritative + AuthDBMGroupFile + AuthDBMType + AuthDBMUserFile + AuthDigestAlgorithm + AuthDigestDomain + AuthDigestFile + AuthDigestGroupFile + AuthDigestNcCheck + AuthDigestNonceFormat + AuthDigestNonceLifetime + AuthDigestQop + AuthDigestShmemSize + AuthGroupFile + AuthLDAPAuthoritative + AuthLDAPBindDN + AuthLDAPBindPassword + AuthLDAPCharsetConfig + AuthLDAPCompareDNOnServer + AuthLDAPDereferenceAliases + AuthLDAPEnabled + AuthLDAPFrontPageHack + AuthLDAPGroupAttribute + AuthLDAPGroupAttributeIsDN + AuthLDAPRemoteUserIsDN + AuthLDAPUrl + AuthName + AuthType + AuthUserFile + BS2000Account + BrowserMatch + BrowserMatchNoCase + CGIMapExtension + CacheDefaultExpire + CacheDirLength + CacheDirLevels + CacheDisable + CacheEnable + CacheExpiryCheck + CacheFile + CacheForceCompletion + CacheGcClean + CacheGcDaily + CacheGcInterval + CacheGcMemUsage + CacheGcUnused + CacheIgnoreCacheControl + CacheIgnoreNoLastMod + CacheLastModifiedFactor + CacheMaxExpire + CacheMaxFileSize + CacheMinFileSize + CacheNegotiatedDocs + CacheRoot + CacheSize + CacheTimeMargin + CharsetDefault + CharsetOptions + CharsetSourceEnc + CheckSpelling + ChildPerUserID + ContentDigest + CookieDomain + CookieExpires + CookieLog + CookieName + CookieStyle + CookieTracking + CoreDumpDirectory + CustomLog + Dav + DavDepthInfinity + DavLockDB + DavMinTimeout + DefaultIcon + DefaultLanguage + DefaultType + DeflateBufferSize + DeflateCompressionLevel + DeflateFilterNote + DeflateMemLevel + DeflateWindowSize + Deny + DirectoryIndex + DirectorySlash + DocumentRoot + EnableMMAP + EnableSendfile + ErrorDocument + ErrorLog + Example + ExpiresActive + ExpiresByType + ExpiresDefault + ExtFilterDefine + ExtFilterOptions + ExtendedStatus + FileETag + ForceLanguagePriority + ForceType + Group + Header + HeaderName + HostnameLookups + ISAPIAppendLogToErrors + ISAPIAppendLogToQuery + ISAPICacheFile + ISAPIFakeAsync + ISAPILogNotSupported + ISAPIReadAheadBuffer + IdentityCheck + ImapBase + ImapDefault + ImapMenu + Include + IndexIgnore + IndexOptions + IndexOrderDefault + KeepAlive + KeepAliveTimeout + LDAPCacheEntries + LDAPCacheTTL + LDAPOpCacheEntries + LDAPOpCacheTTL + LDAPSharedCacheSize + LDAPTrustedCA + LDAPTrustedCAType + LanguagePriority + LimitInternalRecursion + LimitRequestBody + LimitRequestFields + LimitRequestFieldsize + LimitRequestLine + LimitXMLRequestBody + Listen + ListenBacklog + LoadFile + LoadModule + LockFile + LogFormat + LogLevel + MCacheMaxObjectCount + MCacheMaxObjectSize + MCacheMaxStreamingBuffer + MCacheMinObjectSize + MCacheRemovalAlgorithm + MCacheSize + MMapFile + MaxClients + MaxKeepAliveRequests + MaxMemFree + MaxRequestsPerChild + MaxRequestsPerThread + MaxSpareServers + MaxSpareThreads + MaxThreads + MaxThreadsPerChild + MetaDir + MetaFiles + MetaSuffix + MimeMagicFile + MinSpareServers + MinSpareThreads + ModMimeUsePathInfo + MultiviewsMatch + NWSSLTrustedCerts + NameVirtualHost + NoProxy + NumServers + Options + Order + PassEnv + PidFile + ProtocolEcho + ProxyBadHeader + ProxyBlock + ProxyDomain + ProxyErrorOverride + ProxyIOBufferSize + ProxyMaxForwards + ProxyPass + ProxyPassReverse + ProxyPreserveHost + ProxyReceiveBufferSize + ProxyRemote + ProxyRemoteMatch + ProxyRequests + ProxyTimeout + ProxyVia + RLimitCPU + RLimitMEM + RLimitNPROC + ReadmeName + Redirect + RedirectMatch + RedirectPermanent + RedirectTemp + RemoveCharset + RemoveEncoding + RemoveHandler + RemoveInputFilter + RemoveLanguage + RemoveOutputFilter + RemoveType + RequestHeader + Require + RewriteBase + RewriteCond + RewriteEngine + RewriteLock + RewriteLog + RewriteLogLevel + RewriteMap + RewriteOptions + RewriteRule + SSIEndTag + SSIErrorMsg + SSIStartTag + SSITimeFormat + SSIUndefinedEcho + SSLCACertificateFile + SSLCACertificatePath + SSLCARevocationFile + SSLCARevocationPath + SSLCertificateChainFile + SSLCertificateFile + SSLCertificateKeyFile + SSLCipherSuite + SSLEngine + SSLMutex + SSLOptions + SSLPassPhraseDialog + SSLProtocol + SSLProxyCACertificateFile + SSLProxyCACertificatePath + SSLProxyCARevocationFile + SSLProxyCARevocationPath + SSLProxyCipherSuite + SSLProxyEngine + SSLProxyMachineCertificateFile + SSLProxyMachineCertificatePath + SSLProxyProtocol + SSLProxyVerify + SSLProxyVerifyDepth + SSLRandomSeed + SSLRequire + SSLRequireSSL + SSLSessionCache + SSLSessionCacheTimeout + SSLVerifyClient + SSLVerifyDepth + Satisfy + ScoreBoardFile + Script + ScriptAlias + ScriptAliasMatch + ScriptInterpreterSource + ScriptLog + ScriptLogBuffer + ScriptLogLength + ScriptSock + SecureListen + SendBufferSize + ServerAdmin + ServerLimit + ServerName + ServerRoot + ServerSignature + ServerTokens + SetEnv + SetEnvIf + SetEnvIfNoCase + SetHandler + SetInputFilter + SetOutputFilter + StartServers + StartThreads + SuexecUserGroup + ThreadLimit + ThreadStackSize + ThreadsPerChild + TimeOut + TransferLog + TypesConfig + UnsetEnv + UseCanonicalName + User + UserDir + VirtualDocumentRoot + VirtualDocumentRootIP + VirtualScriptAlias + VirtualScriptAliasIP + XBitHack + + + + AddModule + ClearModuleList + + + SVNPath + SVNParentPath + SVNIndexXSLT + + + PythonHandler + PythonDebug + + + php_value + + php_flag + + All + ExecCGI + FollowSymLinks + Includes + IncludesNOEXEC + Indexes + MultiViews + None + Off + On + SymLinksIfOwnerMatch + from + + + + diff --git a/extra/xmode/modes/html.xml b/extra/xmode/modes/html.xml new file mode 100644 index 0000000000..a5af6045db --- /dev/null +++ b/extra/xmode/modes/html.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + + + + + " + " + + + + ' + ' + + + = + + + + fieldset + a + abbr + acronym + address + applet + area + b + base + basefont + bdo + big + blockquote + body + br + button + caption + center + cite + code + col + colgroup + dd + del + dfn + dir + div + dl + dt + em + fieldset + font + form + frame + frameset + h1 + h2 + h3 + h4 + h5 + h6 + head + hr + html + i + iframe + img + input + ins + isindex + kbd + label + legend + li + link + map + menu + meta + noframes + noscript + object + ol + optgroup + option + p + param + pre + q + s + samp + script + select + small + span + strike + strong + style + sub + sup + table + tbody + td + textarea + tfoot + th + thead + title + tr + tt + u + ul + var + + + + + > + + SRC= + + + + > + + + + > + + diff --git a/extra/xmode/modes/i4gl.xml b/extra/xmode/modes/i4gl.xml new file mode 100644 index 0000000000..0c5064822e --- /dev/null +++ b/extra/xmode/modes/i4gl.xml @@ -0,0 +1,665 @@ + + + + + + + + + + + + + + + + + + + + + + ' + ' + + + + " + " + + + -- + # + + + { + } + + + ) + + ] + [ + . + , + ; + : + = + == + != + >= + <= + <> + > + < + + + - + / + * + || + + + ( + ) + + + + + + ABORT + ABS + ABSOLUTE + ACCEPT + ACCESS + ACOS + ADA + ADD + AFTER + ALL + ALLOCATE + ALTER + AND + ANSI + ANY + APPEND + ARG_VAL + ARRAY + ARR_COUNT + ARR_CURR + AS + ASC + ASCENDING + ASCII + ASIN + AT + ATAN + ATAN2 + ATTACH + ATTRIBUTE + ATTRIBUTES + AUDIT + AUTHORIZATION + AUTO + AUTONEXT + AVERAGE + AVG + BEFORE + BEGIN + BETWEEN + BLACK + BLINK + BLUE + BOLD + BORDER + BOTH + BOTTOM + BREAK + BUFFERED + BY + BYTE + CALL + CASCADE + CASE + CHAR + CHARACTER + CHARACTER_LENGTH + CHAR_LENGTH + CHECK + CLASS_ORIGIN + CLEAR + CLIPPED + CLOSE + CLUSTER + COBOL + COLOR + COLUMN + COLUMNS + COMMAND + COMMENT + COMMENTS + COMMIT + COMMITTED + COMPOSITES + COMPRESS + CONCURRENT + CONNECT + CONNECTION + CONNECTION_ALIAS + CONSTRAINED + CONSTRAINT + CONSTRAINTS + CONSTRUCT + CONTINUE + CONTROL + COS + COUNT + CREATE + CURRENT + CURSOR + CYAN + DATA + DATABASE + DATASKIP + DATE + DATETIME + DAY + DBA + DBINFO + DBSERVERNAME + DEALLOCATE + DEBUG + DEC + DECIMAL + DECLARE + DEFAULT + DEFAULTS + DEFER + DEFERRED + DEFINE + DELETE + DELIMITER + DELIMITERS + DESC + DESCENDING + DESCRIBE + DESCRIPTOR + DETACH + DIAGNOSTICS + DIM + DIRTY + DISABLED + DISCONNECT + DISPLAY + DISTINCT + DISTRIBUTIONS + DO + DORMANT + DOUBLE + DOWN + DOWNSHIFT + DROP + EACH + ELIF + ELSE + ENABLED + END + ENTRY + ERROR + ERRORLOG + ERR_GET + ERR_PRINT + ERR_QUIT + ESC + ESCAPE + EVERY + EXCEPTION + EXCLUSIVE + EXEC + EXECUTE + EXISTS + EXIT + EXP + EXPLAIN + EXPRESSION + EXTEND + EXTENT + EXTERN + EXTERNAL + F1 + F10 + F11 + F12 + F13 + F14 + F15 + F16 + F17 + F18 + F19 + F2 + F20 + F21 + F22 + F23 + F24 + F25 + F26 + F27 + F28 + F29 + F3 + F30 + F31 + F32 + F33 + F34 + F35 + F36 + F37 + F38 + F39 + F4 + F40 + F41 + F42 + F43 + F44 + F45 + F46 + F47 + F48 + F49 + F5 + F50 + F51 + F52 + F53 + F54 + F55 + F56 + F57 + F58 + F59 + F6 + F60 + F61 + F62 + F63 + F64 + F7 + F8 + F9 + FALSE + FETCH + FGL_GETENV + FGL_KEYVAL + FGL_LASTKEY + FIELD + FIELD_TOUCHED + FILE + FILLFACTOR + FILTERING + FINISH + FIRST + FLOAT + FLUSH + FOR + FOREACH + FOREIGN + FORM + FORMAT + FORMONLY + FORTRAN + FOUND + FRACTION + FRAGMENT + FREE + FROM + FUNCTION + GET_FLDBUF + GLOBAL + GLOBALS + GO + GOTO + GRANT + GREEN + GROUP + HAVING + HEADER + HELP + HEX + HIDE + HIGH + HOLD + HOUR + IDATA + IF + ILENGTH + IMMEDIATE + IN + INCLUDE + INDEX + INDEXES + INDICATOR + INFIELD + INIT + INITIALIZE + INPUT + INSERT + INSTRUCTIONS + INT + INTEGER + INTERRUPT + INTERVAL + INTO + INT_FLAG + INVISIBLE + IS + ISAM + ISOLATION + ITYPE + KEY + LABEL + LANGUAGE + LAST + LEADING + LEFT + LENGTH + LET + LIKE + LINE + LINENO + LINES + LOAD + LOCATE + LOCK + LOG + LOG10 + LOGN + LONG + LOW + MAGENTA + MAIN + MARGIN + MATCHES + MAX + MDY + MEDIUM + MEMORY + MENU + MESSAGE + MESSAGE_LENGTH + MESSAGE_TEXT + MIN + MINUTE + MOD + MODE + MODIFY + MODULE + MONEY + MONTH + MORE + NAME + NCHAR + NEED + NEW + NEXT + NEXTPAGE + NO + NOCR + NOENTRY + NONE + NORMAL + NOT + NOTFOUND + NULL + NULLABLE + NUMBER + NUMERIC + NUM_ARGS + NVARCHAR + OCTET_LENGTH + OF + OFF + OLD + ON + ONLY + OPEN + OPTIMIZATION + OPTION + OPTIONS + OR + ORDER + OTHERWISE + OUTER + OUTPUT + PAGE + PAGENO + PASCAL + PAUSE + PDQPRIORITY + PERCENT + PICTURE + PIPE + PLI + POW + PRECISION + PREPARE + PREVIOUS + PREVPAGE + PRIMARY + PRINT + PRINTER + PRIOR + PRIVATE + PRIVILEGES + PROCEDURE + PROGRAM + PROMPT + PUBLIC + PUT + QUIT + QUIT_FLAG + RAISE + RANGE + READ + READONLY + REAL + RECORD + RECOVER + RED + REFERENCES + REFERENCING + REGISTER + RELATIVE + REMAINDER + REMOVE + RENAME + REOPTIMIZATION + REPEATABLE + REPORT + REQUIRED + RESOLUTION + RESOURCE + RESTRICT + RESUME + RETURN + RETURNED_SQLSTATE + RETURNING + REVERSE + REVOKE + RIGHT + ROBIN + ROLE + ROLLBACK + ROLLFORWARD + ROOT + ROUND + ROW + ROWID + ROWIDS + ROWS + ROW_COUNT + RUN + SCALE + SCHEMA + SCREEN + SCROLL + SCR_LINE + SECOND + SECTION + SELECT + SERIAL + SERIALIZABLE + SERVER_NAME + SESSION + SET + SET_COUNT + SHARE + SHORT + SHOW + SITENAME + SIZE + SIZEOF + SKIP + SLEEP + SMALLFLOAT + SMALLINT + SOME + SPACE + SPACES + SQL + SQLAWARN + SQLCA + SQLCODE + SQLERRD + SQLERRM + SQLERROR + SQLERRP + SQLSTATE + SQLWARNING + SQRT + STABILITY + START + STARTLOG + STATIC + STATISTICS + STATUS + STDEV + STEP + STOP + STRING + STRUCT + SUBCLASS_ORIGIN + SUM + SWITCH + SYNONYM + SYSTEM + SysBlobs + SysChecks + SysColAuth + SysColDepend + SysColumns + SysConstraints + SysDefaults + SysDepend + SysDistrib + SysFragAuth + SysFragments + SysIndexes + SysObjState + SysOpClstr + SysProcAuth + SysProcBody + SysProcPlan + SysProcedures + SysReferences + SysRoleAuth + SysSynTable + SysSynonyms + SysTabAuth + SysTables + SysTrigBody + SysTriggers + SysUsers + SysViews + SysViolations + TAB + TABLE + TABLES + TAN + TEMP + TEXT + THEN + THROUGH + THRU + TIME + TO + TODAY + TOP + TOTAL + TRACE + TRAILER + TRAILING + TRANSACTION + TRIGGER + TRIGGERS + TRIM + TRUE + TRUNC + TYPE + TYPEDEF + UNCOMMITTED + UNCONSTRAINED + UNDERLINE + UNION + UNIQUE + UNITS + UNLOAD + UNLOCK + UNSIGNED + UP + UPDATE + UPSHIFT + USER + USING + VALIDATE + VALUE + VALUES + VARCHAR + VARIABLES + VARIANCE + VARYING + VERIFY + VIEW + VIOLATIONS + WAIT + WAITING + WARNING + WEEKDAY + WHEN + WHENEVER + WHERE + WHILE + WHITE + WINDOW + WITH + WITHOUT + WORDWRAP + WORK + WRAP + WRITE + YEAR + YELLOW + ZEROFILL + + + + FALSE + NULL + TRUE + + + + + diff --git a/extra/xmode/modes/icon.xml b/extra/xmode/modes/icon.xml new file mode 100644 index 0000000000..892609b841 --- /dev/null +++ b/extra/xmode/modes/icon.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + # + + + + " + " + + + + + ' + ' + + + ~=== + === + ||| + + + >>= + >> + <<= + << + ~== + == + || + + + ++ + ** + -- + + <-> + <- + op:= + <= + < + >= + > + ~= + :=: + := + -: + +: + + ~ + : + ! + | + & + not + * + ? + @ + + + + ^ + % + - + + + = + / + + + ( + ) + + + by + case + create + default + do + else + every + if + initial + next + of + repeat + then + to + until + while + + break + end + fail + global + invocable + link + local + procedure + record + return + static + suspend + + &allocated + &ascii + &clock + &collections + &cset + &current + &date + &dateline + &digits + &dump + &e + &error + &errornumber + &errortext + &errorvalue + &errout + &fail + &features + &file + &host + &input + &lcase + &letters + &level + &line + &main + &null + &output + &phi + &pi + &pos + &progname + &random + &regions + &source + &storage + &subject + &time + &trace + &ucase + &version + + + $define + $else + $endif + $error + $ifdef + $ifndef + $include + $line + $undef + + + _MACINTOSH + _MS_WINDOWS_NT + _MS_WINDOWS + _MSDOS_386 + _MSDOS + _OS2 + _PIPES + _PRESENTATION_MGR + _SYSTEM_FUNCTION + _UNIX + _VMS + _WINDOW_FUNCTIONS + _X_WINDOW_SYSTEM + + co-expression + cset + file + integer + list + null + real + set + string + table + window + + + + diff --git a/extra/xmode/modes/idl.xml b/extra/xmode/modes/idl.xml new file mode 100644 index 0000000000..65b7fc535c --- /dev/null +++ b/extra/xmode/modes/idl.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + // + + + + + } + { + : + + + ( + ) + + + any + attribute + boolean + case + char + const + context + default + double + enum + exception + FALSE + fixed + float + in + inout + interface + long + module + Object + octet + oneway + out + raises + readonly + sequence + short + string + struct + switch + TRUE + typedef + unsigned + union + void + wchar + wstring + + + diff --git a/extra/xmode/modes/inform.xml b/extra/xmode/modes/inform.xml new file mode 100644 index 0000000000..fdd7153f6b --- /dev/null +++ b/extra/xmode/modes/inform.xml @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + ! + + + + " + " + + + ' + ' + + + + # + ! + + + = + == + >= + <= + ~= + + + - + $ + / + * + > + < + % + & + | + ^ + ~ + } + { + ] + [ + + .& + .# + --> + + + ( + ) + :: + + : + + + + has + hasnt + in + notin + ofclass + provides + or + + + char + string + address + name + a + an + the + The + property + object + + + break + continue + do + until + for + give + if + else + inversion + jump + move + to + objectloop + remove + return + rfalse + rtrue + string + switch + while + + + with + + + + new_line + print + print_ret + box + font + on + off + quit + read + restore + save + spaces + style + roman + bold + underline + reverse + fixed + score + time + + + Abbreviate + Array + Attribute + Class + Constant + Default + End + Endif + Extend + Global + Ifdef + Ifndef + Ifnot + Iftrue + Iffalse + Import + Include + Link + Lowstring + Message + Object + Property + Replace + Serial + Switches + Statusline + System_file + Verb + private + + false + true + null + super + self + + this + + + + ^ + ~ + @ + \ + + + @@ + + diff --git a/extra/xmode/modes/ini.xml b/extra/xmode/modes/ini.xml new file mode 100644 index 0000000000..71c50b653d --- /dev/null +++ b/extra/xmode/modes/ini.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + [ + ] + + ; + # + + = + + diff --git a/extra/xmode/modes/inno-setup.xml b/extra/xmode/modes/inno-setup.xml new file mode 100644 index 0000000000..d40575eac4 --- /dev/null +++ b/extra/xmode/modes/inno-setup.xml @@ -0,0 +1,406 @@ + + + + + + + + + + + [code] + + [Setup] + [Types] + [Components] + [Tasks] + [Dirs] + [Files] + [Icons] + [INI] + [InstallDelete] + [Languages] + [Messages] + [CustomMessages] + [LangOptions] + [Registry] + [Run] + [UninstallRun] + [UninstallDelete] + + + #define + #dim + #undef + #include + #emit + #expr + #insert + #append + #if + #elif + #else + #endif + #ifexist + #ifnexist + #ifdef + #for + #sub + #endsub + #pragma + #error + + {# + } + + + % + + + " + " + + + ' + ' + + + + { + } + + + ; + # + + + + + + + Compression + DiskClusterSize + DiskSliceSize + DiskSpanning + Encryption + InternalCompressLevel + MergeDuplicateFiles + OutputBaseFilename + OutputDir + ReserveBytes + SlicesPerDisk + SolidCompression + SourceDir + UseSetupLdr + VersionInfoCompany + VersionInfoDescription + VersionInfoTextVersion + VersionInfoVersion + + AllowCancelDuringInstall + AllowNoIcons + AllowRootDirectory + AllowUNCPath + AlwaysRestart + AlwaysShowComponentsList + AlwaysShowDirOnReadyPage + AlwaysShowGroupOnReadyPage + AlwaysUsePersonalGroup + AppendDefaultDirName + AppendDefaultGroupName + AppComments + AppContact + AppId + AppModifyPath + AppMutex + AppName + AppPublisher + AppPublisherURL + AppReadmeFile + AppSupportURL + AppUpdatesURL + AppVersion + AppVerName + ChangesAssociations + CreateAppDir + CreateUninstallRegKey + DefaultDirName + DefaultGroupName + DefaultUserInfoName + DefaultUserInfoOrg + DefaultUserInfoSerial + DirExistsWarning + DisableDirPage + DisableFinishedPage + DisableProgramGroupPage + DisableReadyMemo + DisableReadyPage + DisableStartupPrompt + EnableDirDoesntExistWarning + ExtraDiskSpaceRequired + InfoAfterFile + InfoBeforeFile + LanguageDetectionMethod + LicenseFile + MinVersion + OnlyBelowVersion + Password + PrivilegesRequired + RestartIfNeededByRun + ShowLanguageDialog + TimeStampRounding + TimeStampsInUTC + TouchDate + TouchTime + Uninstallable + UninstallDisplayIcon + UninstallDisplayName + UninstallFilesDir + UninstallLogMode + UninstallRestartComputer + UpdateUninstallLogAppName + UsePreviousAppDir + UsePreviousGroup + UsePreviousSetupType + UsePreviousTasks + UsePreviousUserInfo + UserInfoPage + + AppCopyright + BackColor + BackColor2 + BackColorDirection + BackSolid + FlatComponentsList + SetupIconFile + ShowComponentSizes + ShowTasksTreeLines + UninstallStyle + WindowShowCaption + WindowStartMaximized + WindowResizable + WindowVisible + WizardImageBackColor + WizardImageFile + WizardImageStretch + WizardSmallImageBackColor + WizardSmallImageFile + UninstallIconFile + + + AfterInstall + Attribs + BeforeInstall + Check + Comment + Components + CopyMode + Description + DestDir + DestName + Excludes + ExtraDiskSpaceRequired + Filename + Flags + FontInstall + GroupDescription + HotKey + IconFilename + IconIndex + InfoBeforeFile + InfoAfterFile + Key + + MessagesFile + Name + Parameters + Permissions + Root + RunOnceId + Section + Source + StatusMsg + String + Subkey + Tasks + Type + Types + ValueType + ValueName + ValueData + WorkingDir + + + allowunsafefiles + checkedonce + closeonexit + compact + comparetimestamp + confirmoverwrite + createkeyifdoesntexist + createonlyiffileexists + createvalueifdoesntexist + deleteafterinstall + deletekey + deletevalue + desktopicon + dirifempty + disablenouninstallwarning + dontcloseonexit + dontcopy + dontcreatekey + dontinheritcheck + dontverifychecksum + exclusive + external + files + filesandordirs + fixed + fontisnttruetype + full + ignoreversion + iscustom + isreadme + hidden + hidewizard + modify + nocompression + noencryption + noerror + noregerror + nowait + onlyifdestfileexists + onlyifdoesntexist + overwritereadonly + postinstall + preservestringtype + promptifolder + quicklaunchicon + read + readonly + readexec + recursesubdirs + regserver + regtypelib + replacesameversion + restart + restartreplace + runhidden + runmaximized + runminimized + sharedfile + shellexec + skipifnotsilent + skipifsilent + skipifdoesntexist + skipifsourcedoesntexist + sortfilesbyextension + system + touch + unchecked + uninsalwaysuninstall + uninsclearvalue + uninsdeleteentry + uninsdeletekey + uninsdeletekeyifempty + uninsdeletesection + uninsdeletesectionifempty + uninsdeletevalue + uninsneveruninstall + uninsremovereadonly + uninsrestartdelete + useapppaths + waituntilidle + + + HKCR + HKCU + HKLM + HKU + HKCC + + + none + string + expandsz + multisz + dword + binary + + + + + + + {# + } + + + + { + } + + + + + code: + | + + + + + ; + + + /* + */ + + + + " + " + + + + + Defined + TypeOf + GetFileVersion + GetStringFileInfo + Int + Str + FileExists + FileSize + ReadIni + WriteIni + ReadReg + Exec + Copy + Pos + RPos + Len + SaveToFile + Find + SetupSetting + SetSetupSetting + LowerCase + EntryCount + GetEnv + DeleteFile + CopyFile + FindFirst + FindNext + FindClose + FindGetFileName + FileOpen + FileRead + FileReset + FileEof + FileClose + + + + diff --git a/extra/xmode/modes/interlis.xml b/extra/xmode/modes/interlis.xml new file mode 100644 index 0000000000..28960bfe41 --- /dev/null +++ b/extra/xmode/modes/interlis.xml @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + /* + */ + + + !! + + + " + " + + + + + // + // + + + + -> + <- + .. + . + , + = + ; + : + * + [ + ] + ( + ) + > + + != + # + % + ( + ) + * + , + -- + -<#> + -<> + -> + . + .. + / + : + := + ; + < + <= + <> + = + == + > + >= + [ + \ + ] + { + } + ~ + + + + ANY + ARCS + AREA + BASE + BLANK + CODE + CONTINUE + CONTOUR + COORD2 + COORD3 + DATE + DEFAULT + DEGREES + DERIVATIVES + DIM1 + DIM2 + DOMAIN + END + FIX + FONT + FORMAT + FREE + GRADS + HALIGNMENT + I16 + I32 + IDENT + LINEATTR + LINESIZE + MODEL + NO + OPTIONAL + OVERLAPS + PERIPHERY + POLYLINE + RADIANS + STRAIGHTS + SURFACE + TABLE + TEXT + TID + TIDSIZE + TOPIC + TRANSFER + UNDEFINED + VALIGNMENT + VERTEX + VERTEXINFO + VIEW + WITH + WITHOUT + + + ABSTRACT + ACCORDING + AGGREGATES + AGGREGATION + ALL + AND + ANY + ANYCLASS + ANYSTRUCTURE + ARCS + AREA + AS + ASSOCIATION + AT + ATTRIBUTE + ATTRIBUTES + BAG + BASE + BASED + BASKET + BINARY + BLACKBOX + BOOLEAN + BY + CARDINALITY + CIRCULAR + CLASS + CLOCKWISE + CONSTRAINT + CONSTRAINTS + CONTINUE + CONTINUOUS + CONTRACTED + COORD + COUNTERCLOCKWISE + DEFINED + DEPENDS + DERIVED + DIRECTED + DOMAIN + END + ENUMTREEVAL + ENUMVAL + EQUAL + EXISTENCE + EXTENDED + EXTENDS + EXTERNAL + FINAL + FIRST + FORM + FROM + FUNCTION + GRAPHIC + HALIGNMENT + HIDING + IMPORTS + IN + INHERITANCE + INSPECTION + INTERLIS + JOIN + LAST + LINE + LIST + LNBASE + LOCAL + MANDATORY + METAOBJECT + MODEL + MTEXT + NAME + NOT + NO + NULL + NUMERIC + OBJECT + OF + OID + ON + OR + ORDERED + OTHERS + OVERLAPS + PARAMETER + PARENT + PI + POLYLINE + PROJECTION + REFERENCE + REFSYSTEM + REQUIRED + RESTRICTED + ROTATION + SET + SIGN + STRAIGHTS + STRUCTURE + SUBDIVISION + SURFACE + SYMBOLOGY + TEXT + THATAREA + THIS + THISAREA + TO + TOPIC + TRANSIENT + TRANSLATION + TYPE + UNDEFINED + UNION + UNIQUE + UNIT + UNQUALIFIED + URI + VALIGNMENT + VERSION + VERTEX + VIEW + WHEN + WHERE + WITH + WITHOUT + + + + diff --git a/extra/xmode/modes/io.xml b/extra/xmode/modes/io.xml new file mode 100644 index 0000000000..2ac4ffe61c --- /dev/null +++ b/extra/xmode/modes/io.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # + + + + // + + /* + */ + + + + + + + " + " + + + + + """ + """ + + + + + ` + ~ + @ + @@ + $ + % + ^ + & + * + - + + + / + = + { + } + [ + ] + | + \ + >= + <= + ? + + + + + + + Block + Buffer + CFunction + Date + Duration + File + Future + List + LinkedList + Map + Nop + Message + Nil + Number + Object + String + WeakLink + + + block + method + + + while + foreach + if + else + do + + + super + self + clone + proto + setSlot + hasSlot + type + write + print + forward + + + + + + + + diff --git a/extra/xmode/modes/java.xml b/extra/xmode/modes/java.xml new file mode 100644 index 0000000000..d350cdc2d1 --- /dev/null +++ b/extra/xmode/modes/java.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + /**/ + + + + /** + */ + + + + + /* + */ + + + + " + " + + + ' + ' + + + // + + = + ! + >= + <= + + + - + / + + + .* + + * + > + < + % + & + | + ^ + ~ + } + { + : + + + ( + ) + + + @ + + + abstract + break + case + catch + continue + default + do + else + extends + final + finally + for + if + implements + instanceof + native + new + private + protected + public + return + static + switch + synchronized + throw + throws + transient + try + volatile + while + + package + import + + boolean + byte + char + class + double + float + int + interface + long + short + void + + assert + strictfp + + + false + null + super + this + true + + goto + const + + + enum + + + + + + + * + + + + + + + + <!-- + --> + + + + << + <= + < + + + + < + > + + + + + + + + \{@(link|linkplain|docRoot|code|literal)\s + } + + + + + @version\s+\$ + $ + + + + + @(?:param|throws|exception|serialField)(\s) + $1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @category + @example + @exclude + @index + @internal + @obsolete + @threadsafety + @tutorial + @todo + + + @access + @beaninfo + @bon + @bug + @complexity + @design + @ensures + @equivalent + @generates + @guard + @hides + @history + @idea + @invariant + @modifies + @overrides + @post + @pre + @references + @requires + @review + @spec + @uses + @values + + + + + + diff --git a/extra/xmode/modes/javacc.xml b/extra/xmode/modes/javacc.xml new file mode 100644 index 0000000000..d3172d2a7d --- /dev/null +++ b/extra/xmode/modes/javacc.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + EOF + IGNORE_CASE + JAVACODE + LOOKAHEAD + MORE + PARSER_BEGIN + PARSER_END + SKIP + SPECIAL_TOKEN + TOKEN + TOKEN_MGR_DECLS + options + + + diff --git a/extra/xmode/modes/javascript.xml b/extra/xmode/modes/javascript.xml new file mode 100644 index 0000000000..e898fa1aeb --- /dev/null +++ b/extra/xmode/modes/javascript.xml @@ -0,0 +1,572 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + /* + */ + + + + " + " + + + + ' + ' + + + + [A-Za-z_][\w_-]*\s*\( + ) + + + + + ( + ) + + + //--> + // + + <!-- + + = + ! + >= + <= + + + - + / + * + > + < + % + & + | + ^ + ~ + . + } + { + , + ; + ] + [ + ? + : + : + + + + break + continue + delete + else + for + function + if + in + new + return + this + typeof + var + void + while + with + + + + abstract + boolean + byte + case + catch + char + class + const + debugger + default + + do + double + enum + export + extends + final + finally + float + goto + implements + + import + instanceof + int + interface + long + native + package + private + protected + public + + short + static + super + switch + synchronized + throw + throws + transient + try + volatile + + + Array + Boolean + Date + Function + Global + Math + Number + Object + RegExp + String + + + false + null + true + + NaN + Infinity + + + eval + parseInt + parseFloat + escape + unescape + isNaN + isFinite + + + + + + + adOpenForwardOnly + adOpenKeyset + adOpenDynamic + adOpenStatic + + + + + adLockReadOnly + adLockPessimistic + adLockOptimistic + adLockBatchOptimistic + + + adRunAsync + adAsyncExecute + adAsyncFetch + adAsyncFetchNonBlocking + adExecuteNoRecords + + + + + adStateClosed + adStateOpen + adStateConnecting + adStateExecuting + adStateFetching + + + adUseServer + adUseClient + + + adEmpty + adTinyInt + adSmallInt + adInteger + adBigInt + adUnsignedTinyInt + adUnsignedSmallInt + adUnsignedInt + adUnsignedBigInt + adSingle + adDouble + adCurrency + adDecimal + adNumeric + adBoolean + adError + adUserDefined + adVariant + adIDispatch + adIUnknown + adGUID + adDate + adDBDate + adDBTime + adDBTimeStamp + adBSTR + adChar + adVarChar + adLongVarChar + adWChar + adVarWChar + adLongVarWChar + adBinary + adVarBinary + adLongVarBinary + adChapter + adFileTime + adDBFileTime + adPropVariant + adVarNumeric + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + adPersistADTG + adPersistXML + + + + + + + + + + + + + + + + + adParamSigned + adParamNullable + adParamLong + + + adParamUnknown + adParamInput + adParamOutput + adParamInputOutput + adParamReturnValue + + + adCmdUnknown + adCmdText + adCmdTable + adCmdStoredProc + adCmdFile + adCmdTableDirect + + + + + + + + + + + + + + + + + + + + + + + + ( + ) + + + + + + diff --git a/extra/xmode/modes/jcl.xml b/extra/xmode/modes/jcl.xml new file mode 100644 index 0000000000..b7f0ed5893 --- /dev/null +++ b/extra/xmode/modes/jcl.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + //* + + + ' + ' + + + += +< +> +& +| +, + + + COMMAND + CNTL + DD + ENCNTL + EXEC + IF + THEN + ELSE + ENDIF + INCLUDE + JCLIB + JOB + MSG + OUTPUT + PEND + PROC + SET + XMIT + + + + diff --git a/extra/xmode/modes/jhtml.xml b/extra/xmode/modes/jhtml.xml new file mode 100644 index 0000000000..5a15907f3b --- /dev/null +++ b/extra/xmode/modes/jhtml.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + <!--# + --> + + + + + <!-- + --> + + + + + ` + ` + + + + + <java> + </java> + + + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + + + + + <!-- + --> + + + + " + " + + + + ' + ' + + + / + + + importbean + droplet + param + oparam + valueof + setvalue + servlet + bean + submitvalue + declareparam + synchronized + priority + + + converter + date + number + required + nullable + currency + currencyConversion + euro + locale + symbol + + + + + + + + + + ` + ` + + + + param: + bean: + + + diff --git a/extra/xmode/modes/jmk.xml b/extra/xmode/modes/jmk.xml new file mode 100644 index 0000000000..64ffc04aee --- /dev/null +++ b/extra/xmode/modes/jmk.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + # + + + + " + " + + + ' + ' + + + + { + } + ( + ) + - + = + + + cat + copy + create + delall + delete + dirs + equal + else + end + exec + first + forname + function + getprop + glob + if + join + load + mkdir + mkdirs + note + patsubst + rename + rest + subst + then + @ + ? + < + % + include + + + diff --git a/extra/xmode/modes/jsp.xml b/extra/xmode/modes/jsp.xml new file mode 100644 index 0000000000..31bf48b3f2 --- /dev/null +++ b/extra/xmode/modes/jsp.xml @@ -0,0 +1,257 @@ + + + + + + + + + + + + + <%-- + --%> + + + + + <%@ + %> + + + <jsp:directive> + </jsp:directive> + + + + + <%= + %> + + + <jsp:expression> + </jsp:expression> + + + + + + <%! + %> + + + <jsp:declaration> + </jsp:declaration> + + + + + <% + %> + + + <jsp:scriptlet> + </jsp:scriptlet> + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + < + > + + + + + & + ; + + + + ${ + } + + + + + + + <%-- + --%> + + + + + <%= + %> + + + + + <% + %> + + + + + + <%= + %> + + + + " + " + + + + ' + ' + + + / + : + : + + + taglib + include + page + tag + tagAttribute + tagVariable + + language + session + contentType + charset + import + buffer + autoflush + isThreadSafe + info + errorPage + isErrorpage + extends + file + uri + prefix + method + name + default + required + rtexprvalue + id + type + scope + + + + + + + <%-- + --%> + + + + + <%= + %> + + + + style=' + ' + + + + style=" + " + + + + " + " + + + + ' + ' + + + / + : + : + + + + + + + <%= + %> + + + ${ + } + + + + + + + + <%= + %> + + + ${ + } + + javascript: + + + + + + + <%= + %> + + + ${ + } + + + + + + : + + + + \ No newline at end of file diff --git a/extra/xmode/modes/latex.xml b/extra/xmode/modes/latex.xml new file mode 100644 index 0000000000..b32ba9c166 --- /dev/null +++ b/extra/xmode/modes/latex.xml @@ -0,0 +1,2361 @@ + + + + + + + + + + + + + + + + + + + __NormalMode__ + + + % + + + ``'' + `' + "" + + " + ` + + + #1 + #2 + #3 + #4 + #5 + #6 + #7 + #8 + #9 + + + + \begin{verbatim} + \end{verbatim} + + + \tabs + \tabset + \tabsdone + \cleartabs + \settabs + \tabalign + \+ + \pageno + \headline + \footline + \normalbottom + \folio + \nopagenumbers + \advancepageno + \pagebody + \plainoutput + \pagecontents + \makeheadline + \makefootline + \dosupereject + \footstrut + \vfootnote + \topins + \topinsert + \midinsert + \pageinsert + \endinsert + \fivei + \fiverm + \fivesy + \fivebf + \seveni + \sevenbf + \sevensy + \teni + \oldstyle + \eqalign + \eqalignno + \leqalignno + $$ + \beginsection + \bye + \magnification + # + & + _ + \~ + + $$ + \(\) + \[\] + \begin{math}\end{math} + \begin{displaymath}\end{displaymath} + \begin{equation}\end{equation} + \ensuremath{} + \begin{eqnarray}\end{eqnarray} + \begin{eqnarray*}\end{eqnarray*} + \begin{tabular}\end{tabular} + \begin{tabular*}\end{tabular*} + \begin{tabbing}\end{tabbing} + \begin{picture}\end{picture} + ~ + } + { + totalnumber + topnumber + tocdepth + secnumdepth + dbltopnumber + ] + \~{ + \~ + \} + \| + \{ + \width + \whiledo{ + \v{ + \vspace{ + \vspace*{ + \vfill + \verb* + \verb + \value{ + \v + \u{ + \usepackage{ + \usepackage[ + \usecounter{ + \usebox{ + \upshape + \unboldmath{ + \u + \t{ + \typeout{ + \typein{ + \typein[ + \twocolumn[ + \twocolumn + \ttfamily + \totalheight + \topsep + \topfraction + \today + \title{ + \tiny + \thispagestyle{ + \thinlines + \thicklines + \thanks{ + \textwidth + \textup{ + \texttt{ + \textsl{ + \textsf{ + \textsc{ + \textrm{ + \textnormal{ + \textmd{ + \textit{ + \textfraction + \textfloatsep + \textcolor{ + \textbf{ + \tableofcontents + \tabcolsep + \tabbingsep + \t + \symbol{ + \suppressfloats[ + \suppressfloats + \subsubsection{ + \subsubsection[ + \subsubsection*{ + \subsection{ + \subsection[ + \subsection*{ + \subparagraph{ + \subparagraph[ + \subparagraph*{ + \stretch{ + \stepcounter{ + \smallskip + \small + \slshape + \sloppy + \sffamily + \settowidth{ + \settoheight{ + \settodepth{ + \setlength{ + \setcounter{ + \section{ + \section[ + \section*{ + \scshape + \scriptsize + \scalebox{ + \sbox{ + \savebox{ + \rule{ + \rule[ + \rp,am{ + \rotatebox{ + \rmfamily + \rightmargin + \reversemarginpar + \resizebox{ + \resizebox*{ + \renewenvironment{ + \renewcommand{ + \ref{ + \refstepcounter + \raisebox{ + \raggedright + \raggedleft + \qbeziermax + \providecommand{ + \protect + \printindex + \pounds + \part{ + \partopsep + \part[ + \part*{ + \parskip + \parsep + \parindent + \parbox{ + \parbox[ + \paragraph{ + \paragraph[ + \paragraph*{ + \par + \pagestyle{ + \pageref{ + \pagenumbering{ + \pagecolor{ + \pagebreak[ + \pagebreak + \onecolumn + \normalsize + \normalmarginpar + \normalfont + \nopagebreak[ + \nopagebreak + \nonfrenchspacing + \nolinebreak[ + \nolinebreak + \noindent + \nocite{ + \newtheorem{ + \newsavebox{ + \newpage + \newlength{ + \newenvironment{ + \newcounter{ + \newcommand{ + \medskip + \mdseries + \mbox{ + \mbox{ + \mathindent + \mathindent + \markright{ + \markboth{ + \marginpar{ + \marginparwidth + \marginparsep + \marginparpush + \marginpar[ + \maketitle + \makelabel + \makeindex + \makeglossary + \makebox{ + \makebox[ + \listparindent + \listoftables + \listoffigures + \listfiles + \linewidth + \linethickness{ + \linebreak[ + \linebreak + \lengthtest{ + \leftmarginvi + \leftmarginv + \leftmarginiv + \leftmarginiii + \leftmarginii + \leftmargini + \leftmargin + \large + \label{ + \labelwidth + \labelsep + \jot + \itshape + \itemsep + \itemindent + \item[ + \item + \isodd{ + \intextsep + \input{ + \index{ + \indent + \include{ + \includeonly{ + \includegraphics{ + \includegraphics[ + \includegraphics*{ + \includegraphics*[ + \ifthenelse{ + \hyphenation{ + \huge + \hspace{ + \hspace*{ + \hfill + \height + \glossary{ + \fussy + \frenchspacing + \framebox{ + \framebox[ + \fragile + \footnote{ + \footnotetext{ + \footnotetext[ + \footnotesize + \footnotesep + \footnoterule + \footnotemark[ + \footnotemark + \footnote[ + \fnsymbol{ + \floatsep + \floatpagefraction + \fill + \fcolorbox{ + \fbox{ + \fboxsep + \fboxrule + \equal{ + \ensuremath{ + \enlargethispage{ + \enlargethispage*{ + \end{ + \emph{ + \d{ + \doublerulesep + \documentclass{ + \documentclass[ + \depth + \definecolor{ + \ddag + \dbltopfraction + \dbltextfloatsep + \dblfloatsep + \dblfloatpagefraction + \date{ + \dag + \d + \c{ + \copyright + \columnwidth + \columnseprule + \columnsep + \color{ + \colorbox{ + \clearpage + \cleardoublepage + \cite{ + \cite[ + \chapter{ + \chapter[ + \chapter*{ + \centering + \caption{ + \caption[ + \c + \b{ + \bottomnumber + \bottomfraction + \boolean{ + \boldmath{ + \bigskip + \bibliography{ + \bibliographystyle{ + \bibindent + \bfseries + \belowdisplayskip + \belowdisplayshortskip + \begin{ + \baselinestretch + \baselineskip + \b + \author{ + \arraystgretch + \arrayrulewidth + \arraycolsep + \arabic{ + \appendix + \alph{ + \addvspace{ + \addtolength{ + \addtocounter{ + \addtocontents{ + \addcontentsline{ + \abovedisplayskip + \abovedisplayshortskip + \`{ + \` + \_ + \^{ + \^ + \\[ + \\*[ + \\* + \\ + \TeX + \S + \Roman{ + \P + \Large + \LaTeX + \LARGE + \H{ + \Huge + \H + \Alph{ + \@ + \={ + \= + \.{ + \. + \- + \, + \'{ + \' + \& + \% + \$ + \# + \"{ + \" + \ + [ + --- + -- + - + + \ + + + + + __MathMode__ + + + % + } + { + _ + ^ + \zeta + \xi + \wr + \wp + \widetilde{ + \widehat{ + \wedge + \veebar + \vee + \vec{ + \vdots + \vdash + \vartriangleright + \vartriangleleft + \vartriangle + \vartheta + \varsupsetneqq + \varsupsetneq + \varsubsetneqq + \varsubsetneq + \varsigma + \varrho + \varpropto + \varpi + \varphi + \varnothing + \varkappa + \varepsilon + \vDash + \urcorner + \upuparrows + \upsilon + \uplus + \upharpoonright + \upharpoonleft + \updownarrow + \uparrow + \ulcorner + \twoheadrightarrow + \twoheadleftarrow + \trianglerighteq + \triangleright + \triangleq + \trianglelefteq + \triangleleft + \triangledown + \triangle + \top + \times + \tilde{ + \thicksim + \thickapprox + \theta + \therefore + \text{ + \textstyle + \tau + \tanh + \tan + \swarrow + \surd + \supsetneqq + \supsetneq + \supseteqq + \supseteq + \supset + \sum + \succsim + \succnsim + \succnapprox + \succeq + \succcurlyeq + \succapprox + \succ + \subsetneqq + \subsetneq + \subseteqq + \subseteq + \subset + \star + \stackrel{ + \square + \sqsupseteq + \sqsupset + \sqsubseteq + \sqsubset + \sqrt{ + \sqcup + \sqcap + \sphericalangle + \spadesuit + \smile + \smallsmile + \smallsetminus + \smallfrown + \sinh + \sin + \simeq + \sim + \sigma + \shortparallel + \shortmid + \sharp + \setminus + \sec + \searrow + \scriptstyle + \scriptscriptstyle + \rtimes + \risingdotseq + \right| + \rightthreetimes + \rightsquigarrow + \rightrightarrows + \rightrightarrows + \rightleftharpoons + \rightleftharpoons + \rightleftarrows + \rightharpoonup + \rightharpoondown + \rightarrowtail + \rightarrow + \right] + \right\| + \right\updownarrow + \right\uparrow + \right\rfloor + \right\rceil + \right\rangle + \right\lfloor + \right\lceil + \right\langle + \right\downarrow + \right\backslash + \right\Updownarrow + \right\Uparrow + \right\Downarrow + \right\) + \right\( + \right[ + \right/ + \right) + \right( + \rho + \psi + \propto + \prod + \prime + \precsim + \precnsim + \precnapprox + \preceq + \preccurlyeq + \precapprox + \prec + \pmod{ + \pmb{ + \pm + \pitchfork + \pi + \phi + \perp + \partial + \parallel + \overline{ + \otimes + \oslash + \oplus + \ominus + \omega + \oint + \odot + \nwarrow + \nvdash + \nvDash + \nvDash + \nu + \ntrianglerighteq + \ntriangleright + \ntrianglelefteq + \ntriangleleft + \nsupseteqq + \nsupseteq + \nsucceq + \nsucc + \nsubseteq + \nsim + \nshortparallel + \nshortmid + \nrightarrow + \npreceq + \nprec + \nparallel + \notin + \nmid + \nless + \nleqslant + \nleqq + \nleq + \nleftrightarrow + \nleftarrow + \ni + \ngtr + \ngeqslant + \ngeqq + \ngeq + \nexists + \neq + \neg + \nearrow + \ncong + \natural + \nabla + \nVDash + \nRightarrow + \nLeftrightarrow + \nLeftarrow + \multimap + \mu + \mp + \models + \min + \mid + \mho + \measuredangle + \max + \mathtt{ + \mathsf{ + \mathrm{~~ + \mathit{ + \mathcal{ + \mathbf{ + \mapsto + \lvertneqq + \ltimes + \lrcorner + \lozenge + \looparrowright + \looparrowleft + \longrightarrow + \longmapsto + \longleftrightarrow + \longleftarrow + \log + \lnsim + \lneqq + \lneq + \lnapprox + \ln + \lll + \llcorner + \ll + \limsup + \liminf + \lim + \lg + \lesssim + \lessgtr + \lesseqqgtr + \lesseqgtr + \lessdot + \lessapprox + \leqslant + \leqq + \leq + \left| + \leftthreetimes + \leftrightsquigarrow + \leftrightharpoons + \leftrightarrows + \leftrightarrow + \leftleftarrows + \leftharpoonup + \leftharpoondown + \lefteqn{ + \leftarrowtail + \leftarrow + \left] + \left\| + \left\updownarrow + \left\uparrow + \left\rfloor + \left\rceil + \left\rangle + \left\lfloor + \left\lceil + \left\langle + \left\downarrow + \left\backslash + \left\Updownarrow + \left\Uparrow + \left\Downarrow + \left\) + \left\( + \left[ + \left/ + \left) + \left( + \ldots + \lambda + \ker + \kappa + \jmath + \jmath + \iota + \intercal + \int + \infty + \inf + \in + \imath + \imath + \hslash + \hookrightarrow + \hookleftarrow + \hom + \heartsuit + \hbar + \hat{ + \gvertneqq + \gtrsim + \gtrless + \gtreqqless + \gtreqless + \gtrdot + \gtrapprox + \grave{ + \gnsim + \gneqq + \gneq + \gnapprox + \gnapprox + \gimel + \ggg + \gg + \geqslant + \geqq + \geq + \gcd + \gamma + \frown + \frak{ + \frac{ + \forall + \flat + \fallingdotseq + \exp + \exists + \eth + \eta + \equiv + \eqslantless + \eqslantgtr + \eqcirc + \epsilon + \ensuremath{ + \end{ + \emptyset + \ell + \downharpoonright + \downharpoonleft + \downdownarrows + \downarrow + \doublebarwedge + \dot{ + \dotplus + \doteqdot + \doteq + \divideontimes + \div + \displaystyle + \dim + \digamma + \diamondsuit + \diamond + \diagup + \diagdown + \det + \delta + \deg + \ddot{ + \ddots + \ddagger + \dashv + \dashrightarrow + \dashleftarrow + \daleth + \dagger + \curvearrowright + \curvearrowleft + \curlywedge + \curlyvee + \curlyeqsucc + \curlyeqprec + \cup + \csc + \coth + \cot + \cosh + \cos + \coprod + \cong + \complement + \clubsuit + \circleddash + \circledcirc + \circledast + \circledS + \circlearrowright + \circlearrowleft + \circeq + \circ + \chi + \check{ + \centerdot + \cdots + \cdot + \cap + \bumpeq + \bullet + \breve{ + \boxtimes + \boxplus + \boxminus + \boxdot + \bowtie + \bot + \boldsymbol{ + \bmod + \blacktriangleright + \blacktriangleleft + \blacktriangledown + \blacktriangle + \blacksquare + \blacklozenge + \bigwedge + \bigvee + \biguplus + \bigtriangleup + \bigtriangledown + \bigstar + \bigsqcup + \bigotimes + \bigoplus + \bigodot + \bigcup + \bigcirc + \bigcap + \between + \beth + \beta + \begin{ + \because + \bar{ + \barwedge + \backslash + \backsimeq + \backsim + \backprime + \asymp + \ast + \arg + \arctan + \arcsin + \arccos + \approxeq + \approx + \angle + \angle + \amalg + \alpha + \aleph + \acute{ + \Xi + \Vvdash + \Vdash + \Upsilon + \Updownarrow + \Uparrow + \Theta + \Supset + \Subset + \Sigma + \Rsh + \Rightarrow + \Re + \Psi + \Pr + \Pi + \Phi + \Omega + \Lsh + \Longrightarrow + \Longleftrightarrow + \Longleftarrow + \Lleftarrow + \Leftrightarrow + \Leftarrow + \Lambda + \Im + \Gamma + \Game + \Finv + \Downarrow + \Delta + \Cup + \Cap + \Bumpeq + \Bbb{ + \Bbbk + \; + \: + \, + \! + ' + + \begin{array}\end{array} + + \ + + + + + __ArrayMode__ + + + % + } + { + _ + ^ + \zeta + \xi + \wr + \wp + \widetilde{ + \widehat{ + \wedge + \vline + \veebar + \vee + \vec{ + \vdots + \vdash + \vartriangleright + \vartriangleleft + \vartriangle + \vartheta + \varsupsetneqq + \varsupsetneq + \varsubsetneqq + \varsubsetneq + \varsigma + \varrho + \varpropto + \varpi + \varphi + \varnothing + \varkappa + \varepsilon + \vDash + \urcorner + \upuparrows + \upsilon + \uplus + \upharpoonright + \upharpoonleft + \updownarrow + \uparrow + \ulcorner + \twoheadrightarrow + \twoheadleftarrow + \trianglerighteq + \triangleright + \triangleq + \trianglelefteq + \triangleleft + \triangledown + \triangle + \top + \times + \tilde{ + \thicksim + \thickapprox + \theta + \therefore + \text{ + \textstyle + \tau + \tanh + \tan + \swarrow + \surd + \supsetneqq + \supsetneq + \supseteqq + \supseteq + \supset + \sum + \succsim + \succnsim + \succnapprox + \succeq + \succcurlyeq + \succapprox + \succ + \subsetneqq + \subsetneq + \subseteqq + \subseteq + \subset + \star + \stackrel{ + \square + \sqsupseteq + \sqsupset + \sqsubseteq + \sqsubset + \sqrt{ + \sqcup + \sqcap + \sphericalangle + \spadesuit + \smile + \smallsmile + \smallsetminus + \smallfrown + \sinh + \sin + \simeq + \sim + \sigma + \shortparallel + \shortmid + \sharp + \setminus + \sec + \searrow + \scriptstyle + \scriptscriptstyle + \rtimes + \risingdotseq + \right| + \rightthreetimes + \rightsquigarrow + \rightrightarrows + \rightrightarrows + \rightleftharpoons + \rightleftharpoons + \rightleftarrows + \rightharpoonup + \rightharpoondown + \rightarrowtail + \rightarrow + \right] + \right\| + \right\updownarrow + \right\uparrow + \right\rfloor + \right\rceil + \right\rangle + \right\lfloor + \right\lceil + \right\langle + \right\downarrow + \right\backslash + \right\Updownarrow + \right\Uparrow + \right\Downarrow + \right\) + \right\( + \right[ + \right/ + \right) + \right( + \rho + \psi + \propto + \prod + \prime + \precsim + \precnsim + \precnapprox + \preceq + \preccurlyeq + \precapprox + \prec + \pmod{ + \pmb{ + \pm + \pitchfork + \pi + \phi + \perp + \partial + \parallel + \overline{ + \otimes + \oslash + \oplus + \ominus + \omega + \oint + \odot + \nwarrow + \nvdash + \nvDash + \nvDash + \nu + \ntrianglerighteq + \ntriangleright + \ntrianglelefteq + \ntriangleleft + \nsupseteqq + \nsupseteq + \nsucceq + \nsucc + \nsubseteq + \nsim + \nshortparallel + \nshortmid + \nrightarrow + \npreceq + \nprec + \nparallel + \notin + \nmid + \nless + \nleqslant + \nleqq + \nleq + \nleftrightarrow + \nleftarrow + \ni + \ngtr + \ngeqslant + \ngeqq + \ngeq + \nexists + \neq + \neg + \nearrow + \ncong + \natural + \nabla + \nVDash + \nRightarrow + \nLeftrightarrow + \nLeftarrow + \multimap + \multicolumn{ + \mu + \mp + \models + \min + \mid + \mho + \measuredangle + \max + \mathtt{ + \mathsf{ + \mathrm{~~ + \mathit{ + \mathcal{ + \mathbf{ + \mapsto + \lvertneqq + \ltimes + \lrcorner + \lozenge + \looparrowright + \looparrowleft + \longrightarrow + \longmapsto + \longleftrightarrow + \longleftarrow + \log + \lnsim + \lneqq + \lneq + \lnapprox + \ln + \lll + \llcorner + \ll + \limsup + \liminf + \lim + \lg + \lesssim + \lessgtr + \lesseqqgtr + \lesseqgtr + \lessdot + \lessapprox + \leqslant + \leqq + \leq + \left| + \leftthreetimes + \leftrightsquigarrow + \leftrightharpoons + \leftrightarrows + \leftrightarrow + \leftleftarrows + \leftharpoonup + \leftharpoondown + \lefteqn{ + \leftarrowtail + \leftarrow + \left] + \left\| + \left\updownarrow + \left\uparrow + \left\rfloor + \left\rceil + \left\rangle + \left\lfloor + \left\lceil + \left\langle + \left\downarrow + \left\backslash + \left\Updownarrow + \left\Uparrow + \left\Downarrow + \left\) + \left\( + \left[ + \left/ + \left) + \left( + \ldots + \lambda + \ker + \kappa + \jmath + \jmath + \iota + \intercal + \int + \infty + \inf + \in + \imath + \imath + \hslash + \hookrightarrow + \hookleftarrow + \hom + \hline + \heartsuit + \hbar + \hat{ + \gvertneqq + \gtrsim + \gtrless + \gtreqqless + \gtreqless + \gtrdot + \gtrapprox + \grave{ + \gnsim + \gneqq + \gneq + \gnapprox + \gnapprox + \gimel + \ggg + \gg + \geqslant + \geqq + \geq + \gcd + \gamma + \frown + \frak{ + \frac{ + \forall + \flat + \fallingdotseq + \exp + \exists + \eth + \eta + \equiv + \eqslantless + \eqslantgtr + \eqcirc + \epsilon + \ensuremath{ + \end{ + \emptyset + \ell + \downharpoonright + \downharpoonleft + \downdownarrows + \downarrow + \doublebarwedge + \dot{ + \dotplus + \doteqdot + \doteq + \divideontimes + \div + \displaystyle + \dim + \digamma + \diamondsuit + \diamond + \diagup + \diagdown + \det + \delta + \deg + \ddot{ + \ddots + \ddagger + \dashv + \dashrightarrow + \dashleftarrow + \daleth + \dagger + \curvearrowright + \curvearrowleft + \curlywedge + \curlyvee + \curlyeqsucc + \curlyeqprec + \cup + \csc + \coth + \cot + \cosh + \cos + \coprod + \cong + \complement + \clubsuit + \cline{ + \circleddash + \circledcirc + \circledast + \circledS + \circlearrowright + \circlearrowleft + \circeq + \circ + \chi + \check{ + \centerdot + \cdots + \cdot + \cap + \bumpeq + \bullet + \breve{ + \boxtimes + \boxplus + \boxminus + \boxdot + \bowtie + \bot + \boldsymbol{ + \bmod + \blacktriangleright + \blacktriangleleft + \blacktriangledown + \blacktriangle + \blacksquare + \blacklozenge + \bigwedge + \bigvee + \biguplus + \bigtriangleup + \bigtriangledown + \bigstar + \bigsqcup + \bigotimes + \bigoplus + \bigodot + \bigcup + \bigcirc + \bigcap + \between + \beth + \beta + \begin{ + \because + \bar{ + \barwedge + \backslash + \backsimeq + \backsim + \backprime + \asymp + \ast + \arg + \arctan + \arcsin + \arccos + \approxeq + \approx + \angle + \angle + \amalg + \alpha + \aleph + \acute{ + \Xi + \Vvdash + \Vdash + \Upsilon + \Updownarrow + \Uparrow + \Theta + \Supset + \Subset + \Sigma + \Rsh + \Rightarrow + \Re + \Psi + \Pr + \Pi + \Phi + \Omega + \Lsh + \Longrightarrow + \Longleftrightarrow + \Longleftarrow + \Lleftarrow + \Leftrightarrow + \Leftarrow + \Lambda + \Im + \Gamma + \Game + \Finv + \Downarrow + \Delta + \Cup + \Cap + \Bumpeq + \Bbb{ + \Bbbk + \; + \: + \, + \! + ' + & + + \ + + + + + __TabularMode__ + + + % + + + ``'' + `' + "" + + " + ` + ~ + } + { + totalnumber + topnumber + tocdepth + secnumdepth + dbltopnumber + ] + \~{ + \~ + \} + \| + \{ + \width + \whiledo{ + \v{ + \vspace{ + \vspace*{ + \vline + \vfill + \verb* + \verb + \value{ + \v + \u{ + \usepackage{ + \usepackage[ + \usecounter{ + \usebox{ + \upshape + \unboldmath{ + \u + \t{ + \typeout{ + \typein{ + \typein[ + \twocolumn[ + \twocolumn + \ttfamily + \totalheight + \topsep + \topfraction + \today + \title{ + \tiny + \thispagestyle{ + \thinlines + \thicklines + \thanks{ + \textwidth + \textup{ + \texttt{ + \textsl{ + \textsf{ + \textsc{ + \textrm{ + \textnormal{ + \textmd{ + \textit{ + \textfraction + \textfloatsep + \textcolor{ + \textbf{ + \tableofcontents + \tabcolsep + \tabbingsep + \t + \symbol{ + \suppressfloats[ + \suppressfloats + \subsubsection{ + \subsubsection[ + \subsubsection*{ + \subsection{ + \subsection[ + \subsection*{ + \subparagraph{ + \subparagraph[ + \subparagraph*{ + \stretch{ + \stepcounter{ + \smallskip + \small + \slshape + \sloppy + \sffamily + \settowidth{ + \settoheight{ + \settodepth{ + \setlength{ + \setcounter{ + \section{ + \section[ + \section*{ + \scshape + \scriptsize + \scalebox{ + \sbox{ + \savebox{ + \rule{ + \rule[ + \rp,am{ + \rotatebox{ + \rmfamily + \rightmargin + \reversemarginpar + \resizebox{ + \resizebox*{ + \renewenvironment{ + \renewcommand{ + \ref{ + \refstepcounter + \raisebox{ + \raggedright + \raggedleft + \qbeziermax + \providecommand{ + \protect + \printindex + \pounds + \part{ + \partopsep + \part[ + \part*{ + \parskip + \parsep + \parindent + \parbox{ + \parbox[ + \paragraph{ + \paragraph[ + \paragraph*{ + \par + \pagestyle{ + \pageref{ + \pagenumbering{ + \pagecolor{ + \pagebreak[ + \pagebreak + \onecolumn + \normalsize + \normalmarginpar + \normalfont + \nopagebreak[ + \nopagebreak + \nonfrenchspacing + \nolinebreak[ + \nolinebreak + \noindent + \nocite{ + \newtheorem{ + \newsavebox{ + \newpage + \newlength{ + \newenvironment{ + \newcounter{ + \newcommand{ + \multicolumn{ + \medskip + \mdseries + \mbox{ + \mbox{ + \mathindent + \mathindent + \markright{ + \markboth{ + \marginpar{ + \marginparwidth + \marginparsep + \marginparpush + \marginpar[ + \maketitle + \makelabel + \makeindex + \makeglossary + \makebox{ + \makebox[ + \listparindent + \listoftables + \listoffigures + \listfiles + \linewidth + \linethickness{ + \linebreak[ + \linebreak + \lengthtest{ + \leftmarginvi + \leftmarginv + \leftmarginiv + \leftmarginiii + \leftmarginii + \leftmargini + \leftmargin + \large + \label{ + \labelwidth + \labelsep + \jot + \itshape + \itemsep + \itemindent + \item[ + \item + \isodd{ + \intextsep + \input{ + \index{ + \indent + \include{ + \includeonly{ + \includegraphics{ + \includegraphics[ + \includegraphics*{ + \includegraphics*[ + \ifthenelse{ + \hyphenation{ + \huge + \hspace{ + \hspace*{ + \hline + \hfill + \height + \glossary{ + \fussy + \frenchspacing + \framebox{ + \framebox[ + \fragile + \footnote{ + \footnotetext{ + \footnotetext[ + \footnotesize + \footnotesep + \footnoterule + \footnotemark[ + \footnotemark + \footnote[ + \fnsymbol{ + \floatsep + \floatpagefraction + \fill + \fcolorbox{ + \fbox{ + \fboxsep + \fboxrule + \equal{ + \ensuremath{ + \enlargethispage{ + \enlargethispage*{ + \end{ + \emph{ + \d{ + \doublerulesep + \documentclass{ + \documentclass[ + \depth + \definecolor{ + \ddag + \dbltopfraction + \dbltextfloatsep + \dblfloatsep + \dblfloatpagefraction + \date{ + \dag + \d + \c{ + \copyright + \columnwidth + \columnseprule + \columnsep + \color{ + \colorbox{ + \cline{ + \clearpage + \cleardoublepage + \cite{ + \cite[ + \chapter{ + \chapter[ + \chapter*{ + \centering + \caption{ + \caption[ + \c + \b{ + \bottomnumber + \bottomfraction + \boolean{ + \boldmath{ + \bigskip + \bibliography{ + \bibliographystyle{ + \bibindent + \bfseries + \belowdisplayskip + \belowdisplayshortskip + \begin{ + \baselinestretch + \baselineskip + \b + \author{ + \arraystgretch + \arrayrulewidth + \arraycolsep + \arabic{ + \appendix + \alph{ + \addvspace{ + \addtolength{ + \addtocounter{ + \addtocontents{ + \addcontentsline{ + \abovedisplayskip + \abovedisplayshortskip + \`{ + \` + \_ + \^{ + \^ + \\[ + \\*[ + \\* + \\ + \TeX + \S + \Roman{ + \P + \Large + \LaTeX + \LARGE + \H{ + \Huge + \H + \Alph{ + \@ + \={ + \= + \.{ + \. + \- + \, + \'{ + \' + \& + \% + \$ + \# + \"{ + \" + \ + [ + --- + -- + - + & + + \ + + + + + __TabbingMode__ + + + % + + + ``'' + `' + "" + + " + ` + ~ + } + { + totalnumber + topnumber + tocdepth + secnumdepth + dbltopnumber + ] + \~{ + \~ + \} + \| + \{ + \width + \whiledo{ + \v{ + \vspace{ + \vspace*{ + \vfill + \verb* + \verb + \value{ + \v + \u{ + \usepackage{ + \usepackage[ + \usecounter{ + \usebox{ + \upshape + \unboldmath{ + \u + \t{ + \typeout{ + \typein{ + \typein[ + \twocolumn[ + \twocolumn + \ttfamily + \totalheight + \topsep + \topfraction + \today + \title{ + \tiny + \thispagestyle{ + \thinlines + \thicklines + \thanks{ + \textwidth + \textup{ + \texttt{ + \textsl{ + \textsf{ + \textsc{ + \textrm{ + \textnormal{ + \textmd{ + \textit{ + \textfraction + \textfloatsep + \textcolor{ + \textbf{ + \tableofcontents + \tabcolsep + \tabbingsep + \t + \symbol{ + \suppressfloats[ + \suppressfloats + \subsubsection{ + \subsubsection[ + \subsubsection*{ + \subsection{ + \subsection[ + \subsection*{ + \subparagraph{ + \subparagraph[ + \subparagraph*{ + \stretch{ + \stepcounter{ + \smallskip + \small + \slshape + \sloppy + \sffamily + \settowidth{ + \settoheight{ + \settodepth{ + \setlength{ + \setcounter{ + \section{ + \section[ + \section*{ + \scshape + \scriptsize + \scalebox{ + \sbox{ + \savebox{ + \rule{ + \rule[ + \rp,am{ + \rotatebox{ + \rmfamily + \rightmargin + \reversemarginpar + \resizebox{ + \resizebox*{ + \renewenvironment{ + \renewcommand{ + \ref{ + \refstepcounter + \raisebox{ + \raggedright + \raggedleft + \qbeziermax + \pushtabs + \providecommand{ + \protect + \printindex + \pounds + \poptabs + \part{ + \partopsep + \part[ + \part*{ + \parskip + \parsep + \parindent + \parbox{ + \parbox[ + \paragraph{ + \paragraph[ + \paragraph*{ + \par + \pagestyle{ + \pageref{ + \pagenumbering{ + \pagecolor{ + \pagebreak[ + \pagebreak + \onecolumn + \normalsize + \normalmarginpar + \normalfont + \nopagebreak[ + \nopagebreak + \nonfrenchspacing + \nolinebreak[ + \nolinebreak + \noindent + \nocite{ + \newtheorem{ + \newsavebox{ + \newpage + \newlength{ + \newenvironment{ + \newcounter{ + \newcommand{ + \medskip + \mdseries + \mbox{ + \mbox{ + \mathindent + \mathindent + \markright{ + \markboth{ + \marginpar{ + \marginparwidth + \marginparsep + \marginparpush + \marginpar[ + \maketitle + \makelabel + \makeindex + \makeglossary + \makebox{ + \makebox[ + \listparindent + \listoftables + \listoffigures + \listfiles + \linewidth + \linethickness{ + \linebreak[ + \linebreak + \lengthtest{ + \leftmarginvi + \leftmarginv + \leftmarginiv + \leftmarginiii + \leftmarginii + \leftmargini + \leftmargin + \large + \label{ + \labelwidth + \labelsep + \kill + \jot + \itshape + \itemsep + \itemindent + \item[ + \item + \isodd{ + \intextsep + \input{ + \index{ + \indent + \include{ + \includeonly{ + \includegraphics{ + \includegraphics[ + \includegraphics*{ + \includegraphics*[ + \ifthenelse{ + \hyphenation{ + \huge + \hspace{ + \hspace*{ + \hfill + \height + \glossary{ + \fussy + \frenchspacing + \framebox{ + \framebox[ + \fragile + \footnote{ + \footnotetext{ + \footnotetext[ + \footnotesize + \footnotesep + \footnoterule + \footnotemark[ + \footnotemark + \footnote[ + \fnsymbol{ + \floatsep + \floatpagefraction + \fill + \fcolorbox{ + \fbox{ + \fboxsep + \fboxrule + \equal{ + \ensuremath{ + \enlargethispage{ + \enlargethispage*{ + \end{ + \emph{ + \d{ + \doublerulesep + \documentclass{ + \documentclass[ + \depth + \definecolor{ + \ddag + \dbltopfraction + \dbltextfloatsep + \dblfloatsep + \dblfloatpagefraction + \date{ + \dag + \d + \c{ + \copyright + \columnwidth + \columnseprule + \columnsep + \color{ + \colorbox{ + \clearpage + \cleardoublepage + \cite{ + \cite[ + \chapter{ + \chapter[ + \chapter*{ + \centering + \caption{ + \caption[ + \c + \b{ + \bottomnumber + \bottomfraction + \boolean{ + \boldmath{ + \bigskip + \bibliography{ + \bibliographystyle{ + \bibindent + \bfseries + \belowdisplayskip + \belowdisplayshortskip + \begin{ + \baselinestretch + \baselineskip + \b + \author{ + \arraystgretch + \arrayrulewidth + \arraycolsep + \arabic{ + \appendix + \alph{ + \addvspace{ + \addtolength{ + \addtocounter{ + \addtocontents{ + \addcontentsline{ + \abovedisplayskip + \abovedisplayshortskip + \a` + \a= + \a' + \`{ + \` + \` + \_ + \^{ + \^ + \\[ + \\*[ + \\* + \\ + \\ + \TeX + \S + \Roman{ + \P + \Large + \LaTeX + \LARGE + \H{ + \Huge + \H + \Alph{ + \@ + \={ + \= + \= + \.{ + \. + \- + \- + \, + \+ + \'{ + \' + \' + \< + \> + \& + \% + \$ + \# + \"{ + \" + \ + [ + --- + -- + - + + \ + + + + + __PictureMode__ + + + % + \vector( + \thinlines + \thicklines + \shortstack{ + \shortstack[ + \savebox{ + \qbezier[ + \qbezier( + \put( + \oval[ + \oval( + \multiput( + \makebox( + \linethickness{ + \line( + \graphpaper[ + \graphpaper( + \frame{ + \framebox( + \dashbox{ + \circle{ + \circle*{ + + \ + + + + + + + + + + + + + + + + diff --git a/extra/xmode/modes/lilypond.xml b/extra/xmode/modes/lilypond.xml new file mode 100644 index 0000000000..ca72fae0bc --- /dev/null +++ b/extra/xmode/modes/lilypond.xml @@ -0,0 +1,819 @@ + + + + + + + + + + + + + + + + + + + + %{%} + + % + + \breve + \longa + \maxima + = + = + { + } + [ + ] + << + >> + -< + -> + > + < + | + "(\\"|[^\\"]|\\)+" + "" + + + + + ' + , + + + + [rRs]\d*\b + R\d*\b + s\d*\b + + \d+\b + + . + + + + \\override\b + \\version\b + \\include\b + \\invalid\b + \\addquote\b + \\alternative\b + \\book\b + \\~\b + \\mark\b + \\default\b + \\key\b + \\skip\b + \\octave\b + \\partial\b + \\time\b + \\change\b + \\consists\b + \\remove\b + \\accepts\b + \\defaultchild\b + \\denies\b + \\alias\b + \\type\b + \\description\b + \\name\b + \\context\b + \\grobdescriptions\b + \\markup\b + \\header\b + \\notemode\b + \\drummode\b + \\figuremode\b + \\chordmode\b + \\lyricmode\b + \\drums\b + \\figures\b + \\chords\b + \\lyrics\b + \\once\b + \\revert\b + \\set\b + \\unset\b + \\addlyrics\b + \\objectid\b + \\with\b + \\rest\b + \\paper\b + \\midi\b + \\layout\b + \\new\b + \\times\b + \\transpose\b + \\tag\b + \\relative\b + \\renameinput\b + \\repeat\b + \\lyricsto\b + \\score\b + \\sequential\b + \\simultaneous\b + \\longa\b + \\breve\b + \\maxima\b + \\tempo\b + + \\AncientRemoveEmptyStaffContext\b + \\RemoveEmptyRhythmicStaffContext\b + \\RemoveEmptyStaffContext\b + \\accent\b + \\aeolian\b + \\afterGraceFraction\b + \\aikenHeads\b + \\allowPageTurn\b + \\arpeggio\b + \\arpeggioBracket\b + \\arpeggioDown\b + \\arpeggioNeutral\b + \\arpeggioUp\b + \\autoBeamOff\b + \\autoBeamOn\b + \\between-system-padding\b + \\between-system-space\b + \\bigger\b + \\blackTriangleMarkup\b + \\bookTitleMarkup\b + \\bracketCloseSymbol\b + \\bracketOpenSymbol\b + \\break\b + \\breve\b + \\cadenzaOff\b + \\cadenzaOn\b + \\center\b + \\chordmodifiers\b + \\cm\b + \\coda\b + \\cr\b + \\cresc\b + \\decr\b + \\dim\b + \\dorian\b + \\dotsDown\b + \\dotsNeutral\b + \\dotsUp\b + \\down\b + \\downbow\b + \\downmordent\b + \\downprall\b + \\drumPitchNames\b + \\dutchPitchnames\b + \\dynamicDown\b + \\dynamicNeutral\b + \\dynamicUp\b + \\emptyText\b + \\endcr\b + \\endcresc\b + \\enddecr\b + \\enddim\b + \\endincipit\b + \\escapedBiggerSymbol\b + \\escapedExclamationSymbol\b + \\escapedParenthesisCloseSymbol\b + \\escapedParenthesisOpenSymbol\b + \\escapedSmallerSymbol\b + \\espressivo\b + \\evenHeaderMarkup\b + \\f\b + \\fatText\b + \\fermata\b + \\fermataMarkup\b + \\ff\b + \\fff\b + \\ffff\b + \\first-page-number\b + \\flageolet\b + \\fp\b + \\frenchChords\b + \\fullJazzExceptions\b + \\fz\b + \\germanChords\b + \\glissando\b + \\harmonic\b + \\hideNotes\b + \\hideStaffSwitch\b + \\ignatzekExceptionMusic\b + \\ignatzekExceptions\b + \\improvisationOff\b + \\improvisationOn\b + \\in\b + \\input-encoding\b + \\instrument-definitions\b + \\ionian\b + \\italianChords\b + \\laissezVibrer\b + \\left\b + \\lheel\b + \\lineprall\b + \\locrian\b + \\longa\b + \\longfermata\b + \\ltoe\b + \\lydian\b + \\major\b + \\marcato\b + \\maxima\b + \\melisma\b + \\melismaEnd\b + \\mf\b + \\midiDrumPitches\b + \\minor\b + \\mixolydian\b + \\mm\b + \\mordent\b + \\mp\b + \\newSpacingSection\b + \\noBeam\b + \\noBreak\b + \\noPageBreak\b + \\noPageTurn\b + \\normalsize\b + \\oddFooterMarkup\b + \\oddHeaderMarkup\b + \\oneVoice\b + \\open\b + \\output-scale\b + \\p\b + \\page-top-space\b + \\pageBreak\b + \\pageTurn\b + \\parenthesisCloseSymbol\b + \\parenthesisOpenSymbol\b + \\partialJazzExceptions\b + \\partialJazzMusic\b + \\phrasingSlurDown\b + \\phrasingSlurNeutral\b + \\phrasingSlurUp\b + \\phrygian\b + \\pipeSymbol\b + \\pitchnames\b + \\portato\b + \\pp\b + \\ppp\b + \\pppp\b + \\ppppp\b + \\prall\b + \\pralldown\b + \\prallmordent\b + \\prallprall\b + \\prallup\b + \\print-first-page-number\b + \\print-page-number\b + \\pt\b + \\ragged-bottom\b + \\ragged-last-bottom\b + \\repeatTie\b + \\reverseturn\b + \\rfz\b + \\rheel\b + \\right\b + \\rtoe\b + \\sacredHarpHeads\b + \\scoreTitleMarkup\b + \\segno\b + \\semiGermanChords\b + \\setDefaultDurationToQuarter\b + \\setEasyHeads\b + \\setHairpinCresc\b + \\setHairpinDecresc\b + \\setHairpinDim\b + \\setTextCresc\b + \\setTextDecresc\b + \\setTextDim\b + \\sf\b + \\sff\b + \\sfp\b + \\sfz\b + \\shiftOff\b + \\shiftOn\b + \\shiftOnn\b + \\shiftOnnn\b + \\shortfermata\b + \\showStaffSwitch\b + \\signumcongruentiae\b + \\slashSeparator\b + \\slurDashed\b + \\slurDotted\b + \\slurDown\b + \\slurNeutral\b + \\slurSolid\b + \\slurUp\b + \\small\b + \\smaller\b + \\sostenutoDown\b + \\sostenutoUp\b + \\sp\b + \\spp\b + \\staccatissimo\b + \\staccato\b + \\start\b + \\startAcciaccaturaMusic\b + \\startAppoggiaturaMusic\b + \\startGraceMusic\b + \\startGroup\b + \\startStaff\b + \\startTextSpan\b + \\startTrillSpan\b + \\stemDown\b + \\stemNeutral\b + \\stemUp\b + \\stop\b + \\stopAcciaccaturaMusic\b + \\stopAppoggiaturaMusic\b + \\stopGraceMusic\b + \\stopGroup\b + \\stopStaff\b + \\stopTextSpan\b + \\stopTrillSpan\b + \\stopped\b + \\sustainDown\b + \\sustainUp\b + \\tagline\b + \\tenuto\b + \\textSpannerDown\b + \\textSpannerNeutral\b + \\textSpannerUp\b + \\thumb\b + \\tieDashed\b + \\tieDotted\b + \\tieDown\b + \\tieNeutral\b + \\tieSolid\b + \\tieUp\b + \\tildeSymbol\b + \\tiny\b + \\treCorde\b + \\trill\b + \\tupletDown\b + \\tupletNeutral\b + \\tupletUp\b + \\turn\b + \\unHideNotes\b + \\unaCorda\b + \\unit\b + \\up\b + \\upbow\b + \\upmordent\b + \\upprall\b + \\varcoda\b + \\verylongfermata\b + \\voiceFour\b + \\voiceOne\b + \\voiceThree\b + \\voiceTwo\b + \\whiteTriangleMarkup\b + + \\acciaccatura\b + \\addInstrumentDefinition\b + \\addquote\b + \\afterGrace\b + \\applyContext\b + \\applyMusic\b + \\applyOutput\b + \\appoggiatura\b + \\assertBeamQuant\b + \\assertBeamSlope\b + \\autochange\b + \\balloonGrobText\b + \\balloonText\b + \\bar\b + \\barNumberCheck\b + \\bendAfter\b + \\breathe\b + \\clef\b + \\compressMusic\b + \\cueDuring\b + \\displayLilyMusic\b + \\displayMusic\b + \\featherDurations\b + \\grace\b + \\includePageLayoutFile\b + \\instrumentSwitch\b + \\keepWithTag\b + \\killCues\b + \\makeClusters\b + \\musicMap\b + \\octave\b + \\oldaddlyrics\b + \\overrideProperty\b + \\parallelMusic\b + \\parenthesize\b + \\partcombine\b + \\pitchedTrill\b + \\quoteDuring\b + \\removeWithTag\b + \\resetRelativeOctave\b + \\rightHandFinger\b + \\scoreTweak\b + \\shiftDurations\b + \\spacingTweaks\b + \\tag\b + \\transposedCueDuring\b + \\transposition\b + \\tweak\b + \\unfoldRepeats\b + \\withMusicProperty\b + + \\arrow-head\b + \\beam\b + \\bigger\b + \\bold\b + \\box\b + \\bracket\b + \\bracketed-y-column\b + \\caps\b + \\center-align\b + \\char\b + \\circle\b + \\column\b + \\combine\b + \\dir-column\b + \\doubleflat\b + \\doublesharp\b + \\draw-circle\b + \\dynamic\b + \\epsfile\b + \\fill-line\b + \\filled-box\b + \\finger\b + \\flat\b + \\fontCaps\b + \\fontsize\b + \\fraction\b + \\fret-diagram\b + \\fret-diagram-terse\b + \\fret-diagram-verbose\b + \\fromproperty\b + \\general-align\b + \\halign\b + \\hbracket\b + \\hcenter\b + \\hcenter-in\b + \\hspace\b + \\huge\b + \\italic\b + \\justify\b + \\justify-field\b + \\justify-string\b + \\large\b + \\left-align\b + \\line\b + \\lookup\b + \\lower\b + \\magnify\b + \\markalphabet\b + \\markletter\b + \\medium\b + \\musicglyph\b + \\natural\b + \\normal-size-sub\b + \\normal-size-super\b + \\normal-text\b + \\normalsize\b + \\note\b + \\note-by-number\b + \\null\b + \\number\b + \\on-the-fly\b + \\override\b + \\pad-around\b + \\pad-markup\b + \\pad-to-box\b + \\pad-x\b + \\postscript\b + \\put-adjacent\b + \\raise\b + \\right-align\b + \\roman\b + \\rotate\b + \\sans\b + \\score\b + \\semiflat\b + \\semisharp\b + \\sesquiflat\b + \\sesquisharp\b + \\sharp\b + \\simple\b + \\slashed-digit\b + \\small\b + \\smallCaps\b + \\smaller\b + \\stencil\b + \\strut\b + \\sub\b + \\super\b + \\teeny\b + \\text\b + \\tied-lyric\b + \\tiny\b + \\translate\b + \\translate-scaled\b + \\transparent\b + \\triangle\b + \\typewriter\b + \\upright\b + \\vcenter\b + \\verbatim-file\b + \\whiteout\b + \\with-color\b + \\with-dimensions\b + \\with-url\b + \\wordwrap\b + \\wordwrap-field\b + \\wordwrap-string\b +\ + + staff-spacing-interface + text-script-interface + Ottava_spanner_engraver + Figured_bass_engraver + Lyrics + Separating_line_group_engraver + cluster-interface + Glissando_engraver + key-signature-interface + clef-interface + VaticanaVoice + Rest_collision_engraver + Grace_engraver + grid-point-interface + Measure_grouping_engraver + Laissez_vibrer_engraver + Script_row_engraver + bass-figure-alignment-interface + Note_head_line_engraver + ottava-bracket-interface + rhythmic-head-interface + Accidental_engraver + Mark_engraver + hara-kiri-group-interface + Instrument_name_engraver + Vaticana_ligature_engraver + Page_turn_engraver + staff-symbol-interface + Beam_performer + accidental-suggestion-interface + Key_engraver + GrandStaff + multi-measure-interface + rest-collision-interface + Dot_column_engraver + MensuralVoice + TabStaff + Pitched_trill_engraver + line-spanner-interface + Time_signature_performer + lyric-interface + StaffGroup + text-interface + slur-interface + Drum_note_performer + TabVoice + measure-grouping-interface + stanza-number-interface + self-alignment-interface + Span_arpeggio_engraver + system-interface + Engraver + RhythmicStaff + font-interface + fret-diagram-interface + Grace_spacing_engraver + Bar_engraver + Dynamic_engraver + Grob_pq_engraver + Default_bar_line_engraver + Swallow_performer + script-column-interface + Piano_pedal_performer + metronome-mark-interface + melody-spanner-interface + FretBoards + spacing-spanner-interface + Control_track_performer + Break_align_engraver + paper-column-interface + PianoStaff + Breathing_sign_engraver + accidental-placement-interface + Tuplet_engraver + stroke-finger-interface + side-position-interface + note-name-interface + bar-line-interface + lyric-extender-interface + Staff + GregorianTranscriptionStaff + Rest_swallow_translator + dynamic-text-spanner-interface + arpeggio-interface + Cluster_spanner_engraver + Collision_engraver + accidental-interface + rest-interface + Tab_note_heads_engraver + dots-interface + staff-symbol-referencer-interface + ambitus-interface + bass-figure-interface + vaticana-ligature-interface + ledgered-interface + item-interface + Tie_performer + volta-bracket-interface + vertically-spaceable-interface + ledger-line-interface + Chord_tremolo_engraver + note-column-interface + DrumVoice + axis-group-interface + Ledger_line_engraver + Slash_repeat_engraver + ligature-bracket-interface + Pitch_squash_engraver + Instrument_switch_engraver + Voice + Script_column_engraver + Volta_engraver + Stanza_number_align_engraver + Vertical_align_engraver + span-bar-interface + Staff_collecting_engraver + Ligature_bracket_engraver + Time_signature_engraver + Beam_engraver + Note_name_engraver + Note_heads_engraver + Forbid_line_break_engraver + spacing-options-interface + spacing-interface + Span_dynamic_performer + piano-pedal-script-interface + MensuralStaff + Global + trill-pitch-accidental-interface + grob-interface + Horizontal_bracket_engraver + Grid_line_span_engraver + NoteNames + piano-pedal-interface + Axis_group_engraver + Staff_symbol_engraver + stem-interface + Slur_engraver + pitched-trill-interface + tie-column-interface + stem-tremolo-interface + Grid_point_engraver + System_start_delimiter_engraver + Completion_heads_engraver + Drum_notes_engraver + Swallow_engraver + Slur_performer + lyric-hyphen-interface + Clef_engraver + dynamic-interface + Score + Output_property_engraver + Repeat_tie_engraver + Rest_engraver + break-aligned-interface + String_number_engraver + only-prebreak-interface + Lyric_engraver + Tempo_performer + Parenthesis_engraver + Repeat_acknowledge_engraver + mensural-ligature-interface + align-interface + Stanza_number_engraver + system-start-delimiter-interface + lyric-syllable-interface + bend-after-interface + dynamic-line-spanner-interface + Staff_performer + Bar_number_engraver + Fretboard_engraver + tablature-interface + Fingering_engraver + chord-name-interface + Note_swallow_translator + Chord_name_engraver + note-head-interface + breathing-sign-interface + Extender_engraver + Ambitus_engraver + DrumStaff + dot-column-interface + Lyric_performer + enclosing-bracket-interface + Trill_spanner_engraver + Key_performer + Vertically_spaced_contexts_engraver + hairpin-interface + Hyphen_engraver + Dots_engraver + multi-measure-rest-interface + break-alignment-align-interface + Multi_measure_rest_engraver + InnerStaffGroup + text-spanner-interface + Grace_beam_engraver + separation-item-interface + Balloon_engraver + Translator + separation-spanner-interface + Tweak_engraver + Devnull + Bend_after_engraver + Spacing_engraver + Piano_pedal_align_engraver + system-start-text-interface + parentheses-interface + Melisma_translator + ChoirStaff + Span_bar_engraver + Text_engraver + GregorianTranscriptionVoice + Timing_translator + script-interface + semi-tie-interface + Percent_repeat_engraver + Tab_staff_symbol_engraver + line-interface + rhythmic-grob-interface + Dynamic_performer + note-spacing-interface + spanner-interface + break-alignment-interface + tuplet-number-interface + Rhythmic_column_engraver + cluster-beacon-interface + horizontal-bracket-interface + Mensural_ligature_engraver + ChordNames + gregorian-ligature-interface + Melody_engraver + ligature-interface + Paper_column_engraver + FiguredBass + grace-spacing-interface + tie-interface + New_fingering_engraver + Script_engraver + Metronome_mark_engraver + string-number-interface + Hara_kiri_engraver + grid-line-interface + Skip_event_swallow_translator + Auto_beam_engraver + spaceable-grob-interface + Font_size_engraver + figured-bass-continuation-interface + semi-tie-column-interface + CueVoice + Phrasing_slur_engraver + InnerChoirStaff + Arpeggio_engraver + mark-interface + VaticanaStaff + piano-pedal-bracket-interface + beam-interface + Note_performer + custos-interface + percent-repeat-interface + time-signature-interface + Custos_engraver + Part_combine_engraver + Piano_pedal_engraver + tuplet-bracket-interface + Stem_engraver + finger-interface + note-collision-interface + Text_spanner_engraver + text-balloon-interface + Tie_engraver + Figured_bass_position_engraver + + + + + + diff --git a/extra/xmode/modes/lisp.xml b/extra/xmode/modes/lisp.xml new file mode 100644 index 0000000000..86983d7c53 --- /dev/null +++ b/extra/xmode/modes/lisp.xml @@ -0,0 +1,1038 @@ + + + + + + + + + + + + + + + + + + + #| + |# + + + '( + + ' + + & + + ` + @ + % + + + ;;;; + ;;; + ;; + ; + + + " + " + + + + + defclass + defconstant + defgeneric + define-compiler-macro + define-condition + define-method-combination + define-modify-macro + define-setf-expander + define-symbol-macro + defmacro + defmethod + defpackage + defparameter + defsetf + defstruct + deftype + defun + defvar + + abort + assert + block + break + case + catch + ccase + cerror + cond + ctypecase + declaim + declare + do + do* + do-all-symbols + do-external-symbols + do-symbols + dolist + dotimes + ecase + error + etypecase + eval-when + flet + handler-bind + handler-case + if + ignore-errors + in-package + labels + lambda + let + let* + locally + loop + macrolet + multiple-value-bind + proclaim + prog + prog* + prog1 + prog2 + progn + progv + provide + require + restart-bind + restart-case + restart-name + return + return-from + signal + symbol-macrolet + tagbody + the + throw + typecase + unless + unwind-protect + when + with-accessors + with-compilation-unit + with-condition-restarts + with-hash-table-iterator + with-input-from-string + with-open-file + with-open-stream + with-output-to-string + with-package-iterator + with-simple-restart + with-slots + with-standard-io-syntax + + * + ** + *** + *break-on-signals* + *compile-file-pathname* + *compile-file-truename* + *compile-print* + *compile-verbose* + *debug-io* + *debugger-hook* + *default-pathname-defaults* + *error-output* + *features* + *gensym-counter* + *load-pathname* + *load-print* + *load-truename* + *load-verbose* + *macroexpand-hook* + *modules* + *package* + *print-array* + *print-base* + *print-case* + *print-circle* + *print-escape* + *print-gensym* + *print-length* + *print-level* + *print-lines* + *print-miser-width* + *print-pprint-dispatch* + *print-pretty* + *print-radix* + *print-readably* + *print-right-margin* + *query-io* + *random-state* + *read-base* + *read-default-float-format* + *read-eval* + *read-suppress* + *readtable* + *standard-input* + *standard-output* + *terminal-io* + *trace-output* + + + ++ + +++ + - + / + // + /// + /= + 1+ + 1- + < + <= + = + > + >= + abs + acons + acos + acosh + add-method + adjoin + adjust-array + adjustable-array-p + allocate-instance + alpha-char-p + alphanumericp + and + append + apply + apropos + apropos-list + aref + arithmetic-error + arithmetic-error-operands + arithmetic-error-operation + array + array-dimension + array-dimension-limit + array-dimensions + array-displacement + array-element-type + array-has-fill-pointer-p + array-in-bounds-p + array-rank + array-rank-limit + array-row-major-index + array-total-size + array-total-size-limit + arrayp + ash + asin + asinh + assoc + assoc-if + assoc-if-not + atan + atanh + atom + base-char + base-string + bignum + bit + bit-and + bit-andc1 + bit-andc2 + bit-eqv + bit-ior + bit-nand + bit-nor + bit-not + bit-orc1 + bit-orc2 + bit-vector + bit-vector-p + bit-xor + boole + boole-1 + boole-2 + boole-and + boole-andc1 + boole-andc2 + boole-c1 + boole-c2 + boole-clr + boole-eqv + boole-ior + boole-nand + boole-nor + boole-orc1 + boole-orc2 + boole-set + boole-xor + boolean + both-case-p + boundp + broadcast-stream + broadcast-stream-streams + built-in-class + butlast + byte + byte-position + byte-size + caaaar + caaadr + caaar + caadar + caaddr + caadr + caar + cadaar + cadadr + cadar + caddar + cadddr + caddr + cadr + call-arguments-limit + call-method + call-next-method + car + cdaaar + cdaadr + cdaar + cdadar + cdaddr + cdadr + cdar + cddaar + cddadr + cddar + cdddar + cddddr + cdddr + cddr + cdr + ceiling + cell-error + cell-error-name + change-class + char + char-code + char-code-limit + char-downcase + char-equal + char-greaterp + char-int + char-lessp + char-name + char-not-equal + char-not-greaterp + char-not-lessp + char-upcase + char/= + char> + char>= + char< + char<= + char= + character + characterp + check-type + cis + class + class-name + class-of + clear-input + clear-output + close + clrhash + code-char + coerce + compilation-speed + compile + compile-file + compile-file-pathname + compiled-function + compiled-function-p + compiler-macro + compiler-macro-function + complement + complex + complexp + compute-applicable-methods + compute-restarts + concatenate + concatenated-stream + concatenated-stream-streams + condition + conjugate + cons + consp + constantly + constantp + continue + control-error + copy-alist + copy-list + copy-pprint-dispatch + copy-readtable + copy-seq + copy-structure + copy-symbol + copy-tree + cos + cosh + count + count-if + count-if-not + debug + decf + declaration + decode-float + decode-universal-time + delete + delete-duplicates + delete-file + delete-if + delete-if-not + delete-package + denominator + deposit-field + describe + describe-object + destructuring-bind + digit-char + digit-char-p + directory + directory-namestring + disassemble + division-by-zero + documentation + double-float + double-float-epsilon + double-float-negative-epsilon + dpb + dribble + dynamic-extent + echo-stream + echo-stream-input-stream + echo-stream-output-stream + ed + eighth + elt + encode-universal-time + end-of-file + endp + enough-namestring + ensure-directories-exist + ensure-generic-function + eq + eql + equal + equalp + eval + evenp + every + exp + export + expt + extended-char + fboundp + fceiling + fdefinition + ffloor + fifth + file-author + file-error + file-error-pathname + file-length + file-namestring + file-position + file-stream + file-string-length + file-write-date + fill + fill-pointer + find + find-all-symbols + find-class + find-if + find-if-not + find-method + find-package + find-restart + find-symbol + finish-output + first + fixnum + float + float-digits + float-precision + float-radix + float-sign + floating-point-inexact + floating-point-invalid-operation + floating-point-overflow + floating-point-underflow + floatp + floor + fmakunbound + force-output + format + formatter + fourth + fresh-line + fround + ftruncate + ftype + funcall + function + function-keywords + function-lambda-expression + functionp + gcd + generic-function + gensym + gentemp + get + get-decoded-time + get-dispatch-macro-character + get-internal-real-time + get-internal-run-time + get-macro-character + get-output-stream-string + get-properties + get-setf-expansion + get-universal-time + getf + gethash + go + graphic-char-p + hash-table + hash-table-count + hash-table-p + hash-table-rehash-size + hash-table-rehash-threshold + hash-table-size + hash-table-test + host-namestring + identity + ignorable + ignore + imagpart + import + incf + initialize-instance + inline + input-stream-p + inspect + integer + integer-decode-float + integer-length + integerp + interactive-stream-p + intern + internal-time-units-per-second + intersection + invalid-method-error + invoke-debugger + invoke-restart + invoke-restart-interactively + isqrt + keyword + keywordp + lambda-list-keywords + lambda-parameters-limit + last + lcm + ldb + ldb-test + ldiff + least-negative-double-float + least-negative-long-float + least-negative-normalized-double-float + least-negative-normalized-long-float + least-negative-normalized-short-float + least-negative-normalized-single-float + least-negative-short-float + least-negative-single-float + least-positive-double-float + least-positive-long-float + least-positive-normalized-double-float + least-positive-normalized-long-float + least-positive-normalized-short-float + least-positive-normalized-single-float + least-positive-short-float + least-positive-single-float + length + lisp-implementation-type + lisp-implementation-version + list + list* + list-all-packages + list-length + listen + listp + load + load-logical-pathname-translations + load-time-value + log + logand + logandc1 + logandc2 + logbitp + logcount + logeqv + logical-pathname + logical-pathname-translations + logior + lognand + lognor + lognot + logorc1 + logorc2 + logtest + logxor + long-float + long-float-epsilon + long-float-negative-epsilon + long-site-name + loop-finish + lower-case-p + machine-instance + machine-type + machine-version + macro-function + macroexpand + macroexpand-1 + make-array + make-broadcast-stream + make-concatenated-stream + make-condition + make-dispatch-macro-character + make-echo-stream + make-hash-table + make-instance + make-instances-obsolete + make-list + make-load-form + make-load-form-saving-slots + make-method + make-package + make-pathname + make-random-state + make-sequence + make-string + make-string-input-stream + make-string-output-stream + make-symbol + make-synonym-stream + make-two-way-stream + makunbound + map + map-into + mapc + mapcan + mapcar + mapcon + maphash + mapl + maplist + mask-field + max + member + member-if + member-if-not + merge + merge-pathnames + method + method-combination + method-combination-error + method-qualifiers + min + minusp + mismatch + mod + most-negative-double-float + most-negative-fixnum + most-negative-long-float + most-negative-short-float + most-negative-single-float + most-positive-double-float + most-positive-fixnum + most-positive-long-float + most-positive-short-float + most-positive-single-float + muffle-warning + multiple-value-call + multiple-value-list + multiple-value-prog1 + multiple-value-setq + multiple-values-limit + name-char + namestring + nbutlast + nconc + next-method-p + nintersection + ninth + no-applicable-method + no-next-method + not + notany + notevery + notinline + nreconc + nreverse + nset-difference + nset-exclusive-or + nstring-capitalize + nstring-downcase + nstring-upcase + nsublis + nsubst + nsubst-if + nsubst-if-not + nsubstitute + nsubstitute-if + nsubstitute-if-not + nth + nth-value + nthcdr + null + number + numberp + numerator + nunion + oddp + open + open-stream-p + optimize + or + otherwise + output-stream-p + package + package-error + package-error-package + package-name + package-nicknames + package-shadowing-symbols + package-use-list + package-used-by-list + packagep + pairlis + parse-error + parse-integer + parse-namestring + pathname + pathname-device + pathname-directory + pathname-host + pathname-match-p + pathname-name + pathname-type + pathname-version + pathnamep + peek-char + phase + pi + plusp + pop + position + position-if + position-if-not + pprint + pprint-dispatch + pprint-exit-if-list-exhausted + pprint-fill + pprint-indent + pprint-linear + pprint-logical-block + pprint-newline + pprint-pop + pprint-tab + pprint-tabular + prin1 + prin1-to-string + princ + princ-to-string + print + print-not-readable + print-not-readable-object + print-object + print-unreadable-object + probe-file + program-error + psetf + psetq + push + pushnew + quote + random + random-state + random-state-p + rassoc + rassoc-if + rassoc-if-not + ratio + rational + rationalize + rationalp + read + read-byte + read-char + read-char-no-hang + read-delimited-list + read-from-string + read-line + read-preserving-whitespace + read-sequence + reader-error + readtable + readtable-case + readtablep + real + realp + realpart + reduce + reinitialize-instance + rem + remf + remhash + remove + remove-duplicates + remove-if + remove-if-not + remove-method + remprop + rename-file + rename-package + replace + rest + restart + revappend + reverse + room + rotatef + round + row-major-aref + rplaca + rplacd + safety + satisfies + sbit + scale-float + schar + search + second + sequence + serious-condition + set + set-difference + set-dispatch-macro-character + set-exclusive-or + set-macro-character + set-pprint-dispatch + set-syntax-from-char + setf + setq + seventh + shadow + shadowing-import + shared-initialize + shiftf + short-float + short-float-epsilon + short-float-negative-epsilon + short-site-name + signed-byte + signum + simple-array + simple-base-string + simple-bit-vector + simple-bit-vector-p + simple-condition + simple-condition-format-arguments + simple-condition-format-control + simple-error + simple-string + simple-string-p + simple-type-error + simple-vector + simple-vector-p + simple-warning + sin + single-float + single-float-epsilon + single-float-negative-epsilon + sinh + sixth + sleep + slot-boundp + slot-exists-p + slot-makunbound + slot-missing + slot-unbound + slot-value + software-type + software-version + some + sort + space + special + special-operator-p + speed + sqrt + stable-sort + standard + standard-char + standard-char-p + standard-class + standard-generic-function + standard-method + standard-object + step + storage-condition + store-value + stream + stream-element-type + stream-error + stream-error-stream + stream-external-format + streamp + string + string-capitalize + string-downcase + string-equal + string-greaterp + string-left-trim + string-lessp + string-not-equal + string-not-greaterp + string-not-lessp + string-right-trim + string-stream + string-trim + string-upcase + string/= + string< + string<= + string= + string> + string>= + stringp + structure + structure-class + structure-object + style-warning + sublis + subseq + subsetp + subst + subst-if + subst-if-not + substitute + substitute-if + substitute-if-not + subtypep + svref + sxhash + symbol + symbol-function + symbol-name + symbol-package + symbol-plist + symbol-value + symbolp + synonym-stream + synonym-stream-symbol + tailp + tan + tanh + tenth + terpri + third + time + trace + translate-logical-pathname + translate-pathname + tree-equal + truename + truncate + two-way-stream + two-way-stream-input-stream + two-way-stream-output-stream + type-error-datum + type-error-expected-type + type-error + type-of + typep + type + unbound-slot-instance + unbound-slot + unbound-variable + undefined-function + unexport + unintern + union + unread-char + unsigned-byte + untrace + unuse-package + update-instance-for-different-class + update-instance-for-redefined-class + upgraded-array-element-type + upgraded-complex-part-type + upper-case-p + use-package + use-value + user-homedir-pathname + values + values-list + variable + vector + vector-pop + vector-push + vector-push-extend + vectorp + warn + warning + wild-pathname-p + write + write-byte + write-char + write-line + write-sequence + write-string + write-to-string + y-or-n-p + yes-or-no-p + zerop + + t + nil + + + + + diff --git a/extra/xmode/modes/literate-haskell.xml b/extra/xmode/modes/literate-haskell.xml new file mode 100644 index 0000000000..c74ad3a5bc --- /dev/null +++ b/extra/xmode/modes/literate-haskell.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + > + + % + + \begin{code} + \end{code} + + + + + diff --git a/extra/xmode/modes/lotos.xml b/extra/xmode/modes/lotos.xml new file mode 100644 index 0000000000..bd1d4b7850 --- /dev/null +++ b/extra/xmode/modes/lotos.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + (* + *) + + + + >> + [> + ||| + || + |[ + ]| + [] + + + + accept + actualizedby + any + behavior + behaviour + choice + endlib + endproc + endspec + endtype + eqns + exit + for + forall + formaleqns + formalopns + formalsorts + hide + i + in + is + let + library + noexit + of + ofsort + opnnames + opns + par + process + renamedby + sortnames + sorts + specification + stop + type + using + where + + + Bit + BitString + Bool + DecDigit + DecString + Element + FBool + HexDigit + HexString + OctDigit + Octet + OctString + Nat + NonEmptyString + OctetString + Set + String + + + BasicNaturalNumber + BasicNonEmptyString + BitNatRepr + Boolean + FBoolean + DecNatRepr + HexNatRepr + NatRepresentations + NaturalNumber + OctNatRepr + RicherNonEmptyString + String0 + String1 + + + false + true + + + diff --git a/extra/xmode/modes/lua.xml b/extra/xmode/modes/lua.xml new file mode 100644 index 0000000000..04f9f76d02 --- /dev/null +++ b/extra/xmode/modes/lua.xml @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + --[[ + ]] + + + -- + #! + + + " + " + + + ' + ' + + + + [[ + ]] + + + + + - + * + / + ^ + .. + <= + < + >= + > + == + ~= + = + + ( + ) + { + } + " + " + ' + ' + + + + do + end + while + repeat + until + if + then + elseif + else + return + break + for + in + function + local + nil + true + false + and + or + not + + assert + collectgarbage + dofile + error + _G + getfenv + getmetatable + gcinfo + ipairs + loadfile + loadlib + loadstring + next + pairs + pcall + print + rawequal + rawget + rawset + require + setfenv + setmetatable + tonumber + tostring + type + unpack + xpcall + _VERSION + LUA_PATH + _LOADED + _REQUIREDNAME + _ALERT + _ERRORMESSAGE + _PROMPT + __add + __sub + __mul + __div + __pow + __unm + __concat + __eq + __lt + __le + __index + __newindex + __call + __metatable + __mode + __tostring + __fenv + ... + arg + coroutine.create + coroutine.resume + coroutine.status + coroutine.wrap + coroutine.yield + string.byte + string.char + string.dump + string.find + string.len + string.lower + string.rep + string.sub + string.upper + string.format + string.gfind + string.gsub + table.concat + table.foreach + table.foreachi + table.getn + table.sort + table.insert + table.remove + table.setn + math.abs + math.acos + math.asin + math.atan + math.atan2 + math.ceil + math.cos + math.deg + math.exp + math.floor + math.log + math.log10 + math.max + math.min + math.mod + math.pow + math.rad + math.sin + math.sqrt + math.tan + math.frexp + math.ldexp + math.random + math.randomseed + math.pi + io.close + io.flush + io.input + io.lines + io.open + io.read + io.tmpfile + io.type + io.write + io.stdin + io.stdout + io.stderr + os.clock + os.date + os.difftime + os.execute + os.exit + os.getenv + os.remove + os.rename + os.setlocale + os.time + os.tmpname + debug.debug + debug.gethook + debug.getinfo + debug.getlocal + debug.getupvalue + debug.setlocal + debug.setupvalue + debug.sethook + debug.traceback + + + + diff --git a/extra/xmode/modes/mail.xml b/extra/xmode/modes/mail.xml new file mode 100644 index 0000000000..ac490697b0 --- /dev/null +++ b/extra/xmode/modes/mail.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + >>> + >> + > + | + : + -- + :-) + :-( + :) + :( + ;-) + ;-( + ;) + ;( + : + + + + + < + > + + + diff --git a/extra/xmode/modes/makefile.xml b/extra/xmode/modes/makefile.xml new file mode 100644 index 0000000000..3f4fae75e3 --- /dev/null +++ b/extra/xmode/modes/makefile.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + # + + + + \$\([a-zA-Z][\w-]* + ) + + + + + $( + ) + + + ${ + } + + + $ + + + + " + " + + + ' + ' + + + ` + ` + + + = + := + += + ?= + + : + + + subst + addprefix + addsuffix + basename + dir + filter + filter-out + findstring + firstword + foreach + join + notdir + origin + patsubst + shell + sort + strip + suffix + wildcard + word + words + ifeq + ifneq + else + endif + define + endef + ifdef + ifndef + + + + + + + # + + + + $( + ) + + + ${ + } + + + diff --git a/extra/xmode/modes/maple.xml b/extra/xmode/modes/maple.xml new file mode 100644 index 0000000000..0bc33ca8ed --- /dev/null +++ b/extra/xmode/modes/maple.xml @@ -0,0 +1,735 @@ + + + + + + + + + + + + + + + + " + " + + + ' + ' + + + ` + ` + + + # + + + + - + * + / + ^ + <> + <= + < + >= + > + = + $ + @@ + @ + || + := + :: + :- + & + ! + + + + and + or + xor + union + intersect + minus + mod + not + assuming + break + by + catch + description + do + done + elif + else + end + error + export + fi + finally + for + from + global + if + implies + in + local + module + next + od + option + options + proc + quit + read + return + save + stop + subset + then + to + try + use + while + + + about + ans + add + addcoords + additionally + addproperty + addressof + AFactor + AFactors + AIrreduc + AiryAi + AiryAiZeros + AiryBi + AiryBiZeros + algebraic + algsubs + alias + allvalues + anames + AngerJ + antihermitian + antisymm + apply + applyop + applyrule + arccos + arccosh + arccot + arccoth + arccsc + arccsch + arcsec + arcsech + arcsin + arcsinh + arctan + arctanh + argument + Array + array + ArrayDims + ArrayElems + ArrayIndFns + ArrayOptions + assign + assigned + asspar + assume + asympt + attributes + band + Berlekamp + bernoulli + bernstein + BesselI + BesselJ + BesselJZeros + BesselK + BesselY + BesselYZeros + Beta + branches + C + cat + ceil + changecoords + charfcn + ChebyshevT + ChebyShevU + CheckArgs + Chi + chrem + Ci + close + coeff + coeffs + coeftayl + collect + combine + comparray + compiletable + compoly + CompSeq + conjugate + constant + Content + content + convergs + convert + coords + copy + CopySign + cos + cosh + cot + coth + coulditbe + csc + csch + csgn + currentdir + curry + CylinderD + CylinderU + CylinderV + D + dawson + Default0 + DefaultOverflow + DefaultUnderflow + define + define_external + degree + denom + depends + DESol + Det + diagon + Diff + diff + diffop + Digits + dilog + dinterp + Dirac + disassemble + discont + discrim + dismantle + DistDeg + Divide + divide + dsolve + efficiency + Ei + Eigenvals + eliminate + ellipsoid + EllipticCE + EllipticCK + EllipticCPi + EllipticE + EllipticF + EllipticK + EllipticModulus + EllipticNome + EllipticPi + elliptic_int + entries + erf + erfc + erfi + euler + eulermac + Eval + eval + evala + evalapply + evalb + evalc + evalf + evalfint + evalhf + evalm + evaln + evalr + evalrC + events + Excel + exists + exp + Expand + expand + expandoff + expandon + exports + extract + extrema + Factor + factor + Factors + factors + fclose + fdiscont + feof + fflush + FFT + filepos + fixdiv + float + floor + fnormal + fold + fopen + forall + forget + fprintf + frac + freeze + frem + fremove + FresnelC + Fresnelf + Fresnelg + FresnelS + FromInert + frontend + fscanf + fsolve + galois + GAMMA + GaussAGM + Gausselim + Gaussjord + gc + Gcd + gcd + Gcdex + gcdex + GegenbauerC + genpoly + getenv + GetResultDataType + GetResultShape + GF + Greek + HankelH1 + HankelH2 + harmonic + has + hasfun + hasoption + hastype + heap + Heaviside + Hermite + HermiteH + hermitian + Hessenberg + hfarray + history + hypergeom + icontent + identity + IEEEdiffs + ifactor + ifactors + iFFT + igcd + igcdex + ilcm + ilog10 + ilog2 + ilog + Im + implicitdiff + ImportMatrix + ImportVector + indets + index + indexed + indices + inifcn + ininame + initialcondition + initialize + insert + int + intat + interface + Interp + interp + Inverse + invfunc + invztrans + iostatus + iperfpow + iquo + iratrecon + irem + iroot + Irreduc + irreduc + is + iscont + isdifferential + IsMatrixShape + isolate + isolve + ispoly + isprime + isqrfree + isqrt + issqr + ithprime + JacobiAM + JacobiCD + JacobiCN + JacobiCS + JacobiDC + JacobiDN + JacobiDS + JacobiNC + JacobiND + JacobiNS + JacobiP + JacobiSC + JacobiSD + JacobiSN + JacobiTheta1 + JacobiTheta2 + JacobiTheta3 + JacobiTheta4 + JacobiZeta + KelvinBei + KelvinBer + KelvinHei + KelvinHer + KelvinKei + KelvinKer + KummerM + KummerU + LaguerreL + LambertW + latex + lattice + lcm + Lcm + lcoeff + leadterm + LegendreP + LegendreQ + length + LerchPhi + lexorder + lhs + CLi + Limit + limit + Linsolve + ln + lnGAMMA + log + log10 + LommelS1 + Lommels2 + lprint + map + map2 + Maple_floats + match + MatlabMatrix + Matrix + matrix + MatrixOptions + max + maximize + maxnorm + maxorder + MeijerG + member + min + minimize + mkdir + ModifiedMeijerG + modp + modp1 + modp2 + modpol + mods + module + MOLS + msolve + mtaylor + mul + NextAfter + nextprime + nops + norm + norm + Normal + normal + nprintf + Nullspace + numboccur + numer + NumericClass + NumericEvent + NumericEventHandler + NumericException + numerics + NumericStatus + odetest + op + open + order + OrderedNE + parse + patmatch + pclose + PDEplot_options + pdesolve + pdetest + pdsolve + piecewise + plot + plot3d + plotsetup + pochhammer + pointto + poisson + polar + polylog + polynom + Power + Powmod + powmod + Prem + prem + Preprocessor + prevprime + Primitive + Primpart + primpart + print + printf + ProbSplit + procbody + ProcessOptions + procmake + Product + product + proot + property + protect + Psi + psqrt + queue + Quo + quo + radfield + radnormal + radsimp + rand + randomize + Randpoly + randpoly + Randprime + range + ratinterp + rationalize + Ratrecon + ratrecon + Re + readbytes + readdata + readlib + readline + readstat + realroot + Record + Reduce + references + release + Rem + rem + remove + repository + requires + residue + RESol + Resultant + resultant + rhs + rmdir + root + rootbound + RootOf + Roots + roots + round + Rounding + rsolve + rtable + rtable_algebra + rtable_dims + rtable_elems + rtable_indfns + rtable_options + rtable_printf + rtable_scanf + SampleRTable + savelib + Scale10 + Scale2 + scalar + scan + scanf + SearchText + searchtext + sec + sech + select + selectfun + selectremove + seq + series + setattribute + SFloatExponent + SFloatMantissa + shale + Shi + showprofile + showtime + Si + sign + signum + Simplify + simplify + sin + sinh + singular + sinterp + smartplot3d + Smith + solve + solvefor + sort + sparse + spec_eval_rule + spline + spreadsheet + SPrem + sprem + sprintf + Sqrfree + sqrfree + sqrt + sscanf + Ssi + ssystem + storage + string + StruveH + StruveL + sturm + sturmseq + subs + subsindets + subsop + substring + subtype + Sum + sum + surd + Svd + symmdiff + symmetric + syntax + system + table + tan + tang + taylor + testeq + testfloat + TEXT + thaw + thiele + time + timelimit + ToInert + TopologicalSort + traperror + triangular + trigsubs + trunc + type + typematch + unames + unapply + unassign + undefined + unit + Unordered + unprotect + update + UseHardwareFloats + userinfo + value + Vector + vector + verify + WeierstrassP + WeberE + WeierstrassPPrime + WeierstrassSigma + WeierstrassZeta + whattype + WhittakerM + WhittakerW + with + worksheet + writebytes + writedata + writeline + writestat + writeto + zero + Zeta + zip + ztrans + + + Catalan + constants + Digits + FAIL + false + gamma + I + infinity + integrate + lasterror + libname + `mod` + NULL + Order + Pi + printlevel + true + undefined + + + diff --git a/extra/xmode/modes/ml.xml b/extra/xmode/modes/ml.xml new file mode 100644 index 0000000000..97ec02cfd4 --- /dev/null +++ b/extra/xmode/modes/ml.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + (* + *) + + + + + #" + " + + + + + " + " + + + + + + / + * + + + + + - + ^ + + + :: + @ + + + = + <> + <= + < + >= + > + + + := + + + + + + + + + div + mod + + + o + + + before + + + abstype + and + andalso + as + case + do + datatype + else + end + eqtype + exception + fn + fun + functor + handle + if + in + include + infix + infixr + let + local + nonfix + of + op + open + orelse + raise + rec + sharing + sig + signature + struct + structure + then + type + val + where + with + withtype + while + + + array + bool + char + exn + frag + int + list + option + order + real + ref + string + substring + unit + vector + word + word8 + + + Bind + Chr + Domain + Div + Fail + Graphic + Interrupt + Io + Match + Option + Ord + Overflow + Size + Subscript + SysErr + + + false + true + QUOTE + ANTIQUOTE + nil + NONE + SOME + LESS + EQUAL + GREATER + + + \ No newline at end of file diff --git a/extra/xmode/modes/modula3.xml b/extra/xmode/modes/modula3.xml new file mode 100644 index 0000000000..fa04e9cbfe --- /dev/null +++ b/extra/xmode/modes/modula3.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + <* + *> + + + + (* + *) + + + + + " + " + + + ' + ' + + + ^ + @ + := + = + <> + >= + <= + > + < + + + - + / + * + + + AND + DO + FROM + NOT + REPEAT + UNTIL + ANY + ELSE + GENERIC + OBJECT + RETURN + UNTRACED + ARRAY + ELSIF + IF + OF + REVEAL + VALUE + AS + END + IMPORT + OR + ROOT + VAR + BEGIN + EVAL + IN + OVERRIDES + SET + WHILE + BITS + EXCEPT + INTERFACE + PROCEDURE + THEN + WITH + BRANDED + EXCEPTION + LOCK + RAISE + TO + BY + EXIT + LOOP + RAISES + TRY + CASE + EXPORTS + METHODS + READONLY + TYPE + CONST + FINALLY + MOD + RECORD + TYPECASE + DIV + FOR + MODULE + REF + UNSAFE + + + ABS + BYTESIZE + EXTENDED + INTEGER + MIN + NUMBER + TEXT + ADDRESS + CARDINAL + FALSE + ISTYPE + MUTEX + ORD + TRUE + ADR + CEILING + FIRST + LAST + NARROW + REAL + TRUNC + ADRSIZE + CHAR + FLOAT + LONGREAL + NEW + REFANY + TYPECODE + BITSIZE + DEC + FLOOR + LOOPHOLE + NIL + ROUND + VAL + BOOLEAN + DISPOSE + INC + MAX + NULL + SUBARRAY + + + + Text + Thread + Word + Real + LongReal + ExtendedReal + RealFloat + LongFloat + ExtendedFloat + FloatMode + + + + Fmt + Lex + Pickle + Table + + + + diff --git a/extra/xmode/modes/moin.xml b/extra/xmode/modes/moin.xml new file mode 100644 index 0000000000..cc6ac757fb --- /dev/null +++ b/extra/xmode/modes/moin.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + ## + + + #pragma + + + + [[ + ]] + + + + \s+(?:\(|\)|\w)[\p{Alnum}\p{Blank}.()]+:: + + + + + + + {{{ + }}} + + + + + ` + ` + + + + ('{2,5})[^']+\1[^'] + + + -{4,} + + + + (={1,5}) + $1 + + + + [A-Z][a-z]+[A-Z][a-zA-Z]+ + + + + [" + "] + + + + + [ + ] + + + + + diff --git a/extra/xmode/modes/mqsc.xml b/extra/xmode/modes/mqsc.xml new file mode 100644 index 0000000000..9fdc9c8271 --- /dev/null +++ b/extra/xmode/modes/mqsc.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + * + + + + + (' + ') + + + + ( + ) + + + + + + + + + all + alter + alt + clear + define + def + delete + display + dis + end + like + ping + refresh + ref + replace + reset + resolve + resume + start + stop + suspend + + + channel + chl + chstatus + chst + clusqmgr + process + proc + namelist + nl + qalias + qa + qcluster + qc + qlocal + ql + qmodel + qm + qmgr + qremote + qr + queue + + + altdate + alttime + applicid + appltype + authorev + batches + batchint + batchsz + boqname + bothresh + bufsrcvd + bufssent + bytsrcvd + bytssent + ccsid + chad + chadev + chadexit + channel + chltype + chstada + chstati + clusdate + clusinfo + clusnl + clusqmgr + clusqt + cluster + clustime + clwldata + clwlexit + clwlwen + cmdlevel + commandq + conname + convert + crdate + crtime + curdepth + curluwid + curmsgs + curseqno + deadq + defbind + defprty + defpsist + defsopt + deftype + defxmitq + descr + discint + distl + envrdata + get + hardenbo + hbint + indoubt + inhibtev + initq + ipprocs + jobname + localev + longrts + longrty + longtmr + lstluwid + lstmsgda + lstmsgti + lstseqno + maxdepth + maxhands + maxmsgl + maxprty + maxumsgs + mcaname + mcastat + mcatype + mcauser + modename + mrdata + mrexit + mrrty + mrtmr + msgdata + msgdlvsq + msgexit + msgs + namcount + names + netprty + npmspeed + opprocs + password + perfmev + platform + process + put + putaut + qdepthhi + qdepthlo + qdphiev + qdploev + qdpmaxev + qmid + qmname + qmtype + qsvciev + qsvcint + qtype + rcvdata + rcvexit + remoteev + repos + reposnl + retintvl + rname + rqmname + scope + scydata + scyexit + senddata + sendexit + seqwrap + share + shortrts + shortrty + shorttmr + status + stopreq + strstpev + suspend + syncpt + targq + tpname + trigdata + trigdpth + trigger + trigint + trigmpri + trigtype + trptype + type + usage + userdata + userid + xmitq + + + \ No newline at end of file diff --git a/extra/xmode/modes/myghty.xml b/extra/xmode/modes/myghty.xml new file mode 100644 index 0000000000..1cf83ef87a --- /dev/null +++ b/extra/xmode/modes/myghty.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + # + + + + + <%attr> + </%attr> + + + + + <%(def|closure|method) + > + + </%(def|closure|method)> + + + + <%doc> + </%doc> + + + + + <%flags> + </%flags> + + + + + <%python[^>]*> + </%python> + + + + + <%(args|cleanup|filter|global|init|once|requestlocal|requestonce|shared|threadlocal|threadonce)> + </%$1> + + + + + <%text> + </%text> + + + + </&> + + <&[|]? + &> + + + + + <% + %> + + + % + + + + + + args + attr + cleanup + closure + def + doc + filter + flags + global + init + method + once + python + requestlocal + requestonce + shared + threadlocal + threadonce + + + + + + + @ + + + ARGS + MODULE + SELF + m + + r + + s + + u + + h + + + + + + + diff --git a/extra/xmode/modes/mysql.xml b/extra/xmode/modes/mysql.xml new file mode 100644 index 0000000000..fe462a75b6 --- /dev/null +++ b/extra/xmode/modes/mysql.xml @@ -0,0 +1,244 @@ + + + + + + + + + + + + + /* + */ + + + " + " + + + ' + ' + + + + + ADD + ALL + ALTER + ANALYZE + AND + AS + ASC + ASENSITIVE + BEFORE + BETWEEN + BIGINT + BINARY + BLOB + BOTH + BY + CALL + CASCADE + CASE + CHANGE + CHAR + CHARACTER + CHECK + COLLATE + COLUMN + CONDITION + CONNECTION + CONSTRAINT + CONTINUE + CONVERT + CREATE + CROSS + CURRENT_DATE + CURRENT_TIME + CURRENT_TIMESTAMP + CURRENT_USER + CURSOR + DATABASE + DATABASES + DAY_HOUR + DAY_MICROSECOND + DAY_MINUTE + DAY_SECOND + DEC + DECIMAL + DECLARE + DEFAULT + DELAYED + DELETE + DESC + DESCRIBE + DETERMINISTIC + DISTINCT + DISTINCTROW + DIV + DOUBLE + DROP + DUAL + EACH + ELSE + ELSEIF + ENCLOSED + ESCAPED + EXISTS + EXIT + EXPLAIN + FALSE + FETCH + FLOAT + FOR + FORCE + FOREIGN + FROM + FULLTEXT + GOTO + GRANT + GROUP + HAVING + HIGH_PRIORITY + HOUR_MICROSECOND + HOUR_MINUTE + HOUR_SECOND + IF + IGNORE + IN + INDEX + INFILE + INNER + INOUT + INSENSITIVE + INSERT + INT + INTEGER + INTERVAL + INTO + IS + ITERATE + JOIN + KEY + KEYS + KILL + LEADING + LEAVE + LEFT + LIKE + LIMIT + LINES + LOAD + LOCALTIME + LOCALTIMESTAMP + LOCK + LONG + LONGBLOB + LONGTEXT + LOOP + LOW_PRIORITY + MATCH + MEDIUMBLOB + MEDIUMINT + MEDIUMTEXT + MIDDLEINT + MINUTE_MICROSECOND + MINUTE_SECOND + MOD + MODIFIES + NATURAL + NOT + NO_WRITE_TO_BINLOG + NULL + NUMERIC + ON + OPTIMIZE + OPTION + OPTIONALLY + OR + ORDER + OUT + OUTER + OUTFILE + PRECISION + PRIMARY + PROCEDURE + PURGE + READ + READS + REAL + REFERENCES + REGEXP + RENAME + REPEAT + REPLACE + REQUIRE + RESTRICT + RETURN + REVOKE + RIGHT + RLIKE + SCHEMA + SCHEMAS + SECOND_MICROSECOND + SELECT + SENSITIVE + SEPARATOR + SET + SHOW + SMALLINT + SONAME + SPATIAL + SPECIFIC + SQL + SQLEXCEPTION + SQLSTATE + SQLWARNING + SQL_BIG_RESULT + SQL_CALC_FOUND_ROWS + SQL_SMALL_RESULT + SSL + STARTING + STRAIGHT_JOIN + TABLE + TERMINATED + THEN + TINYBLOB + TINYINT + TINYTEXT + TO + TRAILING + TRIGGER + TRUE + UNDO + UNION + UNIQUE + UNLOCK + UNSIGNED + UPDATE + USAGE + USE + USING + UTC_DATE + UTC_TIME + UTC_TIMESTAMP + VALUES + VARBINARY + VARCHAR + VARCHARACTER + VARYING + WHEN + WHERE + WHILE + WITH + WRITE + XOR + YEAR_MONTH + ZEROFILL + + + + + diff --git a/extra/xmode/modes/netrexx.xml b/extra/xmode/modes/netrexx.xml new file mode 100644 index 0000000000..48d50eb351 --- /dev/null +++ b/extra/xmode/modes/netrexx.xml @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + /** + */ + + + + + /* + */ + + + + " + " + + + ' + ' + + + -- + + = + ! + >= + <= + + + - + / + + + .* + + * + > + < + % + & + | + ^ + ~ + } + { + + + + abbrev + abs + b2x + center + centre + changestr + charAt + compare + copies + copyIndexed + countstr + c2d + c2x + datatype + delstr + delword + d2c + d2X + equals + exists + format + hashCode + insert + lastpos + left + length + lower + max + min + nop + overlay + parse + pos + reverse + right + say + sequence + sign + space + strip + substr + subword + toCharArray + toString + toboolean + tobyte + tochar + todouble + tofloat + toint + tolong + toshort + trunc + translate + upper + verify + word + wordindex + wordlength + wordpos + words + x2b + x2c + x2d + + class + private + public + abstract + final + interface + dependent + adapter + deprecated + extends + uses + implements + + method + native + returns + signals + + properties + private + public + inheritable + constant + static + volatile + unused + transient + indirect + + do + label + protect + catch + finally + end + signal + + if + then + else + select + case + when + otherwise + + loop + forever + for + to + by + over + until + while + leave + iterate + + return + exit + + ask + digits + form + null + source + this + super + parent + sourceline + version + + trace + var + all + results + off + methods + + package + import + numeric + scientific + engineering + + options + comments + nocomments + keep + nokeep + compact + nocompact + console + noconsole + decimal + nodecimal + explicit + noexplicit + java + nojava + savelog + nosavelog + + sourcedir + nosourcedir + symbols + nosymbols + utf8 + noutf8 + + notrace + binary + nobinary + crossref + nocrossref + diag + nodiag + format + noformat + logo + nologo + replace + noreplace + + strictassign + nostrictassign + strictcase + nostrictcase + strictargs + nostrictargs + strictimport + nostrictimport + strictsignal + nostrictsignal + strictprops + nostrictprops + + verbose + noverbose + verbose0 + verbose1 + verbose2 + verbose3 + verbose4 + verbose5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ArithmeticException + ArrayIndexOutOfBoundsException + ArrayStoreException + ClassCastException + ClassNotFoundException + CloneNotSupportedException + Exception + IllegalAccessException + IllegalArgumentException + IllegalMonitorStateException + IllegalStateException + IllegalThreadStateException + IndexOutOfBoundsException + InstantiationException + InterruptedException + NegativeArraySizeException + NoSuchFieldException + NoSuchMethodException + NullPointerException + NumberFormatException + RuntimeException + SecurityException + StringIndexOutOfBoundsException + UnsupportedOperationException + + CharConversionException + EOFException + FileNotFoundException + InterruptedIOException + InvalidClassException + InvalidObjectException + IOException + NotActiveException + NotSerializableException + ObjectStreamException + OptionalDataException + StreamCorruptedException + SyncFailedException + UnsupportedEncodingException + UTFDataFormatException + WriteAbortedException + + + RemoteException + + + BadArgumentException + BadColumnException + BadNumericException + DivideException + ExponentOverflowException + NoOtherwiseException + NotCharacterException + NotLogicException + + + + diff --git a/extra/xmode/modes/nqc.xml b/extra/xmode/modes/nqc.xml new file mode 100644 index 0000000000..1c0e0386fa --- /dev/null +++ b/extra/xmode/modes/nqc.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + + # + + // + = + ! + >= + <= + + + - + / + + * + > + < + % + & + | + ^ + ~ + } + { + : + + + ( + ) + + + __event_src + __sensor + __type + abs + aquire + catch + const + break + case + continue + default + do + else + for + monitor + if + return + repeat + sign + start + stop + sub + switch + task + while + + asm + inline + + int + void + + true + false + NULL + + SENSOR_1 + SENSOR_2 + SENSOR_3 + + SENSOR_TYPE_NONE + SENSOR_TYPE_TOUCH + SENSOR_TYPE_TEMPERATURE + SENSOR_TYPE_LIGHT + SENSOR_TYPE_ROTATION + + SENSOR_MODE_RAW + SENSOR_MODE_BOOL + SENSOR_MODE_EDGE + SENSOR_MODE_PULSE + SENSOR_MODE_PERCENT + SENSOR_MODE_FAHRENHEIT + SENSOR_MODE_CELSIUS + SENSOR_MODE_ROTATION + + SENSOR_TOUCH + SENSOR_LIGHT + SENSOR_EDGE + SENSOR_PULSE + SENSOR_FAHRENHEIT + SENSOR_CELSIUS + SENSOR_ROTATION + + OUT_A + OUT_B + OUT_C + + OUT_OFF + OUT_ON + OUT_FLOAT + + OUT_FWD + OUT_REV + OUT_TOOGLE + + OUT_FULL + OUT_HALF + OUT_LOW + + SOUND_CLICK + SOUND_DOUBLE_BEEP + SOUND_DOWN + SOUND_UP + SOUND_LOW_BEEP + SOUND_FAST_UP + + DISPLAY_WATCH + DISPLAY_OUT_A + DISPLAY_OUT_B + DISPLAY_OUT_C + DISPLAY_SENSOR_1 + DISPLAY_SENSOR_2 + DISPLAY_SENSOR_3 + + TX_POWER_LO + TX_POWER_HI + + SERIAL_COMM_DEFAULT + SERIAL_COMM_4800 + SERIAL_COMM_DUTY25 + SERIAL_COMM_76KHZ + + SERIAL_PACKET_PREAMBLE + SERIAL_PACKET_DEFAULT + SERIAL_PACKET_NEGATED + SERIAL_PACKET_CHECKSUM + SERIAL_PACKET_RCX + SERIAL_PACKET_ + + ACQUIRE_OUT_A + ACQUIRE_OUT_B + ACQUIRE_OUT_C + ACQUIRE_SOUND + ACQUIRE_USER_1 + ACQUIRE_USER_2 + ACQUIRE_USER_3 + ACQUIRE_USER_4 + + EVENT_TYPE_PRESSED + EVENT_TYPE_RELEASED + EVENT_TYPE_PULSE + EVENT_TYPE_EDGE + EVENT_TYPE_FASTCHANGE + EVENT_TYPE_LOW + EVENT_TYPE_NORMAL + EVENT_TYPE_HIGH + EVENT_TYPE_CLICK + EVENT_TYPE_DOUBLECLICK + EVENT_TYPE_MESSAGE + + EVENT_1_PRESSED + EVENT_1_RELEASED + EVENT_2_PRESSED + EVENT_2_RELEASED + EVENT_LIGHT_HIGH + EVENT_LIGHT_NORMAL + EVENT_LIGHT_LOW + EVENT_LIGHT_CLICK + EVENT_LIGHT_DOUBLECLICK + EVENT_COUNTER_0 + EVENT_COUNTER_1 + EVENT_TIMER_0 + EVENT_TIMER_1 + EVENT_TIMER_2 + EVENT_MESSAGE + + + + diff --git a/extra/xmode/modes/nsis2.xml b/extra/xmode/modes/nsis2.xml new file mode 100644 index 0000000000..1b104bd01d --- /dev/null +++ b/extra/xmode/modes/nsis2.xml @@ -0,0 +1,480 @@ + + + + + + + + + + + + + + ; + # + + $ + :: + : + + + " + " + + + + ' + ' + + + + ` + ` + + + + + dim + uninstallexename + + + $0 + $1 + $2 + $3 + $4 + $5 + $6 + $7 + $8 + $9 + $INSTDIR + $OUTDIR + $CMDLINE + $LANGUAGE + + + $R0 + $R1 + $R2 + $R3 + $R4 + $R5 + $R6 + $R7 + $R8 + $R9 + + + ARCHIVE + CENTER + CONTROL + CUR + EXT + F1 + F2 + F3 + F4 + F5 + F6 + F7 + F8 + F9 + F10 + F11 + F12 + F13 + F14 + F15 + F16 + F17 + F18 + F19 + F20 + F21 + F22 + F23 + F24 + FILE_ATTRIBUTE_ARCHIVE + MB_ABORTRETRYIGNORE + RIGHT + RO + SET + SHIFT + SW_SHOWMAXIMIZED + SW_SHOWMINIMIZED + SW_SHOWNORMAL + a + all + alwaysoff + auto + both + bottom + bzip2 + checkbox + colored + components + current + custom + directory + false + force + hide + ifnewer + instfiles + license + listonly + manual + nevershow + none + off + on + r + radiobuttons + show + silent + silentlog + smooth + textonly + top + true + try + uninstConfirm + w + zlib + $$ + $DESKTOP + $EXEDIR + $HWNDPARENT + $PLUGINSDIR + $PROGRAMFILES + $QUICKLAUNCH + $SMPROGRAMS + $SMSTARTUP + $STARTMENU + $SYSDIR + $TEMP + $WINDIR + $\n + $\r + ${NSISDIR} + ALT + END + FILE_ATTRIBUTE_HIDDEN + FILE_ATTRIBUTE_NORMAL + FILE_ATTRIBUTE_OFFLINE + FILE_ATTRIBUTE_READONLY + FILE_ATTRIBUTE_SYSTEM + FILE_ATTRIBUTE_TEMPORARY + HIDDEN + HKCC + HKCR + HKCU + HKDD + HKLM + HKPD + HKU + SHCTX + IDABORT + IDCANCEL + IDIGNORE + IDNO + IDOK + IDRETRY + IDYES + LEFT + MB_DEFBUTTON1 + MB_DEFBUTTON2 + MB_DEFBUTTON3 + MB_DEFBUTTON4 + MB_ICONEXCLAMATION + MB_ICONINFORMATION + MB_ICONQUESTION + MB_ICONSTOP + MB_OK + MB_OKCANCEL + MB_RETRYCANCEL + MB_RIGHT + MB_SETFOREGROUND + MB_TOPMOST + MB_YESNO + MB_YESNOCANCEL + NORMAL + OFFLINE + READONLY + SYSTEM + TEMPORARY + + + /0 + /COMPONENTSONLYONCUSTOM + /CUSTOMSTRING + /FILESONLY + /IMGID + /ITALIC + /LANG + /NOCUSTOM + /NOUNLOAD + /REBOOTOK + /RESIZETOFIT + /RTL + /SHORT + /SILENT + /STRIKE + /TIMEOUT + /TRIM + /UNDERLINE + /a + /e + /ifempty + /nonfatal + /oname + /r + /windows + + + !addincludedir + !addplugindir + !define + !include + !cd + !echo + !error + !insertmacro + !packhdr + !system + !warning + !undef + !verbose + + + !ifdef + !ifndef + !if + !else + !endif + !macro + !macroend + + + function + functionend + section + sectionend + subsection + subsectionend + + + addbrandingimage + addsize + allowrootdirinstall + allowskipfiles + autoclosewindow + bggradient + brandingtext + bringtofront + callinstdll + caption + changeui + checkbitmap + completedtext + componenttext + copyfiles + crccheck + createdirectory + createfont + createshortcut + delete + deleteinisec + deleteinistr + deleteregkey + deleteregvalue + detailprint + detailsbuttontext + dirshow + dirtext + enumregkey + enumregvalue + exch + exec + execshell + execwait + expandenvstrings + file + fileclose + fileerrortext + fileopen + fileread + filereadbyte + fileseek + filewrite + filewritebyte + findclose + findfirst + findnext + findwindow + flushini + getcurinsttype + getcurrentaddress + getdlgitem + getdllversion + getdllversionlocal + getfiletime + getfiletimelocal + getfullpathname + getfunctionaddress + getlabeladdress + gettempfilename + getwindowtext + hidewindow + icon + initpluginsdir + installbuttontext + installcolors + installdir + installdirregkey + instprogressflags + insttype + insttypegettext + insttypesettext + intfmt + intop + langstring + langstringup + licensebkcolor + licensedata + licenseforceselection + licensetext + loadlanguagefile + loadlanguagefile + logset + logtext + miscbuttontext + name + nop + outfile + page + plugindir + pop + push + readenvstr + readinistr + readregdword + readregstr + regdll + rename + reservefile + rmdir + searchpath + sectiongetflags + sectiongetinsttypes + sectiongetsize + sectiongettext + sectionin + sectionsetflags + sectionsetinsttypes + sectionsetsize + sectionsettext + sendmessage + setautoclose + setbkcolor + setbrandingimage + setcompress + setcompressor + setcurinsttype + setdatablockoptimize + setdatesave + setdetailsprint + setdetailsview + setfileattributes + setfont + setoutpath + setoverwrite + setpluginunload + setrebootflag + setshellvarcontext + setstaticbkcolor + setwindowlong + showinstdetails + showuninstdetails + showwindow + silentinstall + silentuninstall + sleep + spacetexts + strcpy + strlen + subcaption + uninstallbuttontext + uninstallcaption + uninstallicon + uninstallsubcaption + uninstalltext + uninstpage + unregdll + var + viaddversionkey + videscription + vicompanyname + vicomments + vilegalcopyrights + vilegaltrademarks + viproductname + viproductversion + windowicon + writeinistr + writeregbin + writeregdword + writeregexpandstr + writeregstr + writeuninstaller + xpstyle + + + abort + call + clearerrors + goto + ifabort + iferrors + iffileexists + ifrebootflag + intcmp + intcmpu + iswindow + messagebox + reboot + return + quit + seterrors + strcmp + + + .onguiinit + .oninit + .oninstfailed + .oninstsuccess + .onmouseoversection + .onselchange + .onuserabort + .onverifyinstdir + un.onguiinit + un.oninit + un.onuninstfailed + un.onuninstsuccess + un.onuserabort + + + + + + + diff --git a/extra/xmode/modes/objective-c.xml b/extra/xmode/modes/objective-c.xml new file mode 100644 index 0000000000..c6c52c8211 --- /dev/null +++ b/extra/xmode/modes/objective-c.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + # + + + + + + + + + + + id + Class + SEL + IMP + BOOL + + + oneway + in + out + inout + bycopy + byref + self + super + + + @interface + @implementation + @protocol + @end + @private + @protected + @public + @class + @selector + @endcode + @defs + + TRUE + FALSE + YES + NO + NULL + nil + Nil + + + + + + + include\b + import\b + define\b + endif\b + elif\b + if\b + + + + + + ifdef + ifndef + else + error + line + pragma + undef + warning + + + + + + + # + + + + + + diff --git a/extra/xmode/modes/objectrexx.xml b/extra/xmode/modes/objectrexx.xml new file mode 100644 index 0000000000..875e83ec90 --- /dev/null +++ b/extra/xmode/modes/objectrexx.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + + # + + -- + = + ! + >= + <= + + + - + / + + * + > + < + % + & + | + ^ + ~ + } + { + + :: + + : + + + ( + ) + + + Address + Arg + Call + Do + Drop + Exit + Expose + Forward + Guard + If + Interpret + Iterate + Leave + Nop + Numeric + Parse + Procedure + pull + Push + Queue + Raise + reply + Return + Say + Seleect + Signal + Trace + use + Class + Method + Requires + Routine + Result + RC + Self + Sigl + Super + Abbrev + Abs + Address + Arg + Beep + BitAnd + BitOr + BitXor + B2X + Center + ChangeStr + CharIn + CharOut + Chars + Compare + Consition + Copies + CountStr + C2D + C2X + DataType + Date + DelStr + DelWord + Digits + Directory + D2C + D2X + ErrorText + FileSpec + Form + Format + Fuzz + Insert + LastPos + Left + Length + LineIn + LineOut + Lines + Max + Min + Overlay + Pos + Queued + Random + Reverse + Right + Sign + SourceLine + Space + Stream + Strip + SubStr + SubWord + Symbol + Time + Trace + Translate + Trunc + Value + Var + Verify + Word + WordIndex + WordLength + WordPos + Words + XRange + X2B + X2C + X2D + RxFuncAdd + RxFuncDrop + RxFuncQuery + RxMessageBox + RxWinExec + SysAddRexxMacro + SysBootDrive + SysClearRexxMacroSpace + SysCloseEventSem + SysCloseMutexSem + SysCls + SysCreateEventSem + SysCreateMutexSem + SysCurPos + SysCurState + SysDriveInfo + SysDriveMap + SysDropFuncs + SysDropRexxMacro + SysDumpVariables + SysFileDelete + SysFileSearch + SysFileSystemType + SysFileTree + SysFromUnicode + SysToUnicode + SysGetErrortext + SysGetFileDateTime + SysGetKey + SysIni + SysLoadFuncs + SysLoadRexxMacroSpace + SysMkDir + SysOpenEventSem + SysOpenMutexSem + SysPostEventSem + SysPulseEventSem + SysQueryProcess + SysQueryRexxMacro + SysReleaseMutexSem + SysReorderRexxMacro + SysRequestMutexSem + SysResetEventSem + SysRmDir + SysSaveRexxMacroSpace + SysSearchPath + SysSetFileDateTime + SysSetPriority + SysSleep + SysStemCopy + SysStemDelete + SysStemInsert + SysStemSort + SysSwitchSession + SysSystemDirectory + SysTempFileName + SysTextScreenRead + SysTextScreenSize + SysUtilVersion + SysVersion + SysVolumeLabel + SysWaitEventSem + SysWaitNamedPipe + SysWinDecryptFile + SysWinEncryptFile + SysWinVer + + + diff --git a/extra/xmode/modes/occam.xml b/extra/xmode/modes/occam.xml new file mode 100644 index 0000000000..4e7265eeed --- /dev/null +++ b/extra/xmode/modes/occam.xml @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + -- + + + # + + + ' + ' + + + + " + " + + + := + = + >> + << + <> + >< + > + < + >= + <= + + + - + / + \ + * + ? + ! + /\ + \/ + ~ + + + + ALT + ASM + CASE + FUNCTION + IF + INLINE + PAR + PLACED + PRI + PROC + RESULT + SEQ + VALOF + WHILE + + + AT + ELSE + FOR + FROM + IS + PLACE + PORT + PROTOCOL + SKIP + STOP + VAL + + + AFTER + AND + ANY + BITAND + BITNOT + BITOR + BOOL + BYTE + BYTESIN + CHAN + DATA + INT + INT32 + INT16 + INT64 + MINUS + MOSTNEG + MOSTPOS + NOT + PLUS + OF + OFFSETOF + OR + PACKED + REAL32 + REAL64 + RECORD + REM + RESHAPES + RETYPES + ROUND + SIZE + TIMER + TIMES + TRUNC + TYPE + + + BUCKET + CLAIM + ENROLL + EVENT + FALL + FLUSH + GRANT + INITIAL + RESOURCE + SEMAPHORE + SHARED + SYNC + + + LONGADD + LONGSUB + ASHIFTRIGHT + ASHIFTLEFT + ROTATERIGHT + ROTATELEFT + LONGSUM + LONGDIFF + LONGPROD + LONGDIV + SHIFTLEFT + SHIFTRIGHT + NORMALISE + ABS + DABS + SCALEB + DSCALEB + COPYSIGN + DCOPYSIGN + SQRT + DSQRT + MINUSX + DMINUSX + NEXTAFTER + DNEXTAFTER + MULBY2 + DMULBY2 + DIVBY2 + DDIVBY2 + LOGB + DLOGB + ISNAN + DISNAN + NOTFINITE + DNOTFINITE + ORDERED + DORDERED + FLOATING.UNPACK + DFLOATING.UNPACK + ARGUMENT.REDUCE + DARGUMENT.REDUCE + FPINT + DFPINT + REAL32OP + REAL64OP + IEEE32OP + IEEE64OP + REAL32REM + REAL64REM + IEEE32REM + IEEE64REM + REAL32EQ + REAL64EQ + REAL32GT + REAL64GT + IEEECOMPARE + DIEEECOMPARE + ALOG + DALOG + ALOG10 + DALOG10 + EXP + DEXP + TAN + DTAN + SIN + DSIN + ASIN + DASIN + COS + DCOS + SINH + DSINH + COSH + DCOSH + TANH + DTANH + ATAN + DATAN + ATAN2 + DATAN2 + RAN + DRAN + POWER + DPOWER + + + INTTOSTRING + INT16TOSTRING + INT32TOSTRING + INT64TOSTRING + STRINGTOINT + STRINGTOINT16 + STRINGTOINT32 + STRINGTOINT64 + HEXTOSTRING + HEX16TOSTRING + HEX32TOSTRING + HEX64TOSTRING + STRINGTOHEX + STRINGTOHEX16 + STRINGTOHEX32 + STRINGTOHEX64 + STRINGTOREAL32 + STRINGTOREAL64 + REAL32TOSTRING + REAL64TOSTRING + STRINGTOBOOL + BOOLTOSTRING + RESCHEDULE + ASSERT + + + + FALSE + TRUE + + + diff --git a/extra/xmode/modes/omnimark.xml b/extra/xmode/modes/omnimark.xml new file mode 100644 index 0000000000..721ba4ae3a --- /dev/null +++ b/extra/xmode/modes/omnimark.xml @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + #! + ; + + + "((?!$)[^"])*$ + $ + + + " + " + + + '((?!$)[^'])*$ + $ + + + ' + ' + + + & + | + + + + + + = + / + < + > + ~ + @ + $ + % + ^ + * + ? + ! + + + #additional-info + #appinfo + #args + #capacity + #charset + #class + #command-line-names + #console + #current-input + #current-output + #data + #doctype + #document + #dtd + #empty + #error + #error-code + #external-exception + #file-name + #first + #group + #implied + #item + #language-version + #last + #libpath + #library + #libvalue + #line-number + #main-input + #main-output + #markup-error-count + #markup-error-total + #markup-parser + #markup-warning-count + #markup-warning-total + #message + #none + #output + #platform-info + #process-input + #process-output + #program-error + #recovery-info + #sgml + #sgml-error-count + #sgml-error-total + #sgml-warning-count + #sgml-warning-total + #suppress + #syntax + #! + abs + activate + active + after + again + ancestor + and + another + always + and + any + any-text + arg + as + assert + attached + attribute + attributes + base + bcd + before + binary + binary-input + binary-mode + binary-output + blank + break-width + buffer + buffered + by + case + catch + catchable + cdata + cdata-entity + ceiling + children + clear + close + closed + compiled-date + complement + conref + content + content-end + content-start + context-translate + copy + copy-clear + counter + created + creating + creator + cross-translate + current + data-attribute + data-attributes + data-content + data-letters + date + deactivate + declare + declared-conref + declared-current + declared-defaulted + declared-fixed + declared-implied + declared-required + decrement + default-entity + defaulted + defaulting + define + delimiter + difference + digit + directory + discard + divide + do + doctype + document + document-element + document-end + document-start + domain-free + done + down-translate + drop + dtd + dtd-end + dtd-start + dtds + element + elements + else + elsewhere + empty + entities + entity + epilog-start + equal + equals + escape + except + exists + exit + external + external-data-entity + external-entity + external-function + external-output-function + external-text-entity + false + file + find + find-end + find-start + floor + flush + for + format + function + function-library + general + global + greater-equal + greater-than + group + groups + halt + halt-everything + has + hasnt + heralded-names + id + id-checking + idref + idrefs + ignore + implied + in + in-library + include + include-end + include-guard + include-start + inclusion + increment + initial + initial-size + input + insertion-break + instance + integer + internal + invalid-data + is + isnt + item + join + key + keyed + last + lastmost + lc + length + less-equal + less-than + letter + letters + library + line-end + line-start + literal + local + ln + log + log10 + lookahead + macro + macro-end + marked-section + markup-comment + markup-error + markup-parser + markup-wrapper + mask + match + matches + minus + mixed + modifiable + modulo + name + name-letters + namecase + named + names + ndata-entity + negate + nested-referents + new + newline + next + nmtoken + nmtokens + no + no-default-io + non-cdata + non-implied + non-sdata + not + not-reached + notation + number + number-of + numbers + null + nutoken + nutokens + occurrence + of + opaque + open + optional + or + output + output-to + over + parameter + parent + past + pattern + pcdata + plus + preparent + previous + process + process-end + process-start + processing-instruction + prolog-end + prolog-in-error + proper + public + put + rcdata + remove + read-only + readable + referent + referents + referents-allowed + referents-displayed + referents-not-allowed + remainder + reopen + repeat + repeated + replacement-break + reset + rethrow + return + reversed + round + save + save-clear + scan + sdata + sdata-entity + select + set + sgml + sgml-comment + sgml-declaration-end + sgml-dtd + sgml-dtds + sgml-error + sgml-in + sgml-out + sgml-parse + sgml-parser + shift + silent-referent + size + skip + source + space + specified + sqrt + status + stream + subdoc-entity + subdocument + subdocuments + subelement + submit + succeed + suppress + switch + symbol + system + system-call + take + test-system + text + text-mode + this + throw + thrown + times + to + token + translate + true + truncate + uc + ul + unanchored + unattached + unbuffered + union + unless + up-translate + usemap + using + value + value-end + value-start + valued + variable + when + white-space + with + word-end + word-start + writable + xml + xml-dtd + xml-dtds + xml-parse + yes + + + diff --git a/extra/xmode/modes/pascal.xml b/extra/xmode/modes/pascal.xml new file mode 100644 index 0000000000..d411d56d9a --- /dev/null +++ b/extra/xmode/modes/pascal.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + {$ + } + + + (*$ + *) + + + + + { + } + + + + (* + *) + + + // + + + ' + ' + + + ) + ( + ] + [ + . + , + ; + ^ + @ + := + : + = + <> + > + < + >= + <= + + + - + / + * + + + + and + array + as + at + asm + begin + case + class + const + constructor + destructor + dispinterface + div + do + downto + else + end + except + exports + file + final + finalization + finally + for + function + goto + if + implementation + in + inherited + initialization + inline + interface + is + label + mod + not + object + of + on + or + out + packed + procedure + program + property + raise + record + repeat + resourcestring + set + sealed + shl + shr + static + string + then + threadvar + to + try + type + unit + unsafe + until + uses + var + while + with + xor + + absolute + abstract + assembler + automated + cdecl + contains + default + deprecated + dispid + dynamic + export + external + far + forward + implements + index + library + local + message + name + namespaces + near + nodefault + overload + override + package + pascal + platform + private + protected + public + published + read + readonly + register + reintroduce + requires + resident + safecall + stdcall + stored + varargs + virtual + write + writeonly + + + shortint + byte + char + smallint + integer + word + longint + cardinal + + boolean + bytebool + wordbool + longbool + + real + single + double + extended + comp + currency + + pointer + + false + nil + self + true + + + diff --git a/extra/xmode/modes/patch.xml b/extra/xmode/modes/patch.xml new file mode 100644 index 0000000000..c2ac51a8f0 --- /dev/null +++ b/extra/xmode/modes/patch.xml @@ -0,0 +1,18 @@ + + + + + + + +++ + --- + Index: + + + > + - + < + ! + @@ + * + + diff --git a/extra/xmode/modes/perl.xml b/extra/xmode/modes/perl.xml new file mode 100644 index 0000000000..2bb9f669ac --- /dev/null +++ b/extra/xmode/modes/perl.xml @@ -0,0 +1,732 @@ + + + + + + + + + + + + + + + + + + # + + + + =head1 + =cut + + + =head2 + =cut + + + =head3 + =cut + + + =head4 + =cut + + + =item + =cut + + + =over + =cut + + + =back + =cut + + + =pod + =cut + + + =for + =cut + + + =begin + =cut + + + =end + =cut + + + + *" + *' + &" + &' + + + ${ + } + + + + \$#?((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + + + @((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + + + %((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + + + \$\$+((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + @\$((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + %\$((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + \*((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + + + \$\^\p{Alpha} + \$\p{Punct} + + + \\[@%\$&]((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + + + + &{ + } + + + + &\$((\p{Alpha}\w*|_\w+)?::)*(\p{Alpha}\w*|_\w+|\d+) + + + + sub\s + { + + + + &\p{Alpha}[\p{Alnum}_]*'\p{Alpha}[\p{Alnum}_]* + + + + " + " + + + + + ' + ' + + + + -[\p{Lower}]\w+ + + + -[\p{Lower}] + + + + \{(?=\s*[\p{Alpha}_\-][\p{Alnum}_]*\s*\}) + } + + + + + { + } + + + + + @{ + } + + + + + %{ + } + + + + : + + + __\w+__ + + + + ` + ` + + + + <[\p{Punct}\p{Alnum}_]*> + + + + + $2 + + + + $1 + + + + + + /.*?[^\\]/[cgimosx]*(?!\s*[\d\$\@\(\-]) + + + + q(?:|[qrxw])([#\[{(/|]) + ~1 + + + + tr\s*\{.*?[^\\]\}\s*\{(?:.*?[^\\])*\}[cds]* + + tr([^\p{Alnum}\p{Space}\}])(?:.*?)\1(?:.*?)\1[cds]* + + + y\s*\{.*?[^\\]\}\s*\{(?:.*?[^\\])*\}[cds]* + + y([^\p{Alnum}\p{Space}\}])(?:.*?)\1(?:.*?)\1[cds]* + + + m\s*\{.*?[^\\]\}[cgimosx]* + + m([^\p{Alnum}\p{Space}\}])(?:.*?[^\\])\1[cgimosx]* + + + s\s*\{.*?\}\s*\{.*?\}[egimosx]* + + s([^\p{Alnum}\p{Space}\}])(?:.*?)\1(?:.*?)\1[egimosx]* + + + || + && + != + <=> + -> + => + == + =~ + !~ + + += + -= + /= + *= + .= + %= + + &= + |= + **= + <<= + >>= + &&= + ||= + ^= + x= + >= + <= + > + < + + + | + & + ! + = + ! + + + - + / + ** + * + ^ + ~ + { + } + ? + : + + + + new + if + until + while + elsif + else + unless + for + foreach + BEGIN + END + + cmp + eq + ne + le + ge + not + and + or + xor + + + x + + + + + chomp + chop + chr + crypt + hex + index + lc + lcfirst + length + oct + ord + pack + reverse + rindex + sprintf + substr + uc + ucfirst + + + pos + quotemeta + split + study + + + abs + atan2 + cos + exp + + int + log + + rand + sin + sqrt + srand + + + pop + push + shift + splice + unshift + + + grep + join + map + + sort + unpack + + + delete + each + exists + keys + values + + + binmode + close + closedir + dbmclose + dbmopen + + eof + fileno + flock + format + getc + print + printf + read + readdir + rewinddir + seek + seekdir + select + syscall + sysread + sysseek + syswrite + tell + telldir + truncate + warn + write + + + + + + + + + vec + + + chdir + chmod + chown + chroot + fcntl + glob + ioctl + link + lstat + mkdir + open + opendir + readlink + rename + rmdir + stat + symlink + umask + unlink + utime + + + caller + continue + die + do + dump + eval + exit + goto + last + next + redo + return + wantarray + + + + + local + my + our + package + use + + + defined + + + formline + + + reset + scalar + undef + + + + alarm + exec + fork + getpgrp + getppid + getpriority + kill + pipe + setpgrp + setpriority + sleep + system + times + wait + waitpid + + + + import + no + + require + + + + bless + + + + ref + tie + tied + untie + + + + accept + bind + connect + getpeername + getsockname + getsockopt + listen + recv + send + setsockopt + shutdown + socket + socketpair + + + msgctl + msgget + msgrcv + msgsnd + semctl + semget + + semop + shmctl + shmget + shmread + shmwrite + + + endgrent + endhostent + endnetent + endpwent + getgrent + getgrgid + getgrnam + getlogin + getpwent + getpwnam + getpwuid + setgrent + setpwent + + + endprotoent + endservent + gethostbyaddr + gethostbyname + gethostent + getnetbyaddr + getnetbyname + getnetent + getprotobyname + getprotobynumber + getprotoent + getservbyname + getservbyport + getservent + sethostent + setnetent + setprotoent + setservent + + + gmtime + localtime + time + + + + + + = + + + + + + ${ + } + + + + + ->{ + } + + + $# + $ + + + @{ + } + + + @ + + + %{ + } + + + % + + | + & + ! + > + < + ) + ( + = + ! + + + - + / + * + ^ + ~ + } + { + . + , + ; + ] + [ + ? + : + + + + + + + %\d*\.?\d*[dfis] + + + + + + # + + + + ${ + } + + + $# + $ + + + @{ + } + + + @ + + + %{ + } + + + % + + + + + { + } + + + -> + + + + + )( + + + + # + + ( + ) + + + + + $ + @ + % + & + * + \ + + + + + + ([\[{\(]) + ~1 + + + + diff --git a/extra/xmode/modes/php.xml b/extra/xmode/modes/php.xml new file mode 100644 index 0000000000..91d8781627 --- /dev/null +++ b/extra/xmode/modes/php.xml @@ -0,0 +1,4832 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + ?> + + + + + <? + ?> + + + <?= + ?> + + + + + <% + %> + + + <%= + %> + + + + + <SCRIPT\s+LANGUAGE="?PHP"?> + </SCRIPT> + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <![CDATA[ + ]]> + + + + + <! + > + + + + </?\w+ + + + + & + ; + + + + + + + > + + + + + + + + + + + > + + + + + + + + + + + + ( + ) + + + + + + + + + + [ + ] + + + + + ( + ) + + + + ->\s*\w+\s*(?=\() + + + ->\w* + + + + ! + % + & + > + < + * + + + , + - + . + /(?!/) + :(?!:) + ; + = + ? + @ + [ + ] + ^ + ` + { + | + } + ~ + + + + + + + + + + + + \{(?=\$) + } + + + + + + + + + \{(?=\$) + } + + + + + + + + + \{(?=\$) + } + + + + + + + + { + + + + /**/ + + + + /** + */ + + + + /* + */ + + + // + # + + + + extends + implements + + + + + + + + \$\w+(?=\s*=\s*(&\s*)?new) + + + $ + + + + + + /**/ + + + + /** + */ + + + + /* + */ + + + + ' + ' + + + " + " + + + ` + ` + + + // + # + + ( + ( + + + + + $1 + + + + + ! + % + & + > + < + (array) + (bool) + (boolean) + (double) + (float) + (int) + (integer) + (object) + (real) + (string) + * + + + , + - + . + / + :(?!:) + ; + = + ? + @ + [ + ] + ^ + ` + { + | + } + ~ + ( + ) + + + + \$class\w* + \$interface\w* + + + class(\s+|$) + interface(\s+|$) + + + + \$\w+(?=(\[\$?[\s\w'"]+\])?->) + :: + + + + + + + + + + true + false + null + + + + + + + + + + + + + arrayiterator + arrayobject + cachingiterator + cachingrecursiveiterator + collection + descriptor + directoryiterator + domattr + domattribute + domcharacterdata + domdocument + domdocumenttype + domelement + domimplementation + domnamednodemap + domnode + domnodelist + domprocessinginstruction + domtext + domxpath + domxsltstylesheet + filteriterator + hw_api + hw_api_attribute + hw_api_content + hw_api_error + hw_api_object + hw_api_reason + limititerator + lob + memcache + parentiterator + pdo + pdostatement + rar + recursivedirectoryiterator + recursiveiteratoriterator + simplexmlelement + simplexmliterator + soapclient + soapfault + soapheader + soapparam + soapserver + soapvar + swfaction + swfbitmap + swfbutton + swfdisplayitem + swffill + swffont + swfgradient + swfmorph + swfmovie + swfshape + swfsprite + swftext + swftextfield + tidy + tidy_node + variant + + + + __call + __construct + __getfunctions + __getlastrequest + __getlastresponse + __gettypes + __tostring + abs + acos + acosh + add + add_namespace + add_root + addaction + addcolor + addcslashes + addentry + addfill + addfunction + addshape + addslashes + addstring + aggregate + aggregate_info + aggregate_methods + aggregate_methods_by_list + aggregate_methods_by_regexp + aggregate_properties + aggregate_properties_by_list + aggregate_properties_by_regexp + aggregation_info + align + apache_child_terminate + apache_get_modules + apache_get_version + apache_getenv + apache_lookup_uri + apache_note + apache_request_headers + apache_response_headers + apache_setenv + apd_breakpoint + apd_callstack + apd_clunk + apd_continue + apd_croak + apd_dump_function_table + apd_dump_persistent_resources + apd_dump_regular_resources + apd_echo + apd_get_active_symbols + apd_set_pprof_trace + apd_set_session + apd_set_session_trace + apd_set_socket_session_trace + append + append_child + append_sibling + appendchild + appenddata + array_change_key_case + array_chunk + array_combine + array_count_values + array_diff + array_diff_assoc + array_diff_key + array_diff_uassoc + array_diff_ukey + array_fill + array_filter + array_flip + array_intersect + array_intersect_assoc + array_intersect_key + array_intersect_uassoc + array_intersect_ukey + array_key_exists + array_keys + array_map + array_merge + array_merge_recursive + array_multisort + array_pad + array_pop + array_push + array_rand + array_reduce + array_reverse + array_search + array_shift + array_slice + array_splice + array_sum + array_udiff + array_udiff_assoc + array_udiff_uassoc + array_uintersect + array_uintersect_assoc + array_uintersect_uassoc + array_unique + array_unshift + array_values + array_walk + array_walk_recursive + arsort + ascii2ebcdic + asin + asinh + asort + aspell_check + aspell_check_raw + aspell_new + aspell_suggest + assert + assert_options + assign + assignelem + asxml + atan + atan2 + atanh + attreditable + attributes + base64_decode + base64_encode + base_convert + basename + bcadd + bccomp + bcdiv + bcmod + bcmul + bcpow + bcpowmod + bcscale + bcsqrt + bcsub + begintransaction + bin2hex + bind_textdomain_codeset + bindcolumn + bindec + bindparam + bindtextdomain + bzclose + bzcompress + bzdecompress + bzerrno + bzerror + bzerrstr + bzflush + bzopen + bzread + bzwrite + cal_days_in_month + cal_from_jd + cal_info + cal_to_jd + call_user_func + call_user_func_array + call_user_method + call_user_method_array + ccvs_add + ccvs_auth + ccvs_command + ccvs_count + ccvs_delete + ccvs_done + ccvs_init + ccvs_lookup + ccvs_new + ccvs_report + ccvs_return + ccvs_reverse + ccvs_sale + ccvs_status + ccvs_textvalue + ccvs_void + ceil + chdir + checkdate + checkdnsrr + checkin + checkout + chgrp + child_nodes + children + chmod + chop + chown + chr + chroot + chunk_split + class_exists + class_implements + class_parents + classkit_import + classkit_method_add + classkit_method_copy + classkit_method_redefine + classkit_method_remove + classkit_method_rename + clearstatcache + clone_node + clonenode + close + closedir + closelog + com + com_addref + com_create_guid + com_event_sink + com_get + com_get_active_object + com_invoke + com_isenum + com_load + com_load_typelib + com_message_pump + com_print_typeinfo + com_propget + com_propput + com_propset + com_release + com_set + commit + compact + connect + connection_aborted + connection_status + connection_timeout + constant + content + convert_cyr_string + convert_uudecode + convert_uuencode + copy + cos + cosh + count + count_chars + cpdf_add_annotation + cpdf_add_outline + cpdf_arc + cpdf_begin_text + cpdf_circle + cpdf_clip + cpdf_close + cpdf_closepath + cpdf_closepath_fill_stroke + cpdf_closepath_stroke + cpdf_continue_text + cpdf_curveto + cpdf_end_text + cpdf_fill + cpdf_fill_stroke + cpdf_finalize + cpdf_finalize_page + cpdf_global_set_document_limits + cpdf_import_jpeg + cpdf_lineto + cpdf_moveto + cpdf_newpath + cpdf_open + cpdf_output_buffer + cpdf_page_init + cpdf_place_inline_image + cpdf_rect + cpdf_restore + cpdf_rlineto + cpdf_rmoveto + cpdf_rotate + cpdf_rotate_text + cpdf_save + cpdf_save_to_file + cpdf_scale + cpdf_set_action_url + cpdf_set_char_spacing + cpdf_set_creator + cpdf_set_current_page + cpdf_set_font + cpdf_set_font_directories + cpdf_set_font_map_file + cpdf_set_horiz_scaling + cpdf_set_keywords + cpdf_set_leading + cpdf_set_page_animation + cpdf_set_subject + cpdf_set_text_matrix + cpdf_set_text_pos + cpdf_set_text_rendering + cpdf_set_text_rise + cpdf_set_title + cpdf_set_viewer_preferences + cpdf_set_word_spacing + cpdf_setdash + cpdf_setflat + cpdf_setgray + cpdf_setgray_fill + cpdf_setgray_stroke + cpdf_setlinecap + cpdf_setlinejoin + cpdf_setlinewidth + cpdf_setmiterlimit + cpdf_setrgbcolor + cpdf_setrgbcolor_fill + cpdf_setrgbcolor_stroke + cpdf_show + cpdf_show_xy + cpdf_stringwidth + cpdf_stroke + cpdf_text + cpdf_translate + crack_check + crack_closedict + crack_getlastmessage + crack_opendict + crc32 + create_attribute + create_cdata_section + create_comment + create_element + create_element_ns + create_entity_reference + create_function + create_processing_instruction + create_text_node + createattribute + createattributens + createcdatasection + createcomment + createdocument + createdocumentfragment + createdocumenttype + createelement + createelementns + createentityreference + createprocessinginstruction + createtextnode + crypt + ctype_alnum + ctype_alpha + ctype_cntrl + ctype_digit + ctype_graph + ctype_lower + ctype_print + ctype_punct + ctype_space + ctype_upper + ctype_xdigit + curl_close + curl_copy_handle + curl_errno + curl_error + curl_exec + curl_getinfo + curl_init + curl_multi_add_handle + curl_multi_close + curl_multi_exec + curl_multi_getcontent + curl_multi_info_read + curl_multi_init + curl_multi_remove_handle + curl_multi_select + curl_setopt + curl_version + current + cybercash_base64_decode + cybercash_base64_encode + cybercash_decr + cybercash_encr + cyrus_authenticate + cyrus_bind + cyrus_close + cyrus_connect + cyrus_query + cyrus_unbind + data + date + date_sunrise + date_sunset + dba_close + dba_delete + dba_exists + dba_fetch + dba_firstkey + dba_handlers + dba_insert + dba_key_split + dba_list + dba_nextkey + dba_open + dba_optimize + dba_popen + dba_replace + dba_sync + dbase_add_record + dbase_close + dbase_create + dbase_delete_record + dbase_get_header_info + dbase_get_record + dbase_get_record_with_names + dbase_numfields + dbase_numrecords + dbase_open + dbase_pack + dbase_replace_record + dblist + dbmclose + dbmdelete + dbmexists + dbmfetch + dbmfirstkey + dbminsert + dbmnextkey + dbmopen + dbmreplace + dbplus_add + dbplus_aql + dbplus_chdir + dbplus_close + dbplus_curr + dbplus_errcode + dbplus_errno + dbplus_find + dbplus_first + dbplus_flush + dbplus_freealllocks + dbplus_freelock + dbplus_freerlocks + dbplus_getlock + dbplus_getunique + dbplus_info + dbplus_last + dbplus_lockrel + dbplus_next + dbplus_open + dbplus_prev + dbplus_rchperm + dbplus_rcreate + dbplus_rcrtexact + dbplus_rcrtlike + dbplus_resolve + dbplus_restorepos + dbplus_rkeys + dbplus_ropen + dbplus_rquery + dbplus_rrename + dbplus_rsecindex + dbplus_runlink + dbplus_rzap + dbplus_savepos + dbplus_setindex + dbplus_setindexbynumber + dbplus_sql + dbplus_tcl + dbplus_tremove + dbplus_undo + dbplus_undoprepare + dbplus_unlockrel + dbplus_unselect + dbplus_update + dbplus_xlockrel + dbplus_xunlockrel + dbstat + dbx_close + dbx_compare + dbx_connect + dbx_error + dbx_escape_string + dbx_fetch_row + dbx_query + dbx_sort + dcgettext + dcngettext + dcstat + deaggregate + debug_backtrace + debug_print_backtrace + debug_zval_dump + debugger_off + debugger_on + decbin + dechex + decoct + decrement + define + define_syslog_variables + defined + deg2rad + delete + deletedata + description + dgettext + dio_close + dio_fcntl + dio_open + dio_read + dio_seek + dio_stat + dio_tcsetattr + dio_truncate + dio_write + dir + dirname + disk_free_space + disk_total_space + diskfreespace + dl + dngettext + dns_check_record + dns_get_mx + dns_get_record + doctype + document_element + dom_import_simplexml + domxml_new_doc + domxml_open_file + domxml_open_mem + domxml_version + domxml_xmltree + domxml_xslt_stylesheet + domxml_xslt_stylesheet_doc + domxml_xslt_stylesheet_file + dotnet + dotnet_load + doubleval + drawcurve + drawcurveto + drawline + drawlineto + dstanchors + dstofsrcanchors + dump_file + dump_mem + dump_node + each + easter_date + easter_days + ebcdic2ascii + end + entities + eof + erase + ereg + ereg_replace + eregi + eregi_replace + error_log + error_reporting + errorcode + errorinfo + escapeshellarg + escapeshellcmd + exec + execute + exif_imagetype + exif_read_data + exif_tagname + exif_thumbnail + exp + explode + expm1 + export + extension_loaded + extract + ezmlm_hash + fam_cancel_monitor + fam_close + fam_monitor_collection + fam_monitor_directory + fam_monitor_file + fam_next_event + fam_open + fam_pending + fam_resume_monitor + fam_suspend_monitor + fbsql_affected_rows + fbsql_autocommit + fbsql_blob_size + fbsql_change_user + fbsql_clob_size + fbsql_close + fbsql_commit + fbsql_connect + fbsql_create_blob + fbsql_create_clob + fbsql_create_db + fbsql_data_seek + fbsql_database + fbsql_database_password + fbsql_db_query + fbsql_db_status + fbsql_drop_db + fbsql_errno + fbsql_error + fbsql_fetch_array + fbsql_fetch_assoc + fbsql_fetch_field + fbsql_fetch_lengths + fbsql_fetch_object + fbsql_fetch_row + fbsql_field_flags + fbsql_field_len + fbsql_field_name + fbsql_field_seek + fbsql_field_table + fbsql_field_type + fbsql_free_result + fbsql_get_autostart_info + fbsql_hostname + fbsql_insert_id + fbsql_list_dbs + fbsql_list_fields + fbsql_list_tables + fbsql_next_result + fbsql_num_fields + fbsql_num_rows + fbsql_password + fbsql_pconnect + fbsql_query + fbsql_read_blob + fbsql_read_clob + fbsql_result + fbsql_rollback + fbsql_select_db + fbsql_set_lob_mode + fbsql_set_password + fbsql_set_transaction + fbsql_start_db + fbsql_stop_db + fbsql_tablename + fbsql_username + fbsql_warnings + fclose + fdf_add_doc_javascript + fdf_add_template + fdf_close + fdf_create + fdf_enum_values + fdf_errno + fdf_error + fdf_get_ap + fdf_get_attachment + fdf_get_encoding + fdf_get_file + fdf_get_flags + fdf_get_opt + fdf_get_status + fdf_get_value + fdf_get_version + fdf_header + fdf_next_field_name + fdf_open + fdf_open_string + fdf_remove_item + fdf_save + fdf_save_string + fdf_set_ap + fdf_set_encoding + fdf_set_file + fdf_set_flags + fdf_set_javascript_action + fdf_set_on_import_javascript + fdf_set_opt + fdf_set_status + fdf_set_submit_form_action + fdf_set_target_frame + fdf_set_value + fdf_set_version + feof + fetch + fetchall + fetchsingle + fflush + fgetc + fgetcsv + fgets + fgetss + file + file_exists + file_get_contents + file_put_contents + fileatime + filectime + filegroup + fileinode + filemtime + fileowner + fileperms + filepro + filepro_fieldcount + filepro_fieldname + filepro_fieldtype + filepro_fieldwidth + filepro_retrieve + filepro_rowcount + filesize + filetype + find + first_child + floatval + flock + floor + flush + fmod + fnmatch + fopen + fpassthru + fprintf + fputcsv + fputs + fread + free + frenchtojd + fribidi_log2vis + fscanf + fseek + fsockopen + fstat + ftell + ftok + ftp_alloc + ftp_cdup + ftp_chdir + ftp_chmod + ftp_close + ftp_connect + ftp_delete + ftp_exec + ftp_fget + ftp_fput + ftp_get + ftp_get_option + ftp_login + ftp_mdtm + ftp_mkdir + ftp_nb_continue + ftp_nb_fget + ftp_nb_fput + ftp_nb_get + ftp_nb_put + ftp_nlist + ftp_pasv + ftp_put + ftp_pwd + ftp_quit + ftp_raw + ftp_rawlist + ftp_rename + ftp_rmdir + ftp_set_option + ftp_site + ftp_size + ftp_ssl_connect + ftp_systype + ftruncate + ftstat + func_get_arg + func_get_args + func_num_args + function_exists + fwrite + gd_info + get + get_attr + get_attribute + get_attribute_node + get_browser + get_cfg_var + get_class + get_class_methods + get_class_vars + get_content + get_current_user + get_declared_classes + get_declared_interfaces + get_defined_constants + get_defined_functions + get_defined_vars + get_element_by_id + get_elements_by_tagname + get_extension_funcs + get_headers + get_html_translation_table + get_include_path + get_included_files + get_loaded_extensions + get_magic_quotes_gpc + get_magic_quotes_runtime + get_meta_tags + get_nodes + get_object_vars + get_parent_class + get_required_files + get_resource_type + getallheaders + getatime + getattr + getattribute + getattributenode + getattributenodens + getattributens + getbuffering + getchildren + getcrc + getctime + getcwd + getdate + getdepth + getelem + getelementbyid + getelementsbytagname + getelementsbytagnamens + getenv + getfilename + getfiletime + getfunctions + getgroup + getheight + gethostbyaddr + gethostbyname + gethostbynamel + gethostos + getimagesize + getinneriterator + getinode + getiterator + getlastmod + getmethod + getmtime + getmxrr + getmygid + getmyinode + getmypid + getmyuid + getname + getnameditem + getnameditemns + getopt + getowner + getpackedsize + getpath + getpathname + getperms + getposition + getprotobyname + getprotobynumber + getrandmax + getrusage + getservbyname + getservbyport + getshape1 + getshape2 + getsize + getstats + getsubiterator + gettext + gettimeofday + gettype + getunpackedsize + getversion + getwidth + glob + gmdate + gmmktime + gmp_abs + gmp_add + gmp_and + gmp_clrbit + gmp_cmp + gmp_com + gmp_div + gmp_div_q + gmp_div_qr + gmp_div_r + gmp_divexact + gmp_fact + gmp_gcd + gmp_gcdext + gmp_hamdist + gmp_init + gmp_intval + gmp_invert + gmp_jacobi + gmp_legendre + gmp_mod + gmp_mul + gmp_neg + gmp_or + gmp_perfect_square + gmp_popcount + gmp_pow + gmp_powm + gmp_prob_prime + gmp_random + gmp_scan0 + gmp_scan1 + gmp_setbit + gmp_sign + gmp_sqrt + gmp_sqrtrem + gmp_strval + gmp_sub + gmp_xor + gmstrftime + gregoriantojd + gzclose + gzcompress + gzdeflate + gzencode + gzeof + gzfile + gzgetc + gzgets + gzgetss + gzinflate + gzopen + gzpassthru + gzputs + gzread + gzrewind + gzseek + gztell + gzuncompress + gzwrite + handle + has_attribute + has_attributes + has_child_nodes + hasattribute + hasattributens + hasattributes + haschildnodes + haschildren + hasfeature + hasnext + hassiblings + header + headers_list + headers_sent + hebrev + hebrevc + hexdec + highlight_file + highlight_string + html_dump_mem + html_entity_decode + htmlentities + htmlspecialchars + http_build_query + hw_array2objrec + hw_changeobject + hw_children + hw_childrenobj + hw_close + hw_connect + hw_connection_info + hw_cp + hw_deleteobject + hw_docbyanchor + hw_docbyanchorobj + hw_document_attributes + hw_document_bodytag + hw_document_content + hw_document_setcontent + hw_document_size + hw_dummy + hw_edittext + hw_error + hw_errormsg + hw_free_document + hw_getanchors + hw_getanchorsobj + hw_getandlock + hw_getchildcoll + hw_getchildcollobj + hw_getchilddoccoll + hw_getchilddoccollobj + hw_getobject + hw_getobjectbyquery + hw_getobjectbyquerycoll + hw_getobjectbyquerycollobj + hw_getobjectbyqueryobj + hw_getparents + hw_getparentsobj + hw_getrellink + hw_getremote + hw_getremotechildren + hw_getsrcbydestobj + hw_gettext + hw_getusername + hw_identify + hw_incollections + hw_info + hw_inscoll + hw_insdoc + hw_insertanchors + hw_insertdocument + hw_insertobject + hw_mapid + hw_modifyobject + hw_mv + hw_new_document + hw_objrec2array + hw_output_document + hw_pconnect + hw_pipedocument + hw_root + hw_setlinkroot + hw_stat + hw_unlock + hw_who + hwapi_hgcsp + hwstat + hypot + ibase_add_user + ibase_affected_rows + ibase_backup + ibase_blob_add + ibase_blob_cancel + ibase_blob_close + ibase_blob_create + ibase_blob_echo + ibase_blob_get + ibase_blob_import + ibase_blob_info + ibase_blob_open + ibase_close + ibase_commit + ibase_commit_ret + ibase_connect + ibase_db_info + ibase_delete_user + ibase_drop_db + ibase_errcode + ibase_errmsg + ibase_execute + ibase_fetch_assoc + ibase_fetch_object + ibase_fetch_row + ibase_field_info + ibase_free_event_handler + ibase_free_query + ibase_free_result + ibase_gen_id + ibase_maintain_db + ibase_modify_user + ibase_name_result + ibase_num_fields + ibase_num_params + ibase_param_info + ibase_pconnect + ibase_prepare + ibase_query + ibase_restore + ibase_rollback + ibase_rollback_ret + ibase_server_info + ibase_service_attach + ibase_service_detach + ibase_set_event_handler + ibase_timefmt + ibase_trans + ibase_wait_event + iconv + iconv_get_encoding + iconv_mime_decode + iconv_mime_decode_headers + iconv_mime_encode + iconv_set_encoding + iconv_strlen + iconv_strpos + iconv_strrpos + iconv_substr + id3_get_genre_id + id3_get_genre_list + id3_get_genre_name + id3_get_tag + id3_get_version + id3_remove_tag + id3_set_tag + idate + identify + ifx_affected_rows + ifx_blobinfile_mode + ifx_byteasvarchar + ifx_close + ifx_connect + ifx_copy_blob + ifx_create_blob + ifx_create_char + ifx_do + ifx_error + ifx_errormsg + ifx_fetch_row + ifx_fieldproperties + ifx_fieldtypes + ifx_free_blob + ifx_free_char + ifx_free_result + ifx_get_blob + ifx_get_char + ifx_getsqlca + ifx_htmltbl_result + ifx_nullformat + ifx_num_fields + ifx_num_rows + ifx_pconnect + ifx_prepare + ifx_query + ifx_textasvarchar + ifx_update_blob + ifx_update_char + ifxus_close_slob + ifxus_create_slob + ifxus_free_slob + ifxus_open_slob + ifxus_read_slob + ifxus_seek_slob + ifxus_tell_slob + ifxus_write_slob + ignore_user_abort + image2wbmp + image_type_to_extension + image_type_to_mime_type + imagealphablending + imageantialias + imagearc + imagechar + imagecharup + imagecolorallocate + imagecolorallocatealpha + imagecolorat + imagecolorclosest + imagecolorclosestalpha + imagecolorclosesthwb + imagecolordeallocate + imagecolorexact + imagecolorexactalpha + imagecolormatch + imagecolorresolve + imagecolorresolvealpha + imagecolorset + imagecolorsforindex + imagecolorstotal + imagecolortransparent + imagecopy + imagecopymerge + imagecopymergegray + imagecopyresampled + imagecopyresized + imagecreate + imagecreatefromgd + imagecreatefromgd2 + imagecreatefromgd2part + imagecreatefromgif + imagecreatefromjpeg + imagecreatefrompng + imagecreatefromstring + imagecreatefromwbmp + imagecreatefromxbm + imagecreatefromxpm + imagecreatetruecolor + imagedashedline + imagedestroy + imageellipse + imagefill + imagefilledarc + imagefilledellipse + imagefilledpolygon + imagefilledrectangle + imagefilltoborder + imagefilter + imagefontheight + imagefontwidth + imageftbbox + imagefttext + imagegammacorrect + imagegd + imagegd2 + imagegif + imageinterlace + imageistruecolor + imagejpeg + imagelayereffect + imageline + imageloadfont + imagepalettecopy + imagepng + imagepolygon + imagepsbbox + imagepscopyfont + imagepsencodefont + imagepsextendfont + imagepsfreefont + imagepsloadfont + imagepsslantfont + imagepstext + imagerectangle + imagerotate + imagesavealpha + imagesetbrush + imagesetpixel + imagesetstyle + imagesetthickness + imagesettile + imagestring + imagestringup + imagesx + imagesy + imagetruecolortopalette + imagettfbbox + imagettftext + imagetypes + imagewbmp + imagexbm + imap_8bit + imap_alerts + imap_append + imap_base64 + imap_binary + imap_body + imap_bodystruct + imap_check + imap_clearflag_full + imap_close + imap_createmailbox + imap_delete + imap_deletemailbox + imap_errors + imap_expunge + imap_fetch_overview + imap_fetchbody + imap_fetchheader + imap_fetchstructure + imap_get_quota + imap_get_quotaroot + imap_getacl + imap_getmailboxes + imap_getsubscribed + imap_header + imap_headerinfo + imap_headers + imap_last_error + imap_list + imap_listmailbox + imap_listscan + imap_listsubscribed + imap_lsub + imap_mail + imap_mail_compose + imap_mail_copy + imap_mail_move + imap_mailboxmsginfo + imap_mime_header_decode + imap_msgno + imap_num_msg + imap_num_recent + imap_open + imap_ping + imap_qprint + imap_renamemailbox + imap_reopen + imap_rfc822_parse_adrlist + imap_rfc822_parse_headers + imap_rfc822_write_address + imap_scanmailbox + imap_search + imap_set_quota + imap_setacl + imap_setflag_full + imap_sort + imap_status + imap_subscribe + imap_thread + imap_timeout + imap_uid + imap_undelete + imap_unsubscribe + imap_utf7_decode + imap_utf7_encode + imap_utf8 + implode + import + import_request_variables + importnode + in_array + increment + inet_ntop + inet_pton + info + ingres_autocommit + ingres_close + ingres_commit + ingres_connect + ingres_fetch_array + ingres_fetch_object + ingres_fetch_row + ingres_field_length + ingres_field_name + ingres_field_nullable + ingres_field_precision + ingres_field_scale + ingres_field_type + ingres_num_fields + ingres_num_rows + ingres_pconnect + ingres_query + ingres_rollback + ini_alter + ini_get + ini_get_all + ini_restore + ini_set + insert + insert_before + insertanchor + insertbefore + insertcollection + insertdata + insertdocument + interface_exists + internal_subset + intval + ip2long + iptcembed + iptcparse + ircg_channel_mode + ircg_disconnect + ircg_eval_ecmascript_params + ircg_fetch_error_msg + ircg_get_username + ircg_html_encode + ircg_ignore_add + ircg_ignore_del + ircg_invite + ircg_is_conn_alive + ircg_join + ircg_kick + ircg_list + ircg_lookup_format_messages + ircg_lusers + ircg_msg + ircg_names + ircg_nick + ircg_nickname_escape + ircg_nickname_unescape + ircg_notice + ircg_oper + ircg_part + ircg_pconnect + ircg_register_format_messages + ircg_set_current + ircg_set_file + ircg_set_on_die + ircg_topic + ircg_who + ircg_whois + is_a + is_array + is_blank_node + is_bool + is_callable + is_dir + is_double + is_executable + is_file + is_finite + is_float + is_infinite + is_int + is_integer + is_link + is_long + is_nan + is_null + is_numeric + is_object + is_readable + is_real + is_resource + is_scalar + is_soap_fault + is_string + is_subclass_of + is_uploaded_file + is_writable + is_writeable + isasp + iscomment + isdir + isdot + isexecutable + isfile + ishtml + isid + isjste + islink + isphp + isreadable + issamenode + issupported + istext + iswhitespaceinelementcontent + iswritable + isxhtml + isxml + item + iterator_count + iterator_to_array + java_last_exception_clear + java_last_exception_get + jddayofweek + jdmonthname + jdtofrench + jdtogregorian + jdtojewish + jdtojulian + jdtounix + jewishtojd + join + jpeg2wbmp + juliantojd + key + krsort + ksort + langdepvalue + last_child + lastinsertid + lcg_value + ldap_8859_to_t61 + ldap_add + ldap_bind + ldap_close + ldap_compare + ldap_connect + ldap_count_entries + ldap_delete + ldap_dn2ufn + ldap_err2str + ldap_errno + ldap_error + ldap_explode_dn + ldap_first_attribute + ldap_first_entry + ldap_first_reference + ldap_free_result + ldap_get_attributes + ldap_get_dn + ldap_get_entries + ldap_get_option + ldap_get_values + ldap_get_values_len + ldap_list + ldap_mod_add + ldap_mod_del + ldap_mod_replace + ldap_modify + ldap_next_attribute + ldap_next_entry + ldap_next_reference + ldap_parse_reference + ldap_parse_result + ldap_read + ldap_rename + ldap_sasl_bind + ldap_search + ldap_set_option + ldap_set_rebind_proc + ldap_sort + ldap_start_tls + ldap_t61_to_8859 + ldap_unbind + levenshtein + link + linkinfo + load + loadhtml + loadhtmlfile + loadxml + localeconv + localtime + lock + log + log10 + log1p + long2ip + lookupnamespaceuri + lookupprefix + lstat + ltrim + lzf_compress + lzf_decompress + lzf_optimized_for + mail + mailparse_determine_best_xfer_encoding + mailparse_msg_create + mailparse_msg_extract_part + mailparse_msg_extract_part_file + mailparse_msg_free + mailparse_msg_get_part + mailparse_msg_get_part_data + mailparse_msg_get_structure + mailparse_msg_parse + mailparse_msg_parse_file + mailparse_rfc822_parse_addresses + mailparse_stream_encode + mailparse_uudecode_all + main + max + mb_convert_case + mb_convert_encoding + mb_convert_kana + mb_convert_variables + mb_decode_mimeheader + mb_decode_numericentity + mb_detect_encoding + mb_detect_order + mb_encode_mimeheader + mb_encode_numericentity + mb_ereg + mb_ereg_match + mb_ereg_replace + mb_ereg_search + mb_ereg_search_getpos + mb_ereg_search_getregs + mb_ereg_search_init + mb_ereg_search_pos + mb_ereg_search_regs + mb_ereg_search_setpos + mb_eregi + mb_eregi_replace + mb_get_info + mb_http_input + mb_http_output + mb_internal_encoding + mb_language + mb_list_encodings + mb_output_handler + mb_parse_str + mb_preferred_mime_name + mb_regex_encoding + mb_regex_set_options + mb_send_mail + mb_split + mb_strcut + mb_strimwidth + mb_strlen + mb_strpos + mb_strrpos + mb_strtolower + mb_strtoupper + mb_strwidth + mb_substitute_character + mb_substr + mb_substr_count + mcal_append_event + mcal_close + mcal_create_calendar + mcal_date_compare + mcal_date_valid + mcal_day_of_week + mcal_day_of_year + mcal_days_in_month + mcal_delete_calendar + mcal_delete_event + mcal_event_add_attribute + mcal_event_init + mcal_event_set_alarm + mcal_event_set_category + mcal_event_set_class + mcal_event_set_description + mcal_event_set_end + mcal_event_set_recur_daily + mcal_event_set_recur_monthly_mday + mcal_event_set_recur_monthly_wday + mcal_event_set_recur_none + mcal_event_set_recur_weekly + mcal_event_set_recur_yearly + mcal_event_set_start + mcal_event_set_title + mcal_expunge + mcal_fetch_current_stream_event + mcal_fetch_event + mcal_is_leap_year + mcal_list_alarms + mcal_list_events + mcal_next_recurrence + mcal_open + mcal_popen + mcal_rename_calendar + mcal_reopen + mcal_snooze + mcal_store_event + mcal_time_valid + mcal_week_of_year + mcrypt_cbc + mcrypt_cfb + mcrypt_create_iv + mcrypt_decrypt + mcrypt_ecb + mcrypt_enc_get_algorithms_name + mcrypt_enc_get_block_size + mcrypt_enc_get_iv_size + mcrypt_enc_get_key_size + mcrypt_enc_get_modes_name + mcrypt_enc_get_supported_key_sizes + mcrypt_enc_is_block_algorithm + mcrypt_enc_is_block_algorithm_mode + mcrypt_enc_is_block_mode + mcrypt_enc_self_test + mcrypt_encrypt + mcrypt_generic + mcrypt_generic_deinit + mcrypt_generic_end + mcrypt_generic_init + mcrypt_get_block_size + mcrypt_get_cipher_name + mcrypt_get_iv_size + mcrypt_get_key_size + mcrypt_list_algorithms + mcrypt_list_modes + mcrypt_module_close + mcrypt_module_get_algo_block_size + mcrypt_module_get_algo_key_size + mcrypt_module_get_supported_key_sizes + mcrypt_module_is_block_algorithm + mcrypt_module_is_block_algorithm_mode + mcrypt_module_is_block_mode + mcrypt_module_open + mcrypt_module_self_test + mcrypt_ofb + mcve_adduser + mcve_adduserarg + mcve_bt + mcve_checkstatus + mcve_chkpwd + mcve_chngpwd + mcve_completeauthorizations + mcve_connect + mcve_connectionerror + mcve_deleteresponse + mcve_deletetrans + mcve_deleteusersetup + mcve_deluser + mcve_destroyconn + mcve_destroyengine + mcve_disableuser + mcve_edituser + mcve_enableuser + mcve_force + mcve_getcell + mcve_getcellbynum + mcve_getcommadelimited + mcve_getheader + mcve_getuserarg + mcve_getuserparam + mcve_gft + mcve_gl + mcve_gut + mcve_initconn + mcve_initengine + mcve_initusersetup + mcve_iscommadelimited + mcve_liststats + mcve_listusers + mcve_maxconntimeout + mcve_monitor + mcve_numcolumns + mcve_numrows + mcve_override + mcve_parsecommadelimited + mcve_ping + mcve_preauth + mcve_preauthcompletion + mcve_qc + mcve_responseparam + mcve_return + mcve_returncode + mcve_returnstatus + mcve_sale + mcve_setblocking + mcve_setdropfile + mcve_setip + mcve_setssl + mcve_setssl_files + mcve_settimeout + mcve_settle + mcve_text_avs + mcve_text_code + mcve_text_cv + mcve_transactionauth + mcve_transactionavs + mcve_transactionbatch + mcve_transactioncv + mcve_transactionid + mcve_transactionitem + mcve_transactionssent + mcve_transactiontext + mcve_transinqueue + mcve_transnew + mcve_transparam + mcve_transsend + mcve_ub + mcve_uwait + mcve_verifyconnection + mcve_verifysslcert + mcve_void + md5 + md5_file + mdecrypt_generic + memcache_debug + memory_get_usage + metaphone + method_exists + mhash + mhash_count + mhash_get_block_size + mhash_get_hash_name + mhash_keygen_s2k + microtime + mime_content_type + mimetype + min + ming_setcubicthreshold + ming_setscale + ming_useswfversion + mkdir + mktime + money_format + move + move_uploaded_file + movepen + movepento + moveto + msession_connect + msession_count + msession_create + msession_destroy + msession_disconnect + msession_find + msession_get + msession_get_array + msession_get_data + msession_inc + msession_list + msession_listvar + msession_lock + msession_plugin + msession_randstr + msession_set + msession_set_array + msession_set_data + msession_timeout + msession_uniq + msession_unlock + msg_get_queue + msg_receive + msg_remove_queue + msg_send + msg_set_queue + msg_stat_queue + msql + msql_affected_rows + msql_close + msql_connect + msql_create_db + msql_createdb + msql_data_seek + msql_db_query + msql_dbname + msql_drop_db + msql_error + msql_fetch_array + msql_fetch_field + msql_fetch_object + msql_fetch_row + msql_field_flags + msql_field_len + msql_field_name + msql_field_seek + msql_field_table + msql_field_type + msql_fieldflags + msql_fieldlen + msql_fieldname + msql_fieldtable + msql_fieldtype + msql_free_result + msql_list_dbs + msql_list_fields + msql_list_tables + msql_num_fields + msql_num_rows + msql_numfields + msql_numrows + msql_pconnect + msql_query + msql_regcase + msql_result + msql_select_db + msql_tablename + mssql_bind + mssql_close + mssql_connect + mssql_data_seek + mssql_execute + mssql_fetch_array + mssql_fetch_assoc + mssql_fetch_batch + mssql_fetch_field + mssql_fetch_object + mssql_fetch_row + mssql_field_length + mssql_field_name + mssql_field_seek + mssql_field_type + mssql_free_result + mssql_free_statement + mssql_get_last_message + mssql_guid_string + mssql_init + mssql_min_error_severity + mssql_min_message_severity + mssql_next_result + mssql_num_fields + mssql_num_rows + mssql_pconnect + mssql_query + mssql_result + mssql_rows_affected + mssql_select_db + mt_getrandmax + mt_rand + mt_srand + multcolor + muscat_close + muscat_get + muscat_give + muscat_setup + muscat_setup_net + mysql_affected_rows + mysql_change_user + mysql_client_encoding + mysql_close + mysql_connect + mysql_create_db + mysql_data_seek + mysql_db_name + mysql_db_query + mysql_drop_db + mysql_errno + mysql_error + mysql_escape_string + mysql_fetch_array + mysql_fetch_assoc + mysql_fetch_field + mysql_fetch_lengths + mysql_fetch_object + mysql_fetch_row + mysql_field_flags + mysql_field_len + mysql_field_name + mysql_field_seek + mysql_field_table + mysql_field_type + mysql_free_result + mysql_get_client_info + mysql_get_host_info + mysql_get_proto_info + mysql_get_server_info + mysql_info + mysql_insert_id + mysql_list_dbs + mysql_list_fields + mysql_list_processes + mysql_list_tables + mysql_num_fields + mysql_num_rows + mysql_pconnect + mysql_ping + mysql_query + mysql_real_escape_string + mysql_result + mysql_select_db + mysql_stat + mysql_tablename + mysql_thread_id + mysql_unbuffered_query + mysqli_affected_rows + mysqli_autocommit + mysqli_bind_param + mysqli_bind_result + mysqli_change_user + mysqli_character_set_name + mysqli_client_encoding + mysqli_close + mysqli_commit + mysqli_connect + mysqli_connect_errno + mysqli_connect_error + mysqli_data_seek + mysqli_debug + mysqli_disable_reads_from_master + mysqli_disable_rpl_parse + mysqli_dump_debug_info + mysqli_embedded_connect + mysqli_enable_reads_from_master + mysqli_enable_rpl_parse + mysqli_errno + mysqli_error + mysqli_escape_string + mysqli_execute + mysqli_fetch + mysqli_fetch_array + mysqli_fetch_assoc + mysqli_fetch_field + mysqli_fetch_field_direct + mysqli_fetch_fields + mysqli_fetch_lengths + mysqli_fetch_object + mysqli_fetch_row + mysqli_field_count + mysqli_field_seek + mysqli_field_tell + mysqli_free_result + mysqli_get_client_info + mysqli_get_client_version + mysqli_get_host_info + mysqli_get_metadata + mysqli_get_proto_info + mysqli_get_server_info + mysqli_get_server_version + mysqli_info + mysqli_init + mysqli_insert_id + mysqli_kill + mysqli_master_query + mysqli_more_results + mysqli_multi_query + mysqli_next_result + mysqli_num_fields + mysqli_num_rows + mysqli_options + mysqli_param_count + mysqli_ping + mysqli_prepare + mysqli_query + mysqli_real_connect + mysqli_real_escape_string + mysqli_real_query + mysqli_report + mysqli_rollback + mysqli_rpl_parse_enabled + mysqli_rpl_probe + mysqli_rpl_query_type + mysqli_select_db + mysqli_send_long_data + mysqli_send_query + mysqli_server_end + mysqli_server_init + mysqli_set_opt + mysqli_sqlstate + mysqli_ssl_set + mysqli_stat + mysqli_stmt_affected_rows + mysqli_stmt_bind_param + mysqli_stmt_bind_result + mysqli_stmt_close + mysqli_stmt_data_seek + mysqli_stmt_errno + mysqli_stmt_error + mysqli_stmt_execute + mysqli_stmt_fetch + mysqli_stmt_free_result + mysqli_stmt_init + mysqli_stmt_num_rows + mysqli_stmt_param_count + mysqli_stmt_prepare + mysqli_stmt_reset + mysqli_stmt_result_metadata + mysqli_stmt_send_long_data + mysqli_stmt_sqlstate + mysqli_stmt_store_result + mysqli_store_result + mysqli_thread_id + mysqli_thread_safe + mysqli_use_result + mysqli_warning_count + name + natcasesort + natsort + ncurses_addch + ncurses_addchnstr + ncurses_addchstr + ncurses_addnstr + ncurses_addstr + ncurses_assume_default_colors + ncurses_attroff + ncurses_attron + ncurses_attrset + ncurses_baudrate + ncurses_beep + ncurses_bkgd + ncurses_bkgdset + ncurses_border + ncurses_bottom_panel + ncurses_can_change_color + ncurses_cbreak + ncurses_clear + ncurses_clrtobot + ncurses_clrtoeol + ncurses_color_content + ncurses_color_set + ncurses_curs_set + ncurses_def_prog_mode + ncurses_def_shell_mode + ncurses_define_key + ncurses_del_panel + ncurses_delay_output + ncurses_delch + ncurses_deleteln + ncurses_delwin + ncurses_doupdate + ncurses_echo + ncurses_echochar + ncurses_end + ncurses_erase + ncurses_erasechar + ncurses_filter + ncurses_flash + ncurses_flushinp + ncurses_getch + ncurses_getmaxyx + ncurses_getmouse + ncurses_getyx + ncurses_halfdelay + ncurses_has_colors + ncurses_has_ic + ncurses_has_il + ncurses_has_key + ncurses_hide_panel + ncurses_hline + ncurses_inch + ncurses_init + ncurses_init_color + ncurses_init_pair + ncurses_insch + ncurses_insdelln + ncurses_insertln + ncurses_insstr + ncurses_instr + ncurses_isendwin + ncurses_keyok + ncurses_keypad + ncurses_killchar + ncurses_longname + ncurses_meta + ncurses_mouse_trafo + ncurses_mouseinterval + ncurses_mousemask + ncurses_move + ncurses_move_panel + ncurses_mvaddch + ncurses_mvaddchnstr + ncurses_mvaddchstr + ncurses_mvaddnstr + ncurses_mvaddstr + ncurses_mvcur + ncurses_mvdelch + ncurses_mvgetch + ncurses_mvhline + ncurses_mvinch + ncurses_mvvline + ncurses_mvwaddstr + ncurses_napms + ncurses_new_panel + ncurses_newpad + ncurses_newwin + ncurses_nl + ncurses_nocbreak + ncurses_noecho + ncurses_nonl + ncurses_noqiflush + ncurses_noraw + ncurses_pair_content + ncurses_panel_above + ncurses_panel_below + ncurses_panel_window + ncurses_pnoutrefresh + ncurses_prefresh + ncurses_putp + ncurses_qiflush + ncurses_raw + ncurses_refresh + ncurses_replace_panel + ncurses_reset_prog_mode + ncurses_reset_shell_mode + ncurses_resetty + ncurses_savetty + ncurses_scr_dump + ncurses_scr_init + ncurses_scr_restore + ncurses_scr_set + ncurses_scrl + ncurses_show_panel + ncurses_slk_attr + ncurses_slk_attroff + ncurses_slk_attron + ncurses_slk_attrset + ncurses_slk_clear + ncurses_slk_color + ncurses_slk_init + ncurses_slk_noutrefresh + ncurses_slk_refresh + ncurses_slk_restore + ncurses_slk_set + ncurses_slk_touch + ncurses_standend + ncurses_standout + ncurses_start_color + ncurses_termattrs + ncurses_termname + ncurses_timeout + ncurses_top_panel + ncurses_typeahead + ncurses_ungetch + ncurses_ungetmouse + ncurses_update_panels + ncurses_use_default_colors + ncurses_use_env + ncurses_use_extended_names + ncurses_vidattr + ncurses_vline + ncurses_waddch + ncurses_waddstr + ncurses_wattroff + ncurses_wattron + ncurses_wattrset + ncurses_wborder + ncurses_wclear + ncurses_wcolor_set + ncurses_werase + ncurses_wgetch + ncurses_whline + ncurses_wmouse_trafo + ncurses_wmove + ncurses_wnoutrefresh + ncurses_wrefresh + ncurses_wstandend + ncurses_wstandout + ncurses_wvline + next + next_sibling + nextframe + ngettext + nl2br + nl_langinfo + node_name + node_type + node_value + normalize + notations + notes_body + notes_copy_db + notes_create_db + notes_create_note + notes_drop_db + notes_find_note + notes_header_info + notes_list_msgs + notes_mark_read + notes_mark_unread + notes_nav_create + notes_search + notes_unread + notes_version + nsapi_request_headers + nsapi_response_headers + nsapi_virtual + number_format + ob_clean + ob_end_clean + ob_end_flush + ob_flush + ob_get_clean + ob_get_contents + ob_get_flush + ob_get_length + ob_get_level + ob_get_status + ob_gzhandler + ob_iconv_handler + ob_implicit_flush + ob_list_handlers + ob_start + ob_tidyhandler + object + objectbyanchor + oci_bind_by_name + oci_cancel + oci_close + oci_commit + oci_connect + oci_define_by_name + oci_error + oci_execute + oci_fetch + oci_fetch_all + oci_fetch_array + oci_fetch_assoc + oci_fetch_object + oci_fetch_row + oci_field_is_null + oci_field_name + oci_field_precision + oci_field_scale + oci_field_size + oci_field_type + oci_field_type_raw + oci_free_statement + oci_internal_debug + oci_lob_copy + oci_lob_is_equal + oci_new_collection + oci_new_connect + oci_new_cursor + oci_new_descriptor + oci_num_fields + oci_num_rows + oci_parse + oci_password_change + oci_pconnect + oci_result + oci_rollback + oci_server_version + oci_set_prefetch + oci_statement_type + ocibindbyname + ocicancel + ocicloselob + ocicollappend + ocicollassign + ocicollassignelem + ocicollgetelem + ocicollmax + ocicollsize + ocicolltrim + ocicolumnisnull + ocicolumnname + ocicolumnprecision + ocicolumnscale + ocicolumnsize + ocicolumntype + ocicolumntyperaw + ocicommit + ocidefinebyname + ocierror + ociexecute + ocifetch + ocifetchinto + ocifetchstatement + ocifreecollection + ocifreecursor + ocifreedesc + ocifreestatement + ociinternaldebug + ociloadlob + ocilogoff + ocilogon + ocinewcollection + ocinewcursor + ocinewdescriptor + ocinlogon + ocinumcols + ociparse + ociplogon + ociresult + ocirollback + ocirowcount + ocisavelob + ocisavelobfile + ociserverversion + ocisetprefetch + ocistatementtype + ociwritelobtofile + ociwritetemporarylob + octdec + odbc_autocommit + odbc_binmode + odbc_close + odbc_close_all + odbc_columnprivileges + odbc_columns + odbc_commit + odbc_connect + odbc_cursor + odbc_data_source + odbc_do + odbc_error + odbc_errormsg + odbc_exec + odbc_execute + odbc_fetch_array + odbc_fetch_into + odbc_fetch_object + odbc_fetch_row + odbc_field_len + odbc_field_name + odbc_field_num + odbc_field_precision + odbc_field_scale + odbc_field_type + odbc_foreignkeys + odbc_free_result + odbc_gettypeinfo + odbc_longreadlen + odbc_next_result + odbc_num_fields + odbc_num_rows + odbc_pconnect + odbc_prepare + odbc_primarykeys + odbc_procedurecolumns + odbc_procedures + odbc_result + odbc_result_all + odbc_rollback + odbc_setoption + odbc_specialcolumns + odbc_statistics + odbc_tableprivileges + odbc_tables + offsetexists + offsetget + offsetset + offsetunset + openal_buffer_create + openal_buffer_data + openal_buffer_destroy + openal_buffer_get + openal_buffer_loadwav + openal_context_create + openal_context_current + openal_context_destroy + openal_context_process + openal_context_suspend + openal_device_close + openal_device_open + openal_listener_get + openal_listener_set + openal_source_create + openal_source_destroy + openal_source_get + openal_source_pause + openal_source_play + openal_source_rewind + openal_source_set + openal_source_stop + openal_stream + opendir + openlog + openssl_csr_export + openssl_csr_export_to_file + openssl_csr_new + openssl_csr_sign + openssl_error_string + openssl_free_key + openssl_get_privatekey + openssl_get_publickey + openssl_open + openssl_pkcs7_decrypt + openssl_pkcs7_encrypt + openssl_pkcs7_sign + openssl_pkcs7_verify + openssl_pkey_export + openssl_pkey_export_to_file + openssl_pkey_get_private + openssl_pkey_get_public + openssl_pkey_new + openssl_private_decrypt + openssl_private_encrypt + openssl_public_decrypt + openssl_public_encrypt + openssl_seal + openssl_sign + openssl_verify + openssl_x509_check_private_key + openssl_x509_checkpurpose + openssl_x509_export + openssl_x509_export_to_file + openssl_x509_free + openssl_x509_parse + openssl_x509_read + ora_bind + ora_close + ora_columnname + ora_columnsize + ora_columntype + ora_commit + ora_commitoff + ora_commiton + ora_do + ora_error + ora_errorcode + ora_exec + ora_fetch + ora_fetch_into + ora_getcolumn + ora_logoff + ora_logon + ora_numcols + ora_numrows + ora_open + ora_parse + ora_plogon + ora_rollback + ord + output + output_add_rewrite_var + output_reset_rewrite_vars + overload + override_function + ovrimos_close + ovrimos_commit + ovrimos_connect + ovrimos_cursor + ovrimos_exec + ovrimos_execute + ovrimos_fetch_into + ovrimos_fetch_row + ovrimos_field_len + ovrimos_field_name + ovrimos_field_num + ovrimos_field_type + ovrimos_free_result + ovrimos_longreadlen + ovrimos_num_fields + ovrimos_num_rows + ovrimos_prepare + ovrimos_result + ovrimos_result_all + ovrimos_rollback + owner_document + pack + parent_node + parents + parse_ini_file + parse_str + parse_url + parsekit_compile_file + parsekit_compile_string + parsekit_func_arginfo + passthru + pathinfo + pclose + pcntl_alarm + pcntl_exec + pcntl_fork + pcntl_getpriority + pcntl_setpriority + pcntl_signal + pcntl_wait + pcntl_waitpid + pcntl_wexitstatus + pcntl_wifexited + pcntl_wifsignaled + pcntl_wifstopped + pcntl_wstopsig + pcntl_wtermsig + pconnect + pdf_add_annotation + pdf_add_bookmark + pdf_add_launchlink + pdf_add_locallink + pdf_add_note + pdf_add_outline + pdf_add_pdflink + pdf_add_thumbnail + pdf_add_weblink + pdf_arc + pdf_arcn + pdf_attach_file + pdf_begin_page + pdf_begin_pattern + pdf_begin_template + pdf_circle + pdf_clip + pdf_close + pdf_close_image + pdf_close_pdi + pdf_close_pdi_page + pdf_closepath + pdf_closepath_fill_stroke + pdf_closepath_stroke + pdf_concat + pdf_continue_text + pdf_curveto + pdf_delete + pdf_end_page + pdf_end_pattern + pdf_end_template + pdf_endpath + pdf_fill + pdf_fill_stroke + pdf_findfont + pdf_fit_pdi_page + pdf_get_buffer + pdf_get_font + pdf_get_fontname + pdf_get_fontsize + pdf_get_image_height + pdf_get_image_width + pdf_get_majorversion + pdf_get_minorversion + pdf_get_parameter + pdf_get_pdi_parameter + pdf_get_pdi_value + pdf_get_value + pdf_initgraphics + pdf_lineto + pdf_load_font + pdf_makespotcolor + pdf_moveto + pdf_new + pdf_open + pdf_open_ccitt + pdf_open_file + pdf_open_gif + pdf_open_image + pdf_open_image_file + pdf_open_jpeg + pdf_open_memory_image + pdf_open_pdi + pdf_open_pdi_page + pdf_open_png + pdf_open_tiff + pdf_place_image + pdf_place_pdi_page + pdf_rect + pdf_restore + pdf_rotate + pdf_save + pdf_scale + pdf_set_border_color + pdf_set_border_dash + pdf_set_border_style + pdf_set_char_spacing + pdf_set_duration + pdf_set_font + pdf_set_horiz_scaling + pdf_set_info + pdf_set_info_author + pdf_set_info_creator + pdf_set_info_keywords + pdf_set_info_subject + pdf_set_info_title + pdf_set_leading + pdf_set_parameter + pdf_set_text_matrix + pdf_set_text_pos + pdf_set_text_rendering + pdf_set_text_rise + pdf_set_value + pdf_set_word_spacing + pdf_setcolor + pdf_setdash + pdf_setflat + pdf_setfont + pdf_setgray + pdf_setgray_fill + pdf_setgray_stroke + pdf_setlinecap + pdf_setlinejoin + pdf_setlinewidth + pdf_setmatrix + pdf_setmiterlimit + pdf_setpolydash + pdf_setrgbcolor + pdf_setrgbcolor_fill + pdf_setrgbcolor_stroke + pdf_show + pdf_show_boxed + pdf_show_xy + pdf_skew + pdf_stringwidth + pdf_stroke + pdf_translate + pfpro_cleanup + pfpro_init + pfpro_process + pfpro_process_raw + pfpro_version + pfsockopen + pg_affected_rows + pg_cancel_query + pg_client_encoding + pg_close + pg_connect + pg_connection_busy + pg_connection_reset + pg_connection_status + pg_convert + pg_copy_from + pg_copy_to + pg_dbname + pg_delete + pg_end_copy + pg_escape_bytea + pg_escape_string + pg_fetch_all + pg_fetch_array + pg_fetch_assoc + pg_fetch_object + pg_fetch_result + pg_fetch_row + pg_field_is_null + pg_field_name + pg_field_num + pg_field_prtlen + pg_field_size + pg_field_type + pg_free_result + pg_get_notify + pg_get_pid + pg_get_result + pg_host + pg_insert + pg_last_error + pg_last_notice + pg_last_oid + pg_lo_close + pg_lo_create + pg_lo_export + pg_lo_import + pg_lo_open + pg_lo_read + pg_lo_read_all + pg_lo_seek + pg_lo_tell + pg_lo_unlink + pg_lo_write + pg_meta_data + pg_num_fields + pg_num_rows + pg_options + pg_parameter_status + pg_pconnect + pg_ping + pg_port + pg_put_line + pg_query + pg_result_error + pg_result_seek + pg_result_status + pg_select + pg_send_query + pg_set_client_encoding + pg_trace + pg_tty + pg_unescape_bytea + pg_untrace + pg_update + pg_version + php_check_syntax + php_ini_scanned_files + php_logo_guid + php_sapi_name + php_strip_whitespace + php_uname + phpcredits + phpinfo + phpversion + pi + png2wbmp + popen + pos + posix_ctermid + posix_get_last_error + posix_getcwd + posix_getegid + posix_geteuid + posix_getgid + posix_getgrgid + posix_getgrnam + posix_getgroups + posix_getlogin + posix_getpgid + posix_getpgrp + posix_getpid + posix_getppid + posix_getpwnam + posix_getpwuid + posix_getrlimit + posix_getsid + posix_getuid + posix_isatty + posix_kill + posix_mkfifo + posix_setegid + posix_seteuid + posix_setgid + posix_setpgid + posix_setsid + posix_setuid + posix_strerror + posix_times + posix_ttyname + posix_uname + pow + prefix + preg_grep + preg_match + preg_match_all + preg_quote + preg_replace + preg_replace_callback + preg_split + prepare + prev + previous_sibling + print_r + printer_abort + printer_close + printer_create_brush + printer_create_dc + printer_create_font + printer_create_pen + printer_delete_brush + printer_delete_dc + printer_delete_font + printer_delete_pen + printer_draw_bmp + printer_draw_chord + printer_draw_elipse + printer_draw_line + printer_draw_pie + printer_draw_rectangle + printer_draw_roundrect + printer_draw_text + printer_end_doc + printer_end_page + printer_get_option + printer_list + printer_logical_fontheight + printer_open + printer_select_brush + printer_select_font + printer_select_pen + printer_set_option + printer_start_doc + printer_start_page + printer_write + printf + proc_close + proc_get_status + proc_nice + proc_open + proc_terminate + process + pspell_add_to_personal + pspell_add_to_session + pspell_check + pspell_clear_session + pspell_config_create + pspell_config_data_dir + pspell_config_dict_dir + pspell_config_ignore + pspell_config_mode + pspell_config_personal + pspell_config_repl + pspell_config_runtogether + pspell_config_save_repl + pspell_new + pspell_new_config + pspell_new_personal + pspell_save_wordlist + pspell_store_replacement + pspell_suggest + public_id + putenv + qdom_error + qdom_tree + query + quoted_printable_decode + quotemeta + rad2deg + rand + range + rar_close + rar_entry_get + rar_list + rar_open + rawurldecode + rawurlencode + read + read_exif_data + readdir + readfile + readgzfile + readline + readline_add_history + readline_callback_handler_install + readline_callback_handler_remove + readline_callback_read_char + readline_clear_history + readline_completion_function + readline_info + readline_list_history + readline_on_new_line + readline_read_history + readline_redisplay + readline_write_history + readlink + realpath + reason + recode + recode_file + recode_string + register_shutdown_function + register_tick_function + registernamespace + relaxngvalidate + relaxngvalidatesource + remove + remove_attribute + remove_child + removeattribute + removeattributenode + removeattributens + removechild + rename + rename_function + replace + replace_child + replace_node + replacechild + replacedata + reset + restore_error_handler + restore_exception_handler + restore_include_path + result_dump_file + result_dump_mem + rewind + rewinddir + rmdir + rollback + rotate + rotateto + round + rowcount + rsort + rtrim + save + savehtml + savehtmlfile + savexml + scale + scaleto + scandir + schemavalidate + schemavalidatesource + seek + sem_acquire + sem_get + sem_release + sem_remove + serialize + sesam_affected_rows + sesam_commit + sesam_connect + sesam_diagnostic + sesam_disconnect + sesam_errormsg + sesam_execimm + sesam_fetch_array + sesam_fetch_result + sesam_fetch_row + sesam_field_array + sesam_field_name + sesam_free_result + sesam_num_fields + sesam_query + sesam_rollback + sesam_seek_row + sesam_settransaction + session_cache_expire + session_cache_limiter + session_commit + session_decode + session_destroy + session_encode + session_get_cookie_params + session_id + session_is_registered + session_module_name + session_name + session_regenerate_id + session_register + session_save_path + session_set_cookie_params + session_set_save_handler + session_start + session_unregister + session_unset + session_write_close + set + set_attribute + set_content + set_error_handler + set_exception_handler + set_file_buffer + set_include_path + set_magic_quotes_runtime + set_name + set_namespace + set_time_limit + setaction + setattribute + setattributenode + setattributenodens + setattributens + setbackground + setbounds + setbuffering + setclass + setcolor + setcommitedversion + setcookie + setdepth + setdimension + setdown + setfont + setframes + setheight + sethit + setindentation + setleftfill + setleftmargin + setline + setlinespacing + setlocale + setmargins + setname + setover + setpersistence + setrate + setratio + setrawcookie + setrightfill + setrightmargin + setspacing + settype + setup + sha1 + sha1_file + shell_exec + shm_attach + shm_detach + shm_get_var + shm_put_var + shm_remove + shm_remove_var + shmop_close + shmop_delete + shmop_open + shmop_read + shmop_size + shmop_write + show_source + shuffle + similar_text + simplexml_import_dom + simplexml_load_file + simplexml_load_string + sin + sinh + size + sizeof + skewx + skewxto + skewy + skewyto + sleep + snmp_get_quick_print + snmp_get_valueretrieval + snmp_read_mib + snmp_set_enum_print + snmp_set_oid_numeric_print + snmp_set_quick_print + snmp_set_valueretrieval + snmpget + snmpgetnext + snmprealwalk + snmpset + snmpwalk + snmpwalkoid + socket_accept + socket_bind + socket_clear_error + socket_close + socket_connect + socket_create + socket_create_listen + socket_create_pair + socket_get_option + socket_get_status + socket_getpeername + socket_getsockname + socket_last_error + socket_listen + socket_read + socket_recv + socket_recvfrom + socket_select + socket_send + socket_sendto + socket_set_block + socket_set_blocking + socket_set_nonblock + socket_set_option + socket_set_timeout + socket_shutdown + socket_strerror + socket_write + sort + soundex + specified + spl_classes + split + spliti + splittext + sprintf + sql_regcase + sqlite_array_query + sqlite_busy_timeout + sqlite_changes + sqlite_close + sqlite_column + sqlite_create_aggregate + sqlite_create_function + sqlite_current + sqlite_error_string + sqlite_escape_string + sqlite_exec + sqlite_factory + sqlite_fetch_all + sqlite_fetch_array + sqlite_fetch_column_types + sqlite_fetch_object + sqlite_fetch_single + sqlite_fetch_string + sqlite_field_name + sqlite_has_more + sqlite_has_prev + sqlite_last_error + sqlite_last_insert_rowid + sqlite_libencoding + sqlite_libversion + sqlite_next + sqlite_num_fields + sqlite_num_rows + sqlite_open + sqlite_popen + sqlite_prev + sqlite_query + sqlite_rewind + sqlite_seek + sqlite_single_query + sqlite_udf_decode_binary + sqlite_udf_encode_binary + sqlite_unbuffered_query + sqrt + srand + srcanchors + srcsofdst + sscanf + stat + str_ireplace + str_pad + str_repeat + str_replace + str_rot13 + str_shuffle + str_split + str_word_count + strcasecmp + strchr + strcmp + strcoll + strcspn + stream_context_create + stream_context_get_default + stream_context_get_options + stream_context_set_option + stream_context_set_params + stream_copy_to_stream + stream_filter_append + stream_filter_prepend + stream_filter_register + stream_filter_remove + stream_get_contents + stream_get_filters + stream_get_line + stream_get_meta_data + stream_get_transports + stream_get_wrappers + stream_register_wrapper + stream_select + stream_set_blocking + stream_set_timeout + stream_set_write_buffer + stream_socket_accept + stream_socket_client + stream_socket_enable_crypto + stream_socket_get_name + stream_socket_recvfrom + stream_socket_sendto + stream_socket_server + stream_wrapper_register + stream_wrapper_restore + stream_wrapper_unregister + streammp3 + strftime + strip_tags + stripcslashes + stripos + stripslashes + stristr + strlen + strnatcasecmp + strnatcmp + strncasecmp + strncmp + strpbrk + strpos + strptime + strrchr + strrev + strripos + strrpos + strspn + strstr + strtok + strtolower + strtotime + strtoupper + strtr + strval + substr + substr_compare + substr_count + substr_replace + substringdata + swf_actiongeturl + swf_actiongotoframe + swf_actiongotolabel + swf_actionnextframe + swf_actionplay + swf_actionprevframe + swf_actionsettarget + swf_actionstop + swf_actiontogglequality + swf_actionwaitforframe + swf_addbuttonrecord + swf_addcolor + swf_closefile + swf_definebitmap + swf_definefont + swf_defineline + swf_definepoly + swf_definerect + swf_definetext + swf_endbutton + swf_enddoaction + swf_endshape + swf_endsymbol + swf_fontsize + swf_fontslant + swf_fonttracking + swf_getbitmapinfo + swf_getfontinfo + swf_getframe + swf_labelframe + swf_lookat + swf_modifyobject + swf_mulcolor + swf_nextid + swf_oncondition + swf_openfile + swf_ortho + swf_ortho2 + swf_perspective + swf_placeobject + swf_polarview + swf_popmatrix + swf_posround + swf_pushmatrix + swf_removeobject + swf_rotate + swf_scale + swf_setfont + swf_setframe + swf_shapearc + swf_shapecurveto + swf_shapecurveto3 + swf_shapefillbitmapclip + swf_shapefillbitmaptile + swf_shapefilloff + swf_shapefillsolid + swf_shapelinesolid + swf_shapelineto + swf_shapemoveto + swf_showframe + swf_startbutton + swf_startdoaction + swf_startshape + swf_startsymbol + swf_textwidth + swf_translate + swf_viewport + swfbutton_keypress + sybase_affected_rows + sybase_close + sybase_connect + sybase_data_seek + sybase_deadlock_retry_count + sybase_fetch_array + sybase_fetch_assoc + sybase_fetch_field + sybase_fetch_object + sybase_fetch_row + sybase_field_seek + sybase_free_result + sybase_get_last_message + sybase_min_client_severity + sybase_min_error_severity + sybase_min_message_severity + sybase_min_server_severity + sybase_num_fields + sybase_num_rows + sybase_pconnect + sybase_query + sybase_result + sybase_select_db + sybase_set_message_handler + sybase_unbuffered_query + symlink + syslog + system + system_id + tagname + tan + tanh + target + tcpwrap_check + tell + tempnam + textdomain + tidy_access_count + tidy_clean_repair + tidy_config_count + tidy_diagnose + tidy_error_count + tidy_get_body + tidy_get_config + tidy_get_error_buffer + tidy_get_head + tidy_get_html + tidy_get_html_ver + tidy_get_output + tidy_get_release + tidy_get_root + tidy_get_status + tidy_getopt + tidy_is_xhtml + tidy_is_xml + tidy_load_config + tidy_parse_file + tidy_parse_string + tidy_repair_file + tidy_repair_string + tidy_reset_config + tidy_save_config + tidy_set_encoding + tidy_setopt + tidy_warning_count + time + time_nanosleep + title + tmpfile + token_get_all + token_name + touch + trigger_error + trim + truncate + type + uasort + ucfirst + ucwords + udm_add_search_limit + udm_alloc_agent + udm_alloc_agent_array + udm_api_version + udm_cat_list + udm_cat_path + udm_check_charset + udm_check_stored + udm_clear_search_limits + udm_close_stored + udm_crc32 + udm_errno + udm_error + udm_find + udm_free_agent + udm_free_ispell_data + udm_free_res + udm_get_doc_count + udm_get_res_field + udm_get_res_param + udm_hash32 + udm_load_ispell_data + udm_open_stored + udm_set_agent_param + uksort + umask + uniqid + unixtojd + unlink + unlink_node + unlock + unpack + unregister_tick_function + unserialize + urldecode + urlencode + user + user_error + userlist + usleep + usort + utf8_decode + utf8_encode + valid + validate + value + values + var_dump + var_export + variant_abs + variant_add + variant_and + variant_cast + variant_cat + variant_cmp + variant_date_from_timestamp + variant_date_to_timestamp + variant_div + variant_eqv + variant_fix + variant_get_type + variant_idiv + variant_imp + variant_int + variant_mod + variant_mul + variant_neg + variant_not + variant_or + variant_pow + variant_round + variant_set + variant_set_type + variant_sub + variant_xor + version_compare + vfprintf + virtual + vpopmail_add_alias_domain + vpopmail_add_alias_domain_ex + vpopmail_add_domain + vpopmail_add_domain_ex + vpopmail_add_user + vpopmail_alias_add + vpopmail_alias_del + vpopmail_alias_del_domain + vpopmail_alias_get + vpopmail_alias_get_all + vpopmail_auth_user + vpopmail_del_domain + vpopmail_del_domain_ex + vpopmail_del_user + vpopmail_error + vpopmail_passwd + vpopmail_set_user_quota + vprintf + vsprintf + w32api_deftype + w32api_init_dtype + w32api_invoke_function + w32api_register_function + w32api_set_call_method + wddx_add_vars + wddx_deserialize + wddx_packet_end + wddx_packet_start + wddx_serialize_value + wddx_serialize_vars + wordwrap + write + writetemporary + xattr_get + xattr_list + xattr_remove + xattr_set + xattr_supported + xdiff_file_diff + xdiff_file_diff_binary + xdiff_file_merge3 + xdiff_file_patch + xdiff_file_patch_binary + xdiff_string_diff + xdiff_string_diff_binary + xdiff_string_merge3 + xdiff_string_patch + xdiff_string_patch_binary + xinclude + xml_error_string + xml_get_current_byte_index + xml_get_current_column_number + xml_get_current_line_number + xml_get_error_code + xml_parse + xml_parse_into_struct + xml_parser_create + xml_parser_create_ns + xml_parser_free + xml_parser_get_option + xml_parser_set_option + xml_set_character_data_handler + xml_set_default_handler + xml_set_element_handler + xml_set_end_namespace_decl_handler + xml_set_external_entity_ref_handler + xml_set_notation_decl_handler + xml_set_object + xml_set_processing_instruction_handler + xml_set_start_namespace_decl_handler + xml_set_unparsed_entity_decl_handler + xmlrpc_decode + xmlrpc_decode_request + xmlrpc_encode + xmlrpc_encode_request + xmlrpc_get_type + xmlrpc_is_fault + xmlrpc_parse_method_descriptions + xmlrpc_server_add_introspection_data + xmlrpc_server_call_method + xmlrpc_server_create + xmlrpc_server_destroy + xmlrpc_server_register_introspection_callback + xmlrpc_server_register_method + xmlrpc_set_type + xpath + xpath_eval + xpath_eval_expression + xpath_new_context + xptr_eval + xptr_new_context + xsl_xsltprocessor_get_parameter + xsl_xsltprocessor_has_exslt_support + xsl_xsltprocessor_import_stylesheet + xsl_xsltprocessor_register_php_functions + xsl_xsltprocessor_remove_parameter + xsl_xsltprocessor_set_parameter + xsl_xsltprocessor_transform_to_doc + xsl_xsltprocessor_transform_to_uri + xsl_xsltprocessor_transform_to_xml + xslt_backend_info + xslt_backend_name + xslt_backend_version + xslt_create + xslt_errno + xslt_error + xslt_free + xslt_getopt + xslt_process + xslt_set_base + xslt_set_encoding + xslt_set_error_handler + xslt_set_log + xslt_set_object + xslt_set_sax_handler + xslt_set_sax_handlers + xslt_set_scheme_handler + xslt_set_scheme_handlers + xslt_setopt + yaz_addinfo + yaz_ccl_conf + yaz_ccl_parse + yaz_close + yaz_connect + yaz_database + yaz_element + yaz_errno + yaz_error + yaz_es_result + yaz_get_option + yaz_hits + yaz_itemorder + yaz_present + yaz_range + yaz_record + yaz_scan + yaz_scan_result + yaz_schema + yaz_search + yaz_set_option + yaz_sort + yaz_syntax + yaz_wait + yp_all + yp_cat + yp_err_string + yp_errno + yp_first + yp_get_default_domain + yp_master + yp_match + yp_next + yp_order + zend_logo_guid + zend_version + zip_close + zip_entry_close + zip_entry_compressedsize + zip_entry_compressionmethod + zip_entry_filesize + zip_entry_name + zip_entry_open + zip_entry_read + zip_open + zip_read + zlib_get_coding_type + + + + apache_request_headers + apache_response_headers + attr_get + attr_set + autocommit + bind_param + bind_result + bzclose + bzflush + bzwrite + change_user + character_set_name + checkdnsrr + chop + client_encoding + close + commit + connect + data_seek + debug + disable_reads_from_master + disable_rpl_parse + diskfreespace + doubleval + dump_debug_info + enable_reads_from_master + enable_rpl_parse + escape_string + execute + fbird_add_user + fbird_affected_rows + fbird_backup + fbird_blob_add + fbird_blob_cancel + fbird_blob_close + fbird_blob_create + fbird_blob_echo + fbird_blob_get + fbird_blob_import + fbird_blob_info + fbird_blob_open + fbird_close + fbird_commit + fbird_commit_ret + fbird_connect + fbird_db_info + fbird_delete_user + fbird_drop_db + fbird_errcode + fbird_errmsg + fbird_execute + fbird_fetch_assoc + fbird_fetch_object + fbird_fetch_row + fbird_field_info + fbird_free_event_handler + fbird_free_query + fbird_free_result + fbird_gen_id + fbird_maintain_db + fbird_modify_user + fbird_name_result + fbird_num_fields + fbird_num_params + fbird_num_rows + fbird_param_info + fbird_pconnect + fbird_prepare + fbird_query + fbird_restore + fbird_rollback + fbird_rollback_ret + fbird_server_info + fbird_service_attach + fbird_service_detach + fbird_set_event_handler + fbird_trans + fbird_wait_event + fbsql + fbsql_tablename + fetch + fetch_array + fetch_assoc + fetch_field + fetch_field_direct + fetch_fields + fetch_object + fetch_row + field_count + field_seek + fputs + free + free_result + ftp_quit + get_client_info + get_required_files + get_server_info + getallheaders + getmxrr + gmp_div + gzclose + gzeof + gzgetc + gzgets + gzgetss + gzpassthru + gzputs + gzread + gzrewind + gzseek + gztell + gzwrite + imap_create + imap_fetchtext + imap_header + imap_listmailbox + imap_listsubscribed + imap_rename + ini_alter + init + is_double + is_int + is_integer + is_real + is_writeable + join + key_exists + kill + ldap_close + ldap_modify + magic_quotes_runtime + master_query + ming_keypress + ming_setcubicthreshold + ming_setscale + ming_useconstants + ming_useswfversion + more_results + msql + msql_affected_rows + msql_createdb + msql_dbname + msql_dropdb + msql_fieldflags + msql_fieldlen + msql_fieldname + msql_fieldtable + msql_fieldtype + msql_freeresult + msql_listdbs + msql_listfields + msql_listtables + msql_numfields + msql_numrows + msql_regcase + msql_selectdb + msql_tablename + mssql_affected_rows + mssql_close + mssql_connect + mssql_data_seek + mssql_deadlock_retry_count + mssql_fetch_array + mssql_fetch_assoc + mssql_fetch_field + mssql_fetch_object + mssql_fetch_row + mssql_field_seek + mssql_free_result + mssql_get_last_message + mssql_min_client_severity + mssql_min_error_severity + mssql_min_message_severity + mssql_min_server_severity + mssql_num_fields + mssql_num_rows + mssql_pconnect + mssql_query + mssql_result + mssql_select_db + mssql_set_message_handler + mssql_unbuffered_query + multi_query + mysql + mysql_createdb + mysql_db_name + mysql_dbname + mysql_dropdb + mysql_fieldflags + mysql_fieldlen + mysql_fieldname + mysql_fieldtable + mysql_fieldtype + mysql_freeresult + mysql_listdbs + mysql_listfields + mysql_listtables + mysql_numfields + mysql_numrows + mysql_selectdb + mysql_table_name + mysql_tablename + mysqli + mysqli_execute + mysqli_fetch + mysqli_set_opt + next_result + num_rows + oci_free_cursor + ocibindbyname + ocicancel + ocicollappend + ocicollassignelem + ocicollgetelem + ocicollmax + ocicollsize + ocicolltrim + ocicolumnisnull + ocicolumnname + ocicolumnprecision + ocicolumnscale + ocicolumnsize + ocicolumntype + ocicolumntyperaw + ocicommit + ocidefinebyname + ocierror + ociexecute + ocifetch + ocifetchstatement + ocifreecollection + ocifreecursor + ocifreedesc + ocifreestatement + ociinternaldebug + ociloadlob + ocilogoff + ocilogon + ocinewcollection + ocinewcursor + ocinewdescriptor + ocinlogon + ocinumcols + ociparse + ocipasswordchange + ociplogon + ociresult + ocirollback + ocirowcount + ocisavelob + ocisavelobfile + ociserverversion + ocisetprefetch + ocistatementtype + ociwritelobtofile + odbc_do + odbc_field_precision + openssl_free_key + openssl_get_privatekey + openssl_get_publickey + options + pg_clientencoding + pg_cmdtuples + pg_errormessage + pg_exec + pg_fieldisnull + pg_fieldname + pg_fieldnum + pg_fieldprtlen + pg_fieldsize + pg_fieldtype + pg_freeresult + pg_getlastoid + pg_loclose + pg_locreate + pg_loexport + pg_loimport + pg_loopen + pg_loread + pg_loreadall + pg_lounlink + pg_lowrite + pg_numfields + pg_numrows + pg_result + pg_setclientencoding + ping + pos + posix_errno + prepare + query + read_exif_data + real_connect + real_escape_string + real_query + recode + reset + result_metadata + rollback + rpl_parse_enabled + rpl_probe + rpl_query_type + select_db + send_long_data + session_commit + set_file_buffer + set_local_infile_default + set_local_infile_handler + set_opt + show_source + sizeof + slave_query + snmpwalkoid + socket_get_status + socket_getopt + socket_set_blocking + socket_set_timeout + socket_setopt + sqlite_fetch_string + sqlite_has_more + ssl_set + stat + stmt + stmt_init + store_result + strchr + stream_register_wrapper + thread_safe + use_result + user_error + velocis_autocommit + velocis_close + velocis_commit + velocis_connect + velocis_exec + velocis_fetch + velocis_fieldname + velocis_fieldnum + velocis_freeresult + velocis_off_autocommit + velocis_result + velocis_rollback + virtual + + + + __CLASS__ + __FILE__ + __FUNCTION__ + __LINE__ + __METHOD__ + abstract + and + array + as + break + case + catch + cfunction + class + clone + const + continue + declare + default + die + do + echo + else + elseif + empty + enddeclare + endfor + endforeach + endif + endswitch + endwhile + eval + exception + exit + extends + false + final + for + foreach + function + global + if + implements + include + include_once + instanceof + interface + isset + list + new + null + old_function + or + php_user_filter + print + private + protected + public + require + require_once + return + static + switch + throw + true + try + unset + use + var + while + xor + + + + + + xdebug_break + xdebug_call_class + xdebug_call_file + xdebug_call_function + xdebug_call_line + xdebug_disable + xdebug_dump_function_profile + xdebug_dump_function_trace + xdebug_dump_superglobals + xdebug_enable + xdebug_get_code_coverage + xdebug_get_function_count + xdebug_get_function_profile + xdebug_get_function_stack + xdebug_get_function_trace + xdebug_get_stack_depth + xdebug_is_enabled + xdebug_memory_usage + xdebug_peak_memory_usage + xdebug_start_code_coverage + xdebug_start_profiling + xdebug_start_trace + xdebug_stop_code_coverage + xdebug_stop_profiling + xdebug_stop_trace + xdebug_time_index + xdebug_var_dump + + + + + assertCopy + assertEqual + assertError + assertErrorPattern + assertFalse + assertIdentical + assertIsA + assertNoErrors + assertNoUnwantedPattern + assertNotA + assertNotEqual + assertNotIdentical + assertNotNull + assertNull + assertReference + assertTrue + assertWantedPattern + + setReturnValue + setReturnValueAt + setReturnReference + setReturnReferenceAt + expectArguments + expectArgumentsAt + expectCallCount + expectMaximumCallCount + expectMinimumCallCount + expectNever + expectOnce + expectAtLeastOnce + tally + + dump + error + fail + pass + sendMessage + setUp + signal + swallowErrors + tearDown + + + + __autoload + __destruct + __get + __set + __sleep + __wakeup + + + parent + self + stdClass + + + + + + + private + protected + public + + + + + + + > + + + + + + + + + ' + ' + + + " + " + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + ?> + + + + <? + ?> + + + + <%= + %> + + + + + + + | + + + + + + + + + + + + + + + + + + */ + + () + + + + + + + + + array + bool + boolean + callback + double + float + int + integer + mixed + number + NULL + object + real + resource + string + + + + + + + + + + + + + + + + () + + + + + + + + + + + + [ + ] + + ->\w+\s*(?=\() + ->\w+(?=(\[[\s\w'"]+\])?->) + ->\w* + + + + + + + + + \$\w+(?=(\[[\s\w'"]+\])?->) + + :: + + \$\w+(?=\s*=\s*(&\s*)?new) + + + $ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \*\s*$ + + @(global|param|return|staticvar|var) + + @(deprecated|see|uses) + + @access + + + @(abstract|author|category|const|constant|copyright|example|filesource|final|ignore|internal|license|link|name|package|since|static|subpackage|todo|tutorial|version) + + + + + + + + <!-- + --> + + + + {@internal + }} + + + + {@link + } + + + + << + <= + < + + + <code> + </code> + + + + + < + > + + + + + + + + + + + + < + + diff --git a/extra/xmode/modes/pike.xml b/extra/xmode/modes/pike.xml new file mode 100644 index 0000000000..fa50f3edee --- /dev/null +++ b/extra/xmode/modes/pike.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + /* + */ + + */ + + + //! + + // + + + + " + " + + + #" + " + + + ' + ' + + + + #.*?(?=($|/\*|//)) + + + ({ + }) + ([ + ]) + (< + >) + = + ! + + + - + / + * + > + < + % + & + | + ^ + ~ + @ + ` + . + + + ( + ) + + + + constant + extern + final + inline + local + nomask + optional + private + protected + public + static + variant + + + array + class + float + function + int + mapping + mixed + multiset + object + program + string + void + + + break + case + catch + continue + default + do + else + for + foreach + gauge + if + lambda + return + sscanf + switch + while + + + import + inherit + + + + + + FIXME + XXX + + + + + + @decl + + + + @xml{ + @} + + + + @[ + ] + + + + @(b|i|u|tt|url|pre|ref|code|expr|image)?(\{.*@\}) + + + @decl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + %([^ a-z]*[a-z]|\[[^\]]*\]) + DEBUG: + + \ No newline at end of file diff --git a/extra/xmode/modes/pl-sql.xml b/extra/xmode/modes/pl-sql.xml new file mode 100644 index 0000000000..b3e084d611 --- /dev/null +++ b/extra/xmode/modes/pl-sql.xml @@ -0,0 +1,502 @@ + + + + + + + + + + + + + + + + /*+ + */ + + + /* + */ + + + ' + ' + + + " + " + + + [ + ] + + --+ + -- + REM + REMARK + + + - + / + * + = + > + < + % + & + | + ^ + ~ + != + !> + !< + := + . + ( + ) + @@ + @ + ! + host + : + + + + ABORT + ACCESS + ACCEPT + ADD + ALTER + ARRAY + ARRAY_LEN + AS + ASC + ASSERT + ASSIGN + AT + AUDIT + AUTHORIZATION + AVG + BASE_TABLE + BEGIN + BINARY_INTEGER + BODY + BREAK + BREAKS + BTITLE + CASE + CALL + CENTER + CHAR + CHAR_BASE + CHECK + CLEAR + CLOSE + CLUSTER + CLUSTERS + CMPVAR + COL + COLAUTH + COLUMN + COLUMNS + COMMENT + COMMIT + COMPRESS + COMPUTE + CONSTANT + CONSTRAINT + CONTINUE + COUNT + CREATE + CURRENT + CURRVAL + CURSOR + DATABASE + DATA_BASE + DATE + DBA + DEBUGOFF + DEBUGON + DECLARE + DEFAULT + DEFINITION + DELAY + DELETE + DESC + EXPLAIN + DIGITS + DISPOSE + DISTINCT + DO + DROP + DUMP + ELSE + ELSIF + END + ENTRY> + ERRORS + EXCEPTION + EXCEPTION_INIT + EXCLUSIVE + EXECUTE + EXIT + EXTERNAL + FALSE + FETCH + FILE + FOR + FOREIGN + FORM + FORMAT + FROM + FUNCTION + GENERIC + GOTO + GRANT + GREATEST + GROUP + HAVING + HEADING + IDENTIFIED + IDENTITYCOL + IF + IMMEDIATE + INCREMENT + INDEX + INDEXES + INDICATOR + INITIAL + INSERT + INTERFACE + INTO + IS + KEY + LEAST + LEVEL + LIMITED + LOCK + LONG + LOOP + MATCHED + MAX + MAXEXTENTS + MERGE + MEMBER + MIN + MINUS + MLSLABEL + MOD + MODIFY + MORE + NATURAL + NATURALN + NEW + NEW_VALUE + NEXT + NEXTVAL + NOAUDIT + NOCOMPRESS + NOPRINT + NOWAIT + NULL + NUMBER + NUMBER_BASE + OF + OFFLINE + ON + OFF + ONLINE + OPEN + OPTION + ORDER + ORGANIZATION + OTHERS + OUT + PACKAGE + PAGE + PARTITION + PCTFREE + PCTINCREASE + PLAN + POSITIVE + POSITIVEN + PRAGMA + PRINT + PRIMARY + PRIOR + PRIVATE + PRIVILEGES + PROCEDURE + PROMPT + PUBLIC + QUOTED_IDENTIFIER + RAISE + RANGE + RAW + RECORD + REF + REFERENCES + RELEASE + REMR + RENAME + RESOURCE + RETURN + REVERSE + REVOKE + ROLLBACK + ROW + ROWID + ROWLABEL + ROWNUM + ROWS + ROWTYPE + RUN + SAVEPOINT + SCHEMA + SELECT + SEPERATE + SEQUENCE + SESSION + SET + SHARE + SHOW + SIGNTYPE + SKIP + SPACE + SPOOL + .SQL + SQL + SQLCODE + SQLERRM + SQLERROR + STATEMENT + STDDEV + STORAGE + SUBTYPE + SUCCESSFULL + SUM + SYNONYM + SYSDATE + TABAUTH + TABLE + TABLES + TABLESPACE + TASK + TERMINATE + THEN + TO + TRIGGER + TRUE + TRUNCATE + TTITLE + TYPE + UID + UNION + UNIQUE + UNDEFINE + UPDATE + UPDATETEXT + USE + USER + USING + VALIDATE + VALUES + VARIANCE + VIEW + VIEWS + WHEN + WHENEVER + WHERE + WHILE + WITH + WORK + WRITE + XOR + + + binary + bit + blob + boolean + char + character + datetime + decimal + float + image + int + integer + money + numeric + nchar + nvarchar + ntext + object + pls_integer + real + smalldatetime + smallint + smallmoney + text + timestamp + tinyint + uniqueidentifier + varbinary + varchar + varchar2 + varray + + + ABS + ACOS + ADD_MONTHS + ASCII + ASIN + ATAN + ATAN2 + BITAND + CEIL + CHARTOROWID + CHR + CONCAT + CONVERT + COS + COSH + DECODE + DEFINE + DUAL + FLOOR + HEXTORAW + INITCAP + INSTR + INSTRB + LAST_DAY + LENGTH + LENGTHB + LN + LOG + LOWER + LPAD + LTRIM + MOD + MONTHS_BETWEEN + NEW_TIME + NEXT_DAY + NLSSORT + NSL_INITCAP + NLS_LOWER + NLS_UPPER + NVL + POWER + RAWTOHEX + REPLACE + ROUND + ROWIDTOCHAR + RPAD + RTRIM + SIGN + SOUNDEX + SIN + SINH + SQRT + SUBSTR + SUBSTRB + TAN + TANH + TO_CHAR + TO_DATE + TO_MULTIBYTE + TO_NUMBER + TO_SINGLE_BYTE + TRANSLATE + TRUNC + UPPER + + + ALL + AND + ANY + BETWEEN + BY + CONNECT + EXISTS + IN + INTERSECT + LIKE + NOT + NULL + OR + START + UNION + WITH + NOTFOUND + ISOPEN + JOIN + LEFT + RIGHT + FULL + OUTER + CROSS + + + DBMS_SQL + OPEN_CURSOR + PARSE + BIND_VARIABLE + BIND_ARRAY + DEFINE_COLUMN + DEFINE_COLUMN_LONG + DEFINE_ARRAY + EXECUTE + FETCH_ROWS + EXECUTE_AND_FETCH + VARIABLE_VALUE + COLUMN_VALUE + COLUMN_VALUE_LONG + CLOSE_CURSOR + DEFINE_COLUMN_CHAR + COLUMN_VALUE_CHAR + + DBMS_PROFILER + START_PROFILER + STOP_PROFILER + ROLLUP_RUN + + + _EDITOR + ARRAYSIZE + AUTOTRACE + DBMS_OUTPUT + ECHO + ENABLE + FCLOSE + FCLOSE_ALL + FEED + FEEDBACK + FILE_TYPE + FOPEN + HEAD + INVALID_OPERATION + INVALID_PATH + LINESIZE + PAGESIZE + PAGES + PAUSE + DOC + PUTF + PUT_LINE + SERVEROUTPUT + SQL.PNO + UTL_FILE + VER + VERIFY + WRITE_ERROR + + + + + diff --git a/extra/xmode/modes/pl1.xml b/extra/xmode/modes/pl1.xml new file mode 100644 index 0000000000..ae4f609b74 --- /dev/null +++ b/extra/xmode/modes/pl1.xml @@ -0,0 +1,597 @@ + + + + + + + + + + + + + + + + + + /* + */ + + + + ' + ' + + + + " + " + + + + \* *process + + = + + + - + * + / + > + < + ^ + ¬ + & + | + . + , + ; + : + + + ( + ) + + + + alias + alloc + allocate + attach + begin + by + byname + call + close + copy + dcl + declare + default + define + delay + delete + detach + dft + display + do + downthru + else + end + entry + exit + fetch + flush + format + free + from + get + go + goto + if + ignore + %include + into + iterate + key + keyfrom + keyto + leave + line + locate + loop + name + on + open + ordinal + other + otherwise + package + page + proc + procedure + put + read + release + repeat + reply + resignal + return + revert + rewrite + select + set + signal + skip + snap + stop + string + structure + then + thread + to + tstack + unlock + until + upthru + wait + when + while + write + + + A + abnormal + aligned + anycond + anycondition + area + asgn + asm + assembler + assignable + attn + attention + auto + automatic + b + b3 + b4 + based + bigendian + bin + binary + bit + buf + buffered + builtin + bx + byaddr + byvalue + C + cdecl + cell + char + character + charg + chargraphic + cobol + column + complex + cond + condition + conn + connected + controlled + conv + conversion + cplx + ctl + data + date + dec + decimal + def + defined + descriptor + descriptors + dim + dimension + direct + E + edit + endfile + endpage + env + environment + error + exclusive + exports + ext + external + F + fetchable + file + finish + fixed + fixedoverflow + float + fofl + format + fortran + fromalien + g + generic + graphic + gx + handle + hexadec + ieee + imported + init + initial + inline + input + inter + internal + invalidop + irred + irreducible + keyed + L + label + like + limited + linesize + linkage + list + littleendian + m + main + native + nonasgn + nocharg + nochargraphic + nodescriptor + noexecops + nomap + nomapin + nomapout + nonasgn + nonassignable + nonconn + nonconnected + nonnative + nonvar + nonvarying + normal + offset + ofl + optional + options + optlink + order + output + overflow + P + pagesize + parameter + pic + picture + pointer + pos + position + prec + precision + print + ptr + R + range + real + record + recursive + red + reducible + reentrant + refer + reorder + reserved + reserves + retcode + returns + seql + sequential + signed + size + static + stdcall + storage + stream + strg + stringrange + strz + stringsize + subrg + subscriptrange + system + task + title + transmit + type + ufl + unal + unaligned + unbuf + unbuffered + undefinedfile + underflow + undf + union + unsigned + update + value + var + variable + varying + varyingz + varz + wchar + widechar + winmain + wx + x + xn + xu + zdiv + zerodivide + + + abs + acos + acosf + add + addr + address + addrdata + all + allocation + allocn + allocsize + any + asin + asinf + atan + atand + atanf + atanh + availablearea + binaryvalue + bind + binvalue + bitlocation + bitloc + bool + byte + cast + cds + ceil + center + centre + centreleft + centreleft + centreright + centerright + charg + chargraphic + chargval + checkstg + collate + compare + conjg + cos + cosd + cosf + cosh + count + cs + cstg + currentsize + currentstorage + datafield + date + datetime + days + daystodate + daystosecs + divide + empty + entryaddr + epsilon + erfc + exp + expf + exponent + fileddint + fileddtest + fileddword + fileid + fileopen + fileread + fileseek + filetell + filewrite + first + floor + gamma + getenv + hbound + hex + heximage + high + huge + iand + ieor + imag + index + inot + ior + isigned + isll + ismain + isrl + iunsigned + last + lbound + left + length + lineno + loc + location + log + logf + loggamma + log2 + log10 + log10f + low + lowercase + lower2 + max + maxexp + maxlength + min + minexp + mod + mpstr + multiply + new + null + offestadd + offestdiff + offestsubtract + offestvalue + omitted + onchar + oncode + oncondond + oncondid + oncount + onfile + ongsource + onkey + onloc + onsource + onsubcode + onwchar + onwsource + ordinalname + ordinalpred + ordinalsucc + packagename + pageno + places + pliascii + plianc + plickpt + plidelete + plidump + pliebcdic + plifill + plifree + plimove + pliover + plirest + pliretc + pliretv + plisaxa + plisaxb + plisrta + plisrtb + plisrtc + plisrtd + pointeradd + ptradd + pointerdiff + ptrdiff + pointersubtract + ptrsubtract + pointervalue + ptrvalue + poly + pred + present + procname + procedurename + prod + putenv + radix + raise + random + rank + rem + repattern + respec + reverse + right + round + samekey + scale + search + searchr + secs + secstodate + secstodays + sign + signed + sin + sind + sinf + sinh + size + sourcefile + sourceline + sqrt + sqrtf + stg + storage + string + substr + subtract + succ + sum + sysnull + tally + tan + tand + tanf + tanh + threadid + time + tiny + translate + trim + trunc + type + unallocated + unspec + uppercase + valid + validdate + varglist + vargsizer + verify + verifyr + wcharval + weekday + whigh + wlow + y4date + y4julian + y4year + + + + diff --git a/extra/xmode/modes/pop11.xml b/extra/xmode/modes/pop11.xml new file mode 100644 index 0000000000..47685dd8dc --- /dev/null +++ b/extra/xmode/modes/pop11.xml @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + /* + */ + + + ;;; + + + ' + ' + + + + " + " + + + + ` + ` + + + + [ + ] + + + + { + } + + + + ![ + ] + + + + ( + ) + + : + + + #_< + >_# + + + #_ + + ) + ( + . + , + ; + ^ + @ + : + | + = + >= + <= + <> + > + < + + + / + - + * + + + false + true + database + it + undef + + + define + class + enddefine + dlocal + lvars + vars + slot + instance + endinstance + method + syntax + biginteger + boolean + complex + ddecimal + decimal + device + ident + integer + intvec + key + nil + pair + procedure + process + prologterm + prologvar + ratio + ref + section + string + termin + vector + word + + + if + forevery + endforevery + then + switchon + endswitchon + case + elseif + else + endif + for + repeat + from + till + step + while + endfor + endrepeat + endwhile + times + to + do + by + in + return + + + and + or + matches + quitloop + goto + uses + trace + cons_with + consstring + + + interrupt + partapply + consclosure + max + add + remove + alladd + quitif + copydata + copytree + copylist + length + hd + tl + rev + shuffle + oneof + sort + syssort + random + readline + not + pr + nl + present + subword + member + length + listlength + datalength + mishap + last + delete + valof + dataword + + + isnumber + isinteger + islist + isboolean + + + + + + [ + ] + + + + { + } + + + + ![ + ] + + + + ' + ' + + + + " + " + + + + % + % + + + + /* + */ + + + ;;; + = + == + + ^ + ? + + + + + + + : + * + + diff --git a/extra/xmode/modes/postscript.xml b/extra/xmode/modes/postscript.xml new file mode 100644 index 0000000000..1588b6272e --- /dev/null +++ b/extra/xmode/modes/postscript.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + %! + %? + %% + % + + + + ( + ) + + + + < + > + + + / + + } + { + ] + [ + + + pop + exch + dup + copy + roll + clear + count + mark + cleartomark + counttomark + + exec + if + ifelse + for + repeat + loop + exit + stop + stopped + countexecstack + execstack + quit + start + + add + div + idiv + mod + mul + sub + abs + ned + ceiling + floor + round + truncate + sqrt + atan + cos + sin + exp + ln + log + rand + srand + rrand + + true + false + NULL + + + + + + ( + ) + + + diff --git a/extra/xmode/modes/povray.xml b/extra/xmode/modes/povray.xml new file mode 100644 index 0000000000..b76ba9ece8 --- /dev/null +++ b/extra/xmode/modes/povray.xml @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + // + = + ! + >= + <= + + + - + / + * + > + < + % + & + | + ^ + ~ + } + { + : + + + ( + ) + + + aa_level + aa_threshold + abs + absorption + accuracy + acos + acosh + adaptive + adc_bailout + agate + agate_turb + all + all_intersections + alpha + altitude + always_sample + ambient + ambient_light + angle + aperture + append + arc_angle + area_light + array + asc + ascii + asin + asinh + assumed_gamma + atan + atan2 + atanh + autostop + average + b_spline + background + bezier_spline + bicubic_patch + black_hole + blob + blue + blur_samples + bounded_by + box + boxed + bozo + #break + brick + brick_size + brightness + brilliance + bump_map + bump_size + bumps + camera + #case + caustics + ceil + cells + charset + checker + chr + circular + clipped_by + clock + clock_delta + clock_on + collect + color + color_map + colour + colour_map + component + composite + concat + cone + confidence + conic_sweep + conserve_energy + contained_by + control0 + control1 + coords + cos + cosh + count + crackle + crand + cube + cubic + cubic_spline + cubic_wave + cutaway_textures + cylinder + cylindrical + #debug + #declare + #default + defined + degrees + density + density_file + density_map + dents + df3 + difference + diffuse + dimension_size + dimensions + direction + disc + dispersion + dispersion_samples + dist_exp + distance + div + double_illuminate + eccentricity + #else + emission + #end + #error + error_bound + evaluate + exp + expand_thresholds + exponent + exterior + extinction + face_indices + facets + fade_color + fade_colour + fade_distance + fade_power + falloff + falloff_angle + false + #fclose + file_exists + filter + final_clock + final_frame + finish + fisheye + flatness + flip + floor + focal_point + fog + fog_alt + fog_offset + fog_type + #fopen + form + frame_number + frequency + fresnel + function + gather + gif + global_lights + global_settings + gradient + granite + gray + gray_threshold + green + h_angle + height_field + hexagon + hf_gray_16 + hierarchy + hollow + hypercomplex + #if + #ifdef + iff + #ifndef + image_height + image_map + image_pattern + image_width + #include + initial_clock + initial_frame + inside + int + interior + interior_texture + internal + interpolate + intersection + intervals + inverse + ior + irid + irid_wavelength + isosurface + jitter + jpeg + julia + julia_fractal + lathe + lambda + leopard + light_group + light_source + linear_spline + linear_sweep + ln + load_file + #local + location + log + look_at + looks_like + low_error_factor + #macro + magnet + major_radius + mandel + map_type + marble + material + material_map + matrix + max + max_extent + max_gradient + max_intersections + max_iteration + max_sample + max_trace + max_trace_level + media + media_attenuation + media_interaction + merge + mesh + mesh2 + metallic + method + metric + min + min_extent + minimum_reuse + mod + mortar + natural_spline + nearest_count + no + no_bump_scale + no_image + no_reflection + no_shadow + noise_generator + normal + normal_indices + normal_map + normal_vectors + number_of_waves + object + octaves + off + offset + omega + omnimax + on + once + onion + open + orient + orientation + orthographic + panoramic + parallel + parametric + pass_through + pattern + perspective + pgm + phase + phong + phong_size + photons + pi + pigment + pigment_map + pigment_pattern + planar + plane + png + point_at + poly + poly_wave + polygon + pot + pow + ppm + precision + precompute + pretrace_end + pretrace_start + prism + projected_through + pwr + quadratic_spline + quadric + quartic + quaternion + quick_color + quick_colour + quilted + radial + radians + radiosity + radius + rainbow + ramp_wave + rand + #range + range_divider + ratio + #read + reciprocal + recursion_limit + red + reflection + reflection_exponent + refraction + #render + repeat + rgb + rgbf + rgbft + rgbt + right + ripples + rotate + roughness + samples + save_file + scale + scallop_wave + scattering + seed + select + shadowless + sin + sine_wave + sinh + size + sky + sky_sphere + slice + slope + slope_map + smooth + smooth_triangle + solid + sor + spacing + specular + sphere + sphere_sweep + spherical + spiral1 + spiral2 + spline + split_union + spotlight + spotted + sqr + sqrt + #statistics + str + strcmp + strength + strlen + strlwr + strupr + sturm + substr + superellipsoid + #switch + sys + t + tan + tanh + target + text + texture + texture_list + texture_map + tga + thickness + threshold + tiff + tightness + tile2 + tiles + tolerance + toroidal + torus + trace + transform + translate + transmit + triangle + triangle_wave + true + ttf + turb_depth + turbulence + type + u + u_steps + ultra_wide_angle + #undef + union + up + use_alpha + use_color + use_colour + use_index + utf8 + uv_indices + uv_mapping + uv_vectors + v + v_angle + v_steps + val + variance + vaxis_rotate + vcross + vdot + #version + vertex_vectors + vlength + vnormalize + vrotate + vstr + vturbulence + #warning + warp + water_level + waves + #while + width + wood + wrinkles + #write + x + y + yes + z + + + diff --git a/extra/xmode/modes/powerdynamo.xml b/extra/xmode/modes/powerdynamo.xml new file mode 100644 index 0000000000..7babf3dc74 --- /dev/null +++ b/extra/xmode/modes/powerdynamo.xml @@ -0,0 +1,464 @@ + + + + + + + + + + + + + + + + <!--script + --> + + + + + <!--data + --> + + + + <!--document + --> + + + + <!--evaluate + --> + + + + <!--execute + --> + + + + <!--formatting + --> + + + + <!--/formatting + --> + + + + <!--include + --> + + + + <!--label + --> + + + + <!--sql + --> + + + + <!--sql_error_code + --> + + + + <!--sql_error_info + --> + + + + <!--sql_state + --> + + + + <!--sql_on_no_error + --> + + + <!--/sql_on_no_error + --> + + + + <!--sql_on_error + --> + + + <!--/sql_on_error + --> + + + + <!--sql_on_no_rows + --> + + + <!--/sql_on_no_rows + --> + + + + <!--sql_on_rows + --> + + + <!--/sql_on_rows + --> + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + + + + <!--script + --?> + + + + " + " + + + + ' + ' + + + = + + + + + <!--script + ?--> + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + // + + = + ! + >= + <= + = + + + - + / + * + > + < + % + & + | + ^ + ~ + . + } + { + , + ; + ] + [ + ? + @ + : + + ( + ) + + + + abstract + break + byte + boolean + catch + case + class + char + continue + default + double + do + else + exists + extends + false + file + final + float + for + finally + function + if + import + implements + int + interface + instanceof + long + length + native + new + null + package + private + protected + public + return + switch + synchronized + short + static + super + try + true + this + throw + throws + threadsafe + transient + var + void + while + + + + document + connection + file + query + session + site + system + typeof + + + AskQuestion + autoCommit + Close + Commit + Connect + CreateConnection + CreateDocument + CreatePropertySheet + CreateQuery + CreateWizard + cachedOutputTimeOut + charAt + connected + connection + connectionId + connectionName + connectionType + connectParameters + contentType + DeleteConnection + DeleteDocument + Disconnect + database + dataSource + dataSourceList + description + Exec + Execute + ExportTo + eof + errorNumber + errorString + GetColumnCount + GetColumnIndex + GetColumnLabel + GetConnection + GetConnectionIdList + GetConnectionNameList + GetCWD + GetDirectory + GetDocument + GetEmpty + GetEnv + GetErrorCode + GetErrorInfo + GetEventList + GetFilePtr + GetGenerated + GetRootDocument + GetRowCount + GetServerVariable + GetState + GetSupportedMoves + GetValue + ImportFrom + Include + id + indexOf + lastIndexOf + lastModified + length + location + Move + MoveFirst + MoveLast + MoveNext + MovePrevious + MoveRelative + mode + name + OnEvent + Open + Opened + parent + password + ReadChar + ReadLine + Refresh + Rollback + redirect + Seek + SetEnv + SetSQL + ShowMessage + substring + server + simulateCursors + size + source + status + timeOut + toLowerCase + toUpperCase + type + userId + value + WriteLine + Write + write + writeln + + + + + + " + " + + + ' + ' + + + + NAME + + + + + + " + " + + + ' + ' + + + + NAME + QUERY + + + + + + " + " + + + ' + ' + + + + CONTENT_TYPE + REDIRECT + STATUS + CACHED_OUTPUT_TIMEOUT + + + + diff --git a/extra/xmode/modes/progress.xml b/extra/xmode/modes/progress.xml new file mode 100644 index 0000000000..480bdef76f --- /dev/null +++ b/extra/xmode/modes/progress.xml @@ -0,0 +1,3748 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* */ + + + + + + + + + + + + + + + + + /* + */ + + + + ' + ' + + + + " + " + + + + {& + + + * + + + , + . + / + = + ? + @ + [ + ] + ^ + ( + ) + + >= + <= + <> + + + + + + : + + + :accelerator + :accept-changes + :accept-row-changes + :add-buffer + :add-calc-column + :add-columns-from + :add-events-procedure + :add-fields-from + :add-first + :add-index-field + :add-last + :add-like-column + :add-like-field + :add-like-index + :add-new-field + :add-new-index + :add-super-procedure + :adm-data + :after-buffer + :after-rowid + :after-table + :allow-column-searching + :always-on-top + :ambiguous + :append-child + :appl-alert-boxes + :apply-callback + :appserver-info + :appserver-password + :appserver-userid + :async-request-count + :async-request-handle + :asynchronous + :attach-data-source + :attr-space + :attribute-names + :auto-completion + :auto-delete + :auto-delete-xml + :auto-end-key + :auto-go + :auto-indent + :auto-resize + :auto-return + :auto-validate + :auto-zap + :available + :available-formats + :background + :base-ade + :basic-logging + :batch-mode + :before-buffer + :before-rowid + :before-table + :bgcolor + :blank + :block-iteration-display + :border-bottom-chars + :border-bottom-pixels + :border-left-chars + :border-left-pixels + :border-right-chars + :border-right-pixels + :border-top-chars + :border-top-pixels + :box + :box-selectable + :browse-column-data-types + :browse-column-formats + :browse-column-labels + :buffer-chars + :buffer-compare + :buffer-copy + :buffer-create + :buffer-delete + :buffer-field + :buffer-handle + :buffer-lines + :buffer-name + :buffer-release + :buffer-validate + :buffer-value + :bytes-read + :bytes-written + :cache + :call-name + :call-type + :can-create + :can-delete + :can-read + :can-write + :cancel-break + :cancel-button + :cancel-requests + :cancelled + :careful-paint + :case-sensitive + :centered + :character_length + :charset + :checked + :child-num + :clear + :clear-selection + :client-connection-id + :client-type + :clone-node + :code + :codepage + :column-bgcolor + :column-dcolor + :column-fgcolor + :column-font + :column-label + :column-movable + :column-pfcolor + :column-read-only + :column-resizable + :column-scrolling + :columns + :com-handle + :complete + :config-name + :connect + :connected + :context-help + :context-help-file + :context-help-id + :control-box + :convert-3d-colors + :convert-to-offset + :coverage + :cpcase + :cpcoll + :cplog + :cpprint + :cprcodein + :cprcodeout + :cpstream + :cpterm + :crc-value + :create-like + :create-node + :create-node-namespace + :create-on-add + :create-result-list-entry + :current-changed + :current-column + :current-environment + :current-iteration + :current-result-row + :current-row-modified + :current-window + :cursor-char + :cursor-line + :cursor-offset + :data-entry-return + :data-source + :data-type + :dataset + :date-format + :db-references + :dbname + :dcolor + :dde-error + :dde-id + :dde-item + :dde-name + :dde-topic + :deblank + :debug + :debug-alert + :decimals + :default + :default-buffer-handle + :default-button + :default-commit + :default-string + :delete + :delete-current-row + :delete-line + :delete-node + :delete-result-list-entry + :delete-selected-row + :delete-selected-rows + :delimiter + :description + :deselect-focused-row + :deselect-rows + :deselect-selected-row + :detach-data-source + :directory + :disable + :disable-auto-zap + :disable-connections + :disable-dump-triggers + :disable-load-triggers + :disconnect + :display-message + :display-timezone + :display-type + :down + :drag-enabled + :drop-target + :dump-logging-now + :dynamic + :edge-chars + :edge-pixels + :edit-can-paste + :edit-can-undo + :edit-clear + :edit-copy + :edit-cut + :edit-paste + :edit-undo + :empty + :empty-temp-table + :enable + :enable-connections + :enabled + :encoding + :end-file-drop + :end-user-prompt + :error-column + :error-object-detail + :error-row + :error-string + :event-procedure + :event-procedure-context + :event-type + :exclusive-id + :execution-log + :expand + :expandable + :export + :extent + :fetch-selected-row + :fgcolor + :file-create-date + :file-create-time + :file-mod-date + :file-mod-time + :file-name + :file-offset + :file-size + :file-type + :fill + :fill-mode + :filled + :find-by-rowid + :find-current + :find-first + :find-last + :find-unique + :first-async-request + :first-buffer + :first-child + :first-column + :first-data-source + :first-dataset + :first-procedure + :first-query + :first-server + :first-server-socket + :first-socket + :first-tab-item + :fit-last-column + :flat-button + :focused-row + :focused-row-selected + :font + :font-based-layout + :foreground + :form-input + :format + :forward-only + :frame + :frame-col + :frame-name + :frame-row + :frame-spacing + :frame-x + :frame-y + :frequency + :full-height-chars + :full-height-pixels + :full-pathname + :full-width-chars + :full-width-pixels + :function + :get-attribute + :get-attribute-node + :get-blue-value + :get-browse-column + :get-buffer-handle + :get-bytes-available + :get-cgi-list + :get-cgi-value + :get-changes + :get-child + :get-child-relation + :get-config-value + :get-current + :get-document-element + :get-dropped-file + :get-dynamic + :get-first + :get-green-value + :get-iteration + :get-last + :get-message + :get-next + :get-number + :get-parent + :get-prev + :get-printers + :get-red-value + :get-repositioned-row + :get-rgb-value + :get-selected-widget + :get-signature + :get-socket-option + :get-tab-item + :get-text-height-chars + :get-text-height-pixels + :get-text-width-chars + :get-text-width-pixels + :get-wait-state + :graphic-edge + :grid-factor-horizontal + :grid-factor-vertical + :grid-snap + :grid-unit-height-chars + :grid-unit-height-pixels + :grid-unit-width-chars + :grid-unit-width-pixels + :grid-visible + :handle + :handler + :has-lobs + :has-records + :height-chars + :height-pixels + :hidden + :horizontal + :html-charset + :html-end-of-line + :html-end-of-page + :html-frame-begin + :html-frame-end + :html-header-begin + :html-header-end + :html-title-begin + :html-title-end + :hwnd + :icfparameter + :icon + :image + :image-down + :image-insensitive + :image-up + :immediate-display + :import-node + :in-handle + :increment-exclusive-id + :index + :index-information + :initial + :initialize-document-type + :initiate + :inner-chars + :inner-lines + :input-value + :insert + :insert-backtab + :insert-before + :insert-file + :insert-row + :insert-string + :insert-tab + :instantiating-procedure + :internal-entries + :invoke + :is-open + :is-parameter-set + :is-row-selected + :is-selected + :is-xml + :items-per-row + :keep-connection-open + :keep-frame-z-order + :keep-security-cache + :key + :label + :label-bgcolor + :label-dcolor + :label-fgcolor + :label-font + :labels + :languages + :large + :large-to-small + :last-async-request + :last-child + :last-procedure + :last-server + :last-server-socket + :last-socket + :last-tab-item + :line + :list-item-pairs + :list-items + :listings + :literal-question + :load + :load-icon + :load-image + :load-image-down + :load-image-insensitive + :load-image-up + :load-mouse-pointer + :load-small-icon + :local-host + :local-name + :local-port + :locator-column-number + :locator-line-number + :locator-public-id + :locator-system-id + :locator-type + :locked + :log-id + :longchar-to-node-value + :lookup + :mandatory + :manual-highlight + :margin-height-chars + :margin-height-pixels + :margin-width-chars + :margin-width-pixels + :max-button + :max-chars + :max-data-guess + :max-height-chars + :max-height-pixels + :max-value + :max-width-chars + :max-width-pixels + :md5-value + :memptr-to-node-value + :menu-bar + :menu-key + :menu-mouse + :merge-changes + :merge-row-changes + :message-area + :message-area-font + :min-button + :min-column-width-chars + :min-column-width-pixels + :min-height-chars + :min-height-pixels + :min-schema-marshall + :min-value + :min-width-chars + :min-width-pixels + :modified + :mouse-pointer + :movable + :move-after-tab-item + :move-before-tab-item + :move-column + :move-to-bottom + :move-to-eof + :move-to-top + :multiple + :multitasking-interval + :name + :namespace-prefix + :namespace-uri + :needs-appserver-prompt + :needs-prompt + :new + :new-row + :next-column + :next-sibling + :next-tab-item + :no-current-value + :no-empty-space + :no-focus + :no-schema-marshall + :no-validate + :node-type + :node-value + :node-value-to-longchar + :node-value-to-memptr + :normalize + :num-buffers + :num-buttons + :num-child-relations + :num-children + :num-columns + :num-dropped-files + :num-entries + :num-fields + :num-formats + :num-items + :num-iterations + :num-lines + :num-locked-columns + :num-messages + :num-parameters + :num-replaced + :num-results + :num-selected-rows + :num-selected-widgets + :num-tabs + :num-to-retain + :num-visible-columns + :numeric-decimal-point + :numeric-format + :numeric-separator + :ole-invoke-locale + :ole-names-locale + :on-frame-border + :origin-handle + :origin-rowid + :overlay + :owner + :owner-document + :page-bottom + :page-top + :parameter + :parent + :parent-relation + :parse-status + :password-field + :pathname + :persistent + :persistent-cache-disabled + :persistent-procedure + :pfcolor + :pixels-per-column + :pixels-per-row + :popup-menu + :popup-only + :position + :prepare-string + :prepared + :prev-column + :prev-sibling + :prev-tab-item + :primary + :printer-control-handle + :printer-hdc + :printer-name + :printer-port + :private-data + :procedure-name + :profiling + :progress-source + :proxy + :proxy-password + :proxy-userid + :public-id + :published-events + :query + :query-close + :query-off-end + :query-open + :query-prepare + :quit + :radio-buttons + :raw-transfer + :read + :read-file + :read-only + :recid + :record-length + :refresh + :refreshable + :reject-changes + :reject-row-changes + :rejected + :remote + :remote-host + :remote-port + :remove-attribute + :remove-child + :remove-events-procedure + :remove-super-procedure + :replace + :replace-child + :replace-selection-text + :reposition-backwards + :reposition-forwards + :reposition-parent-relation + :reposition-to-row + :reposition-to-rowid + :resizable + :resize + :retain-shape + :return-inserted + :return-value + :return-value-data-type + :row + :row-height-chars + :row-height-pixels + :row-markers + :row-resizable + :row-state + :rowid + :rule-row + :rule-y + :save + :save-file + :save-row-changes + :sax-parse + :sax-parse-first + :sax-parse-next + :sax-xml + :schema-change + :schema-path + :screen-lines + :screen-value + :scroll-bars + :scroll-delta + :scroll-offset + :scroll-to-current-row + :scroll-to-item + :scroll-to-selected-row + :scrollable + :scrollbar-horizontal + :scrollbar-vertical + :search + :select-all + :select-focused-row + :select-next-row + :select-prev-row + :select-row + :selectable + :selected + :selection-end + :selection-start + :selection-text + :sensitive + :separator-fgcolor + :separators + :server + :server-connection-bound + :server-connection-bound-request + :server-connection-context + :server-connection-id + :server-operating-mode + :session-end + :set-attribute + :set-attribute-node + :set-blue-value + :set-break + :set-buffers + :set-callback-procedure + :set-commit + :set-connect-procedure + :set-dynamic + :set-green-value + :set-input-source + :set-numeric-format + :set-parameter + :set-read-response-procedure + :set-red-value + :set-repositioned-row + :set-rgb-value + :set-rollback + :set-selection + :set-socket-option + :set-wait-state + :show-in-taskbar + :side-label-handle + :side-labels + :skip-deleted-record + :small-icon + :small-title + :sort + :startup-parameters + :status-area + :status-area-font + :stop + :stop-parsing + :stopped + :stretch-to-fit + :string-value + :sub-menu-help + :subtype + :super-procedures + :suppress-namespace-processing + :suppress-warnings + :synchronize + :system-alert-boxes + :system-id + :tab-position + :tab-stop + :table + :table-crc-list + :table-handle + :table-list + :table-number + :temp-directory + :temp-table-prepare + :text-selected + :three-d + :tic-marks + :time-source + :title + :title-bgcolor + :title-dcolor + :title-fgcolor + :title-font + :toggle-box + :tooltip + :tooltips + :top-only + :trace-filter + :tracing + :tracking-changes + :trans-init-procedure + :transaction + :transparent + :type + :undo + :unique-id + :unique-match + :url + :url-decode + :url-encode + :url-password + :url-userid + :user-data + :v6display + :validate + :validate-expression + :validate-message + :validate-xml + :validation-enabled + :value + :view-first-column-on-reopen + :virtual-height-chars + :virtual-height-pixels + :virtual-width-chars + :virtual-width-pixels + :visible + :warning + :widget-enter + :widget-leave + :width-chars + :width-pixels + :window + :window-state + :window-system + :word-wrap + :work-area-height-pixels + :work-area-width-pixels + :work-area-x + :work-area-y + :write + :write-data + :x + :x-document + :xml-schema-path + :xml-suppress-namespace-processing + :y + :year-offset + :_dcm + + + put\s+screen + :WHERE-STRING + :REPOSITION-PARENT-RELATION + + + choose\s+of + + + + + + + + + + + + + + any-key + any-printable + back-tab + backspace + bell + choose + container-event + dde-notify + default-action + del + delete-char + delete-character + deselect + deselection + drop-file-notify + empty-selection + end + end-box-selection + end-error + end-move + end-resize + end-search + endkey + entry + error + go + help + home + leave + menu-drop + off-end + off-home + parent-window-close + procedure-complete + read-response + recall + return + row-display + row-entry + row-leave + scroll-notify + select + selection + start-box-selection + start-move + start-resize + start-search + tab + value-changed + window-close + window-maximized + window-minimized + window-resized + window-restored + + + + abort + absolute + accelerator + accept-changes + accept-row-changes + accumulate + across + active + active-window + actor + add + add-buffer + add-calc-column + add-columns-from + add-events-procedure + add-fields-from + add-first + add-header-entry + add-index-field + add-interval + add-last + add-like-column + add-like-field + add-like-index + add-new-field + add-new-index + add-relation + add-source-buffer + add-super-procedure + adm-data + advise + after-buffer + after-rowid + after-table + alert-box + alias + all + allow-column-searching + allow-replication + alter + alternate-key + always-on-top + ambiguous + and + ansi-only + any + anywhere + append + append-child + append-line + appl-alert-boxes + application + apply + apply-callback + appserver-info + appserver-password + appserver-userid + array-message + as + as-cursor + ascending + ask-overwrite + assign + async-request-count + async-request-handle + asynchronous + at + attach + attach-data-source + attachment + attr-space + attribute-names + attribute-type + authorization + auto-completion + auto-delete + auto-delete-xml + auto-end-key + auto-endkey + auto-go + auto-indent + auto-resize + auto-return + auto-validate + auto-zap + automatic + available + available-formats + average + avg + background + backwards + base-ade + base-key + base64 + basic-logging + batch-mode + before-buffer + before-hide + before-rowid + before-table + begins + between + bgcolor + big-endian + binary + bind-where + blank + blob + block + block-iteration-display + border-bottom + border-bottom-chars + border-bottom-pixels + border-left + border-left-chars + border-left-pixels + border-right + border-right-chars + border-right-pixels + border-top + border-top-chars + border-top-pixels + both + bottom + bottom-column + box + box-selectable + break + break-line + browse + browse-column-data-types + browse-column-formats + browse-column-labels + browse-header + btos + buffer + buffer-chars + buffer-compare + buffer-copy + buffer-create + buffer-delete + buffer-field + buffer-handle + buffer-lines + buffer-name + buffer-release + buffer-validate + buffer-value + buttons + by + by-pointer + by-reference + by-value + by-variant-pointer + byte + bytes-read + bytes-written + cache + cache-size + call + call-name + call-type + can-create + can-delete + can-do + can-find + can-query + can-read + can-set + can-write + cancel-break + cancel-button + cancel-pick + cancel-requests + cancelled + caps + careful-paint + case + case-sensitive + cdecl + centered + chained + character + character_length + charset + check + checked + child-buffer + child-num + choices + chr + clear + clear-selection + client-connection-id + client-type + clipboard + clob + clone-node + close + code + codebase-locator + codepage + codepage-convert + col + col-of + collate + colon + colon-aligned + color + color-table + column-bgcolor + column-codepage + column-dcolor + column-fgcolor + column-font + column-label + column-label-bgcolor + column-label-dcolor + column-label-fgcolor + column-label-font + column-label-height-chars + column-label-height-pixels + column-movable + column-of + column-pfcolor + column-read-only + column-resizable + column-scrolling + columns + com-handle + com-self + combo-box + command + compares + compile + compiler + complete + component-handle + component-self + config-name + connect + connected + constrained + contains + contents + context + context-help + context-help-file + context-help-id + context-popup + control + control-box + control-container + control-frame + convert + convert-3d-colors + convert-to-offset + copy + copy-lob + count + count-of + coverage + cpcase + cpcoll + cpinternal + cplog + cpprint + cprcodein + cprcodeout + cpstream + cpterm + crc-value + create + create-like + create-node + create-node-namespace + create-on-add + create-result-list-entry + create-test-file + ctos + current + current-changed + current-column + current-environment + current-iteration + current-language + current-result-row + current-row-modified + current-value + current-window + current_date + cursor + cursor-char + cursor-down + cursor-left + cursor-line + cursor-offset + cursor-right + cursor-up + cut + data-bind + data-entry-return + data-refresh-line + data-refresh-page + data-relation + data-source + data-type + database + dataservers + dataset + dataset-handle + date + date-format + datetime + datetime-tz + day + db-references + dbcodepage + dbcollation + dbname + dbparam + dbrestrictions + dbtaskid + dbtype + dbversion + dcolor + dde + dde-error + dde-id + dde-item + dde-name + dde-topic + deblank + debug + debug-alert + debug-list + debugger + decimal + decimals + declare + default + default-buffer-handle + default-button + default-commit + default-extension + default-noxlate + default-pop-up + default-string + default-window + defer-lob-fetch + define + defined + delete + delete-column + delete-current-row + delete-end-line + delete-field + delete-header-entry + delete-line + delete-node + delete-result-list-entry + delete-selected-row + delete-selected-rows + delete-word + delimiter + descending + description + deselect-extend + deselect-focused-row + deselect-rows + deselect-selected-row + deselection-extend + detach + detach-data-source + dialog-box + dialog-help + dictionary + dir + directory + disable + disable-auto-zap + disable-connections + disable-dump-triggers + disable-load-triggers + disabled + disconnect + dismiss-menu + display + display-message + display-timezone + display-type + distinct + do + dos + dos-end + double + down + drag-enabled + drop + drop-down + drop-down-list + drop-target + dump + dump-logging-now + dynamic + dynamic-current-value + dynamic-function + dynamic-next-value + each + echo + edge + edge-chars + edge-pixels + edit-can-paste + edit-can-undo + edit-clear + edit-copy + edit-cut + edit-paste + edit-undo + editing + editor + editor-backtab + editor-tab + else + empty + empty-dataset + empty-temp-table + enable + enable-connections + enabled + encode + encoding + end-file-drop + end-key + end-row-resize + end-user-prompt + enter-menubar + entered + entry-types-list + eq + error-column + error-object-detail + error-row + error-status + error-string + escape + etime + event-procedure + event-procedure-context + event-type + events + except + exclusive + exclusive-id + exclusive-lock + exclusive-web-user + execute + execution-log + exists + exit + exp + expand + expandable + explicit + export + extended + extent + external + extract + false + fetch + fetch-selected-row + fgcolor + fields + file + file-access-date + file-access-time + file-create-date + file-create-time + file-information + file-mod-date + file-mod-time + file-name + file-offset + file-size + file-type + filename + fill + fill-in + fill-mode + fill-where-string + filled + filters + find + find-by-rowid + find-case-sensitive + find-current + find-first + find-global + find-last + find-next + find-next-occurrence + find-prev-occurrence + find-previous + find-select + find-unique + find-wrap-around + finder + first + first-async-request + first-buffer + first-child + first-column + first-data-source + first-dataset + first-of + first-procedure + first-query + first-server + first-server-socket + first-socket + first-tab-item + fit-last-column + fix-codepage + fixed-only + flat-button + float + focus + focus-in + focused-row + focused-row-selected + font + font-based-layout + font-table + for + force-file + foreground + form-input + format + forward-only + forwards + frame + frame-col + frame-db + frame-down + frame-field + frame-file + frame-index + frame-line + frame-name + frame-row + frame-spacing + frame-value + frame-x + frame-y + frequency + from + from-chars + from-current + from-pixels + fromnoreorder + full-height + full-height-chars + full-height-pixels + full-pathname + full-width-chars + full-width-pixels + function + function-call-type + gateways + ge + generate-md5 + get + get-attr-call-type + get-attribute + get-attribute-node + get-bits + get-blue-value + get-browse-column + get-buffer-handle + get-byte + get-byte-order + get-bytes + get-bytes-available + get-cgi-list + get-cgi-value + get-changes + get-child + get-child-relation + get-codepages + get-collations + get-config-value + get-current + get-dataset-buffer + get-dir + get-document-element + get-double + get-dropped-file + get-dynamic + get-file + get-first + get-float + get-green-value + get-header-entry + get-index-by-namespace-name + get-index-by-qname + get-iteration + get-key-value + get-last + get-localname-by-index + get-long + get-message + get-next + get-node + get-number + get-parent + get-pointer-value + get-prev + get-printers + get-qname-by-index + get-red-value + get-relation + get-repositioned-row + get-rgb-value + get-selected-widget + get-serialized + get-short + get-signature + get-size + get-socket-option + get-source-buffer + get-string + get-tab-item + get-text-height + get-text-height-chars + get-text-height-pixels + get-text-width + get-text-width-chars + get-text-width-pixels + get-top-buffer + get-type-by-index + get-type-by-namespace-name + get-type-by-qname + get-unsigned-short + get-uri-by-index + get-value-by-index + get-value-by-namespace-name + get-value-by-qname + get-wait-state + getbyte + global + go-on + go-pending + goto + grant + graphic-edge + grayed + grid-factor-horizontal + grid-factor-vertical + grid-set + grid-snap + grid-unit-height + grid-unit-height-chars + grid-unit-height-pixels + grid-unit-width + grid-unit-width-chars + grid-unit-width-pixels + grid-visible + group + gt + handle + handler + has-lobs + has-records + having + header + height + height-chars + height-pixels + help-context + help-topic + helpfile-name + hidden + hide + hint + horiz-end + horiz-home + horiz-scroll-drag + horizontal + host-byte-order + html-charset + html-end-of-line + html-end-of-page + html-frame-begin + html-frame-end + html-header-begin + html-header-end + html-title-begin + html-title-end + hwnd + icfparameter + icon + if + ignore-current-modified + image + image-down + image-insensitive + image-size + image-size-chars + image-size-pixels + image-up + immediate-display + import + import-node + in + in-handle + increment-exclusive-id + index + index-hint + index-information + indexed-reposition + indicator + information + init + initial + initial-dir + initial-filter + initialize-document-type + initiate + inner + inner-chars + inner-lines + input + input-output + input-value + insert + insert-backtab + insert-before + insert-column + insert-field + insert-field-data + insert-field-label + insert-file + insert-mode + insert-row + insert-string + insert-tab + instantiating-procedure + integer + internal-entries + interval + into + invoke + is + is-attr-space + is-codepage-fixed + is-column-codepage + is-lead-byte + is-open + is-parameter-set + is-row-selected + is-selected + is-xml + iso-date + item + items-per-row + iteration-changed + join + join-by-sqldb + kblabel + keep-connection-open + keep-frame-z-order + keep-messages + keep-security-cache + keep-tab-order + key + key-code + key-function + key-label + keycode + keyfunction + keylabel + keys + keyword + keyword-all + label + label-bgcolor + label-dcolor + label-fgcolor + label-font + label-pfcolor + labels + landscape + languages + large + large-to-small + last + last-async-request + last-child + last-event + last-key + last-of + last-procedure + last-server + last-server-socket + last-socket + last-tab-item + lastkey + lc + ldbname + le + leading + left + left-aligned + left-end + left-trim + length + library + like + line + line-counter + line-down + line-left + line-right + line-up + list-events + list-item-pairs + list-items + list-query-attrs + list-set-attrs + list-widgets + listing + listings + literal-question + little-endian + load + load-from + load-icon + load-image + load-image-down + load-image-insensitive + load-image-up + load-mouse-pointer + load-picture + load-small-icon + lob-dir + local-host + local-name + local-port + locator-column-number + locator-line-number + locator-public-id + locator-system-id + locator-type + locked + log + log-entry-types + log-id + log-manager + log-threshold + logfile-name + logging-level + logical + long + longchar + longchar-to-node-value + lookahead + lookup + lower + lt + machine-class + main-menu + mandatory + manual-highlight + map + margin-extra + margin-height + margin-height-chars + margin-height-pixels + margin-width + margin-width-chars + margin-width-pixels + matches + max + max-button + max-chars + max-data-guess + max-height + max-height-chars + max-height-pixels + max-rows + max-size + max-value + max-width + max-width-chars + max-width-pixels + maximize + maximum + md5-value + member + memptr + memptr-to-node-value + menu + menu-bar + menu-item + menu-key + menu-mouse + menubar + merge-changes + merge-row-changes + message + message-area + message-area-font + message-line + message-lines + min-button + min-column-width-chars + min-column-width-pixels + min-height + min-height-chars + min-height-pixels + min-row-height + min-row-height-chars + min-row-height-pixels + min-schema-marshall + min-size + min-value + min-width + min-width-chars + min-width-pixels + minimum + mod + modified + modulo + month + mouse + mouse-pointer + movable + move + move-after-tab-item + move-before-tab-item + move-column + move-to-bottom + move-to-eof + move-to-top + mpe + mtime + multiple + multiple-key + multitasking-interval + must-exist + must-understand + name + namespace-prefix + namespace-uri + native + ne + needs-appserver-prompt + needs-prompt + nested + new + new-line + new-row + next + next-column + next-error + next-frame + next-prompt + next-sibling + next-tab-item + next-value + next-word + no + no-apply + no-array-message + no-assign + no-attr + no-attr-list + no-attr-space + no-auto-validate + no-bind-where + no-box + no-column-scrolling + no-console + no-convert + no-convert-3d-colors + no-current-value + no-debug + no-drag + no-echo + no-empty-space + no-error + no-fill + no-focus + no-help + no-hide + no-index-hint + no-join-by-sqldb + no-labels + no-lobs + no-lock + no-lookahead + no-map + no-message + no-pause + no-prefetch + no-return-value + no-row-markers + no-schema-marshall + no-scrollbar-vertical + no-scrolling + no-separate-connection + no-separators + no-tab-stop + no-underline + no-undo + no-validate + no-wait + no-word-wrap + node-type + node-value + node-value-to-longchar + node-value-to-memptr + none + normalize + not + now + null + num-aliases + num-buffers + num-buttons + num-child-relations + num-children + num-columns + num-copies + num-dbs + num-dropped-files + num-entries + num-fields + num-formats + num-header-entries + num-items + num-iterations + num-lines + num-locked-columns + num-log-files + num-messages + num-parameters + num-relations + num-replaced + num-results + num-selected + num-selected-rows + num-selected-widgets + num-source-buffers + num-tabs + num-to-retain + num-top-buffers + num-visible-columns + numeric + numeric-decimal-point + numeric-format + numeric-separator + object + octet_length + of + off + ok + ok-cancel + old + ole-invoke-locale + ole-names-locale + on + on-frame-border + open + open-line-above + opsys + option + options + or + ordered-join + ordinal + orientation + origin-handle + origin-rowid + os-append + os-command + os-copy + os-create-dir + os-delete + os-dir + os-drives + os-error + os-getenv + os-rename + os2 + os400 + otherwise + out-of-data + outer + outer-join + output + overlay + override + owner + owner-document + page + page-bottom + page-down + page-left + page-number + page-right + page-right-text + page-size + page-top + page-up + page-width + paged + parameter + parent + parent-buffer + parent-relation + parse-status + partial-key + pascal + password-field + paste + pathname + pause + pdbname + performance + persistent + persistent-cache-disabled + persistent-procedure + pfcolor + pick + pick-area + pick-both + pixels + pixels-per-column + pixels-per-row + popup-menu + popup-only + portrait + position + precision + prepare-string + prepared + preprocess + preselect + prev + prev-column + prev-frame + prev-sibling + prev-tab-item + prev-word + primary + printer + printer-control-handle + printer-hdc + printer-name + printer-port + printer-setup + private + private-data + privileges + proc-handle + proc-status + procedure + procedure-call-type + procedure-name + process + profile-file + profiler + profiling + program-name + progress + progress-source + prompt + prompt-for + promsgs + propath + proversion + proxy + proxy-password + proxy-userid + public-id + publish + published-events + put + put-bits + put-byte + put-bytes + put-double + put-float + put-key-value + put-long + put-short + put-string + put-unsigned-short + putbyte + query + query-close + query-off-end + query-open + query-prepare + query-tuning + question + quit + quoter + r-index + radio-buttons + radio-set + random + raw + raw-transfer + rcode-information + read + read-available + read-exact-num + read-file + read-only + readkey + real + recid + record-length + rectangle + recursive + refresh + refreshable + reject-changes + reject-row-changes + rejected + relation-fields + relations-active + release + remote + remote-host + remote-port + remove-attribute + remove-child + remove-events-procedure + remove-super-procedure + repeat + replace + replace-child + replace-selection-text + replication-create + replication-delete + replication-write + reports + reposition + reposition-backwards + reposition-forwards + reposition-mode + reposition-parent-relation + reposition-to-row + reposition-to-rowid + request + resizable + resize + result + resume-display + retain + retain-shape + retry + retry-cancel + return-inserted + return-to-start-dir + return-value + return-value-data-type + returns + reverse-from + revert + revoke + rgb-value + right + right-aligned + right-end + right-trim + round + row + row-created + row-deleted + row-height + row-height-chars + row-height-pixels + row-markers + row-modified + row-of + row-resizable + row-state + row-unmodified + rowid + rule + rule-row + rule-y + run + run-procedure + save + save-as + save-file + save-row-changes + save-where-string + sax-attributes + sax-complete + sax-parse + sax-parse-first + sax-parse-next + sax-parser-error + sax-reader + sax-running + sax-uninitialized + sax-xml + schema + schema-change + schema-path + screen + screen-io + screen-lines + screen-value + scroll + scroll-bars + scroll-delta + scroll-left + scroll-mode + scroll-offset + scroll-right + scroll-to-current-row + scroll-to-item + scroll-to-selected-row + scrollable + scrollbar-drag + scrollbar-horizontal + scrollbar-vertical + scrolled-row-position + scrolling + sdbname + search + search-self + search-target + section + seek + select-all + select-extend + select-focused-row + select-next-row + select-prev-row + select-repositioned-row + select-row + selectable + selected + selected-items + selection-end + selection-extend + selection-list + selection-start + selection-text + self + send + sensitive + separate-connection + separator-fgcolor + separators + server + server-connection-bound + server-connection-bound-request + server-connection-context + server-connection-id + server-operating-mode + server-socket + session + session-end + set + set-actor + set-attr-call-type + set-attribute + set-attribute-node + set-blue-value + set-break + set-buffers + set-byte-order + set-callback-procedure + set-cell-focus + set-commit + set-connect-procedure + set-contents + set-dynamic + set-green-value + set-input-source + set-must-understand + set-node + set-numeric-format + set-parameter + set-pointer-value + set-read-response-procedure + set-red-value + set-repositioned-row + set-rgb-value + set-rollback + set-selection + set-serialized + set-size + set-socket-option + set-wait-state + settings + setuserid + share-lock + shared + short + show-in-taskbar + show-stats + side-label + side-label-handle + side-labels + silent + simple + single + size + size-chars + size-pixels + skip + skip-deleted-record + skip-schema-check + slider + small-icon + small-title + smallint + soap-fault + soap-fault-actor + soap-fault-code + soap-fault-detail + soap-fault-string + soap-header + soap-header-entryref + socket + some + sort + source + source-procedure + space + sql + sqrt + start + start-extend-box-selection + start-row-resize + starting + startup-parameters + status + status-area + status-area-font + stdcall + stop + stop-display + stop-parsing + stopped + stored-procedure + stream + stream-io + stretch-to-fit + string + string-value + string-xref + sub-average + sub-count + sub-maximum + sub-menu + sub-menu-help + sub-minimum + sub-total + subscribe + substitute + substring + subtype + sum + summary + super + super-procedures + suppress-namespace-processing + suppress-warnings + synchronize + system-alert-boxes + system-dialog + system-help + system-id + tab-position + tab-stop + table + table-crc-list + table-handle + table-list + table-number + target + target-procedure + temp-directory + temp-table + temp-table-prepare + term + terminal + terminate + text + text-cursor + text-seg-growth + text-selected + then + this-procedure + three-d + through + thru + tic-marks + time + time-source + timezone + title + title-bgcolor + title-dcolor + title-fgcolor + title-font + to + to-rowid + today + toggle-box + tooltip + tooltips + top + top-column + top-only + topic + total + trace-filter + tracing + tracking-changes + trailing + trans + trans-init-procedure + transaction + transaction-mode + transparent + trigger + triggers + trim + true + truncate + ttcodepage + type + unbuffered + underline + undo + unformatted + union + unique + unique-id + unique-match + unix + unix-end + unless-hidden + unload + unsigned-short + unsubscribe + up + update + upper + url + url-decode + url-encode + url-password + url-userid + use + use-dict-exps + use-filename + use-index + use-revvideo + use-text + use-underline + user + user-data + userid + using + utc-offset + v6display + v6frame + valid-event + valid-handle + validate + validate-expression + validate-message + validate-xml + validation-enabled + value + values + variable + verbose + vertical + view + view-as + view-first-column-on-reopen + virtual-height + virtual-height-chars + virtual-height-pixels + virtual-width + virtual-width-chars + virtual-width-pixels + visible + vms + wait + wait-for + warning + web-context + web-notify + weekday + when + where + where-string + while + widget + widget-enter + widget-handle + widget-leave + widget-pool + width + width-chars + width-pixels + window + window-delayed-minimize + window-name + window-normal + window-state + window-system + with + word-index + word-wrap + work-area-height-pixels + work-area-width-pixels + work-area-x + work-area-y + work-table + workfile + write + write-data + x + x-document + x-noderef + x-of + xcode + xml-schema-path + xml-suppress-namespace-processing + xref + y + y-of + year + year-offset + yes + yes-no + yes-no-cancel + _dcm + + + + accum + asc + avail + button + char + column + dec + def + disp + dict + dyn-function + excl + field + field-group + file-info + form + forward + funct + int + info + index-field + log + literal + load-control + no-label + prim + rcode-info + share + substr + var + + + + _abbreviate + _account_expires + _actailog + _actbilog + _actbuffer + _actindex + _actiofile + _actiotype + _active + _actlock + _actother + _actpws + _actrecord + _actserver + _actspace + _actsummary + _admin + _ailog-aiwwrites + _ailog-bbuffwaits + _ailog-byteswritn + _ailog-forcewaits + _ailog-id + _ailog-misc + _ailog-nobufavail + _ailog-partialwrt + _ailog-recwriten + _ailog-totwrites + _ailog-trans + _ailog-uptime + _alt + _area + _area-attrib + _area-block + _area-blocksize + _area-clustersize + _area-extents + _area-misc + _area-name + _area-number + _area-recbits + _area-recid + _area-type + _area-version + _areaextent + _areastatus + _areastatus-areaname + _areastatus-areanum + _areastatus-extents + _areastatus-freenum + _areastatus-hiwater + _areastatus-id + _areastatus-lastextent + _areastatus-rmnum + _areastatus-totblocks + _argtype + _ascending + _attribute + _attributes1 + _auth-id + _autoincr + _base-col + _base-tables + _bfstatus-apwq + _bfstatus-ckpmarked + _bfstatus-ckpq + _bfstatus-hashsize + _bfstatus-id + _bfstatus-lastckpnum + _bfstatus-lru + _bfstatus-misc + _bfstatus-modbuffs + _bfstatus-totbufs + _bfstatus-usedbuffs + _bilog-bbuffwaits + _bilog-biwwrites + _bilog-bytesread + _bilog-byteswrtn + _bilog-clstrclose + _bilog-ebuffwaits + _bilog-forcewaits + _bilog-forcewrts + _bilog-id + _bilog-misc + _bilog-partialwrts + _bilog-recread + _bilog-recwriten + _bilog-totalwrts + _bilog-totreads + _bilog-trans + _bilog-uptime + _block + _block-area + _block-bkupctr + _block-block + _block-chaintype + _block-dbkey + _block-id + _block-misc + _block-nextdbkey + _block-type + _block-update + _buffer-apwenq + _buffer-chkpts + _buffer-deferred + _buffer-flushed + _buffer-id + _buffer-logicrds + _buffer-logicwrts + _buffer-lruskips + _buffer-lruwrts + _buffer-marked + _buffer-misc + _buffer-osrds + _buffer-oswrts + _buffer-trans + _buffer-uptime + _buffstatus + _cache + _can-create + _can-delete + _can-dump + _can-load + _can-read + _can-write + _casesensitive + _charset + _checkpoint + _checkpoint-apwq + _checkpoint-cptq + _checkpoint-dirty + _checkpoint-flush + _checkpoint-id + _checkpoint-len + _checkpoint-misc + _checkpoint-scan + _checkpoint-time + _chkclause + _chkseq + _cnstrname + _cnstrtype + _code-feature + _codefeature-id + _codefeature-res01 + _codefeature-res02 + _codefeature_name + _codefeature_required + _codefeature_supported + _codepage + _col + _col-label + _col-label-sa + _col-name + _colid + _coll-cp + _coll-data + _coll-name + _coll-segment + _coll-sequence + _coll-strength + _coll-tran-subtype + _coll-tran-version + _collation + _colname + _colposition + _connect + _connect-2phase + _connect-batch + _connect-device + _connect-disconnect + _connect-id + _connect-interrupt + _connect-misc + _connect-name + _connect-pid + _connect-resync + _connect-semid + _connect-semnum + _connect-server + _connect-time + _connect-transid + _connect-type + _connect-usr + _connect-wait + _connect-wait1 + _cp-attr + _cp-dbrecid + _cp-name + _cp-sequence + _crc + _create-limit + _createparams + _create_date + _creator + _cycle-ok + _data-type + _database-feature + _datatype + _db + _db-addr + _db-coll-name + _db-collate + _db-comm + _db-lang + _db-local + _db-misc1 + _db-misc2 + _db-name + _db-recid + _db-res1 + _db-res2 + _db-revision + _db-slave + _db-type + _db-xl-name + _db-xlate + _dbaacc + _dbfeature-id + _dbfeature-res01 + _dbfeature-res02 + _dbfeature_active + _dbfeature_enabled + _dbfeature_name + _dblink + _dbstatus + _dbstatus-aiblksize + _dbstatus-biblksize + _dbstatus-biclsize + _dbstatus-biopen + _dbstatus-bisize + _dbstatus-bitrunc + _dbstatus-cachestamp + _dbstatus-changed + _dbstatus-clversminor + _dbstatus-codepage + _dbstatus-collation + _dbstatus-createdate + _dbstatus-dbblksize + _dbstatus-dbvers + _dbstatus-dbversminor + _dbstatus-emptyblks + _dbstatus-fbdate + _dbstatus-freeblks + _dbstatus-hiwater + _dbstatus-ibdate + _dbstatus-ibseq + _dbstatus-id + _dbstatus-integrity + _dbstatus-intflags + _dbstatus-lastopen + _dbstatus-lasttable + _dbstatus-lasttran + _dbstatus-misc + _dbstatus-mostlocks + _dbstatus-numareas + _dbstatus-numlocks + _dbstatus-numsems + _dbstatus-prevopen + _dbstatus-rmfreeblks + _dbstatus-sharedmemver + _dbstatus-shmvers + _dbstatus-starttime + _dbstatus-state + _dbstatus-tainted + _dbstatus-totalblks + _decimals + _del + _deleterule + _desc + _description + _dfltvalue + _dft-pk + _dhtypename + _disabled + _dtype + _dump-name + _email + _event + _exe + _extent + _extent-attrib + _extent-misc + _extent-number + _extent-path + _extent-size + _extent-system + _extent-type + _extent-version + _fetch-type + _field + _field-map + _field-name + _field-physpos + _field-recid + _field-rpos + _field-trig + _fil-misc1 + _fil-misc2 + _fil-res1 + _fil-res2 + _file + _file-label + _file-label-sa + _file-name + _file-number + _file-recid + _file-trig + _filelist + _filelist-blksize + _filelist-extend + _filelist-id + _filelist-logicalsz + _filelist-misc + _filelist-name + _filelist-openmode + _filelist-size + _fire_4gl + _fld + _fld-case + _fld-misc1 + _fld-misc2 + _fld-res1 + _fld-res2 + _fld-stdtype + _fld-stlen + _fld-stoff + _for-allocated + _for-cnt1 + _for-cnt2 + _for-flag + _for-format + _for-id + _for-info + _for-itype + _for-maxsize + _for-name + _for-number + _for-owner + _for-primary + _for-retrieve + _for-scale + _for-separator + _for-size + _for-spacing + _for-type + _for-xpos + _format + _format-sa + _frozen + _given_name + _grantee + _grantor + _group-by + _group_number + _has-ccnstrs + _has-fcnstrs + _has-pcnstrs + _has-ucnstrs + _hasresultset + _hasreturnval + _help + _help-sa + _hidden + _host + _i-misc1 + _i-misc2 + _i-res1 + _i-res2 + _ianum + _id + _idx-crc + _idx-num + _idxid + _idxmethod + _idxname + _idxowner + _if-misc1 + _if-misc2 + _if-res1 + _if-res2 + _index + _index-create + _index-delete + _index-field + _index-find + _index-free + _index-id + _index-misc + _index-name + _index-recid + _index-remove + _index-seq + _index-splits + _index-trans + _index-uptime + _indexbase + _indexstat + _indexstat-blockdelete + _indexstat-create + _indexstat-delete + _indexstat-id + _indexstat-read + _indexstat-split + _initial + _initial-sa + _ins + _iofile-bufreads + _iofile-bufwrites + _iofile-extends + _iofile-filename + _iofile-id + _iofile-misc + _iofile-reads + _iofile-trans + _iofile-ubufreads + _iofile-ubufwrites + _iofile-uptime + _iofile-writes + _iotype-airds + _iotype-aiwrts + _iotype-birds + _iotype-biwrts + _iotype-datareads + _iotype-datawrts + _iotype-id + _iotype-idxrds + _iotype-idxwrts + _iotype-misc + _iotype-trans + _iotype-uptime + _ispublic + _keyvalue-expr + _label + _label-sa + _lang + _last-change + _last-modified + _last_login + _latch + _latch-busy + _latch-hold + _latch-id + _latch-lock + _latch-lockedt + _latch-lockt + _latch-name + _latch-qhold + _latch-spin + _latch-type + _latch-wait + _latch-waitt + _lic-activeconns + _lic-batchconns + _lic-currconns + _lic-id + _lic-maxactive + _lic-maxbatch + _lic-maxcurrent + _lic-minactive + _lic-minbatch + _lic-mincurrent + _lic-validusers + _license + _linkowner + _literalprefix + _literalsuffix + _localtypename + _lock + _lock-canclreq + _lock-chain + _lock-downgrade + _lock-exclfind + _lock-excllock + _lock-exclreq + _lock-exclwait + _lock-flags + _lock-id + _lock-misc + _lock-name + _lock-recgetlock + _lock-recgetreq + _lock-recgetwait + _lock-recid + _lock-redreq + _lock-shrfind + _lock-shrlock + _lock-shrreq + _lock-shrwait + _lock-table + _lock-trans + _lock-type + _lock-upglock + _lock-upgreq + _lock-upgwait + _lock-uptime + _lock-usr + _lockreq + _lockreq-exclfind + _lockreq-id + _lockreq-misc + _lockreq-name + _lockreq-num + _lockreq-reclock + _lockreq-recwait + _lockreq-schlock + _lockreq-schwait + _lockreq-shrfind + _lockreq-trnlock + _lockreq-trnwait + _logging + _logging-2pc + _logging-2pcnickname + _logging-2pcpriority + _logging-aibegin + _logging-aiblksize + _logging-aibuffs + _logging-aicurrext + _logging-aiextents + _logging-aigennum + _logging-aiio + _logging-aijournal + _logging-ailogsize + _logging-ainew + _logging-aiopen + _logging-biblksize + _logging-bibuffs + _logging-bibytesfree + _logging-biclage + _logging-biclsize + _logging-biextents + _logging-bifullbuffs + _logging-biio + _logging-bilogsize + _logging-commitdelay + _logging-crashprot + _logging-id + _logging-lastckp + _logging-misc + _logins + _login_failures + _mandatory + _max_logins + _max_tries + _middle_initial + _mod-sequence + _mode + _mstrblk + _mstrblk-aiblksize + _mstrblk-biblksize + _mstrblk-biopen + _mstrblk-biprev + _mstrblk-bistate + _mstrblk-cfilnum + _mstrblk-crdate + _mstrblk-dbstate + _mstrblk-dbvers + _mstrblk-fbdate + _mstrblk-hiwater + _mstrblk-ibdate + _mstrblk-ibseq + _mstrblk-id + _mstrblk-integrity + _mstrblk-lasttask + _mstrblk-misc + _mstrblk-oppdate + _mstrblk-oprdate + _mstrblk-rlclsize + _mstrblk-rltime + _mstrblk-tainted + _mstrblk-timestamp + _mstrblk-totblks + _myconn-id + _myconn-numseqbuffers + _myconn-pid + _myconn-usedseqbuffers + _myconn-userid + _myconnection + _name_loc + _ndx + _nullable + _nullflag + _num-comp + _numfld + _numkcomp + _numkey + _numkfld + _object-associate + _object-associate-type + _object-attrib + _object-block + _object-misc + _object-number + _object-root + _object-system + _object-type + _odbcmoney + _order + _other-commit + _other-flushmblk + _other-id + _other-misc + _other-trans + _other-undo + _other-uptime + _other-wait + _override + _owner + _password + _prime-index + _proc-name + _procbin + _procid + _procname + _proctext + _proctype + _property + _pw-apwqwrites + _pw-buffsscaned + _pw-bufsckp + _pw-checkpoints + _pw-ckpqwrites + _pw-dbwrites + _pw-flushed + _pw-id + _pw-marked + _pw-misc + _pw-scancycles + _pw-scanwrites + _pw-totdbwrites + _pw-trans + _pw-uptime + _pwd + _pwd_duration + _pwd_expires + _record-bytescreat + _record-bytesdel + _record-bytesread + _record-bytesupd + _record-fragcreat + _record-fragdel + _record-fragread + _record-fragupd + _record-id + _record-misc + _record-reccreat + _record-recdel + _record-recread + _record-recupd + _record-trans + _record-uptime + _ref + _ref-table + _refcnstrname + _referstonew + _referstoold + _refowner + _reftblname + _remowner + _remtbl + _repl-agent + _repl-agentcontrol + _repl-server + _replagt-agentid + _replagt-agentname + _replagt-blocksack + _replagt-blocksprocessed + _replagt-blocksreceived + _replagt-commstatus + _replagt-connecttime + _replagt-dbname + _replagt-lasttrid + _replagt-method + _replagt-notesprocessed + _replagt-port + _replagt-reservedchar + _replagt-reservedint + _replagt-serverhost + _replagt-status + _replagtctl-agentid + _replagtctl-agentname + _replagtctl-blocksack + _replagtctl-blockssent + _replagtctl-commstatus + _replagtctl-connecttime + _replagtctl-lastblocksentat + _replagtctl-method + _replagtctl-port + _replagtctl-remotedbname + _replagtctl-remotehost + _replagtctl-reservedchar + _replagtctl-reservedint + _replagtctl-status + _replsrv-agentcount + _replsrv-blockssent + _replsrv-id + _replsrv-lastblocksentat + _replsrv-reservedchar + _replsrv-reservedint + _replsrv-starttime + _resacc + _resrc + _resrc-id + _resrc-lock + _resrc-name + _resrc-time + _resrc-wait + _rolename + _rssid + _scale + _schemaname + _screator + _searchable + _segment-bytefree + _segment-bytesused + _segment-id + _segment-misc + _segment-segid + _segment-segsize + _segments + _sel + _seq + _seq-incr + _seq-init + _seq-max + _seq-min + _seq-misc + _seq-name + _seq-num + _seq-owner + _sequence + _server-byterec + _server-bytesent + _server-currusers + _server-id + _server-logins + _server-maxusers + _server-misc + _server-msgrec + _server-msgsent + _server-num + _server-pendconn + _server-pid + _server-portnum + _server-protocol + _server-qryrec + _server-recrec + _server-recsent + _server-timeslice + _server-trans + _server-type + _server-uptime + _servers + _sname + _sowner + _space-allocnewrm + _space-backadd + _space-bytesalloc + _space-dbexd + _space-examined + _space-fromfree + _space-fromrm + _space-front2back + _space-frontadd + _space-id + _space-locked + _space-misc + _space-removed + _space-retfree + _space-takefree + _space-trans + _space-uptime + _spare1 + _spare2 + _spare3 + _spare4 + _sql_properties + _sremdb + _startup + _startup-aibuffs + _startup-ainame + _startup-apwbuffs + _startup-apwmaxwrites + _startup-apwqtime + _startup-apwstime + _startup-bibuffs + _startup-bidelay + _startup-biio + _startup-biname + _startup-bitrunc + _startup-buffs + _startup-crashprot + _startup-directio + _startup-id + _startup-locktable + _startup-maxclients + _startup-maxservers + _startup-maxusers + _startup-misc + _startup-spin + _statbase + _statbase-id + _statementorrow + _stbl + _stblowner + _storageobject + _summary-aiwrites + _summary-bireads + _summary-biwrites + _summary-chkpts + _summary-commits + _summary-dbaccesses + _summary-dbreads + _summary-dbwrites + _summary-flushed + _summary-id + _summary-misc + _summary-reccreat + _summary-recdel + _summary-reclock + _summary-recreads + _summary-recupd + _summary-recwait + _summary-transcomm + _summary-undos + _summary-uptime + _surname + _sys-field + _sysattachtbls + _sysbigintstat + _syscalctable + _syscharstat + _syschkcolusage + _syschkconstrs + _syschkconstr_name_map + _syscolauth + _syscolstat + _sysdatatypes + _sysdatestat + _sysdbauth + _sysdblinks + _sysfloatstat + _sysidxstat + _sysintstat + _syskeycolusage + _sysncharstat + _sysnumstat + _sysnvarcharstat + _sysprocbin + _sysproccolumns + _sysprocedures + _sysproctext + _sysrealstat + _sysrefconstrs + _sysroles + _sysschemas + _sysseqauth + _syssmintstat + _syssynonyms + _systabauth + _systblconstrs + _systblstat + _systimestat + _systinyintstat + _systrigcols + _systrigger + _systsstat + _syststzstat + _sysvarcharstat + _sysviews + _sysviews_name_map + _tablebase + _tablestat + _tablestat-create + _tablestat-delete + _tablestat-id + _tablestat-read + _tablestat-update + _tbl + _tbl-status + _tbl-type + _tblid + _tblname + _tblowner + _telephone + _template + _toss-limit + _trans + _trans-coord + _trans-coordtx + _trans-counter + _trans-duration + _trans-flags + _trans-id + _trans-misc + _trans-num + _trans-state + _trans-txtime + _trans-usrnum + _trig-crc + _triggerevent + _triggerid + _triggername + _triggertime + _txe-id + _txe-locks + _txe-lockss + _txe-time + _txe-type + _txe-wait-time + _txe-waits + _txe-waitss + _txelock + _typeprecision + _u-misc1 + _u-misc2 + _unique + _unsignedattr + _unsorted + _upd + _updatable + _user + _user-misc + _user-name + _userid + _userio + _userio-airead + _userio-aiwrite + _userio-biread + _userio-biwrite + _userio-dbaccess + _userio-dbread + _userio-dbwrite + _userio-id + _userio-misc + _userio-name + _userio-usr + _userlock + _userlock-chain + _userlock-flags + _userlock-id + _userlock-misc + _userlock-name + _userlock-recid + _userlock-type + _userlock-usr + _username + _userstatus + _userstatus-counter + _userstatus-objectid + _userstatus-objecttype + _userstatus-operation + _userstatus-state + _userstatus-target + _userstatus-userid + _user_number + _valexp + _valmsg + _valmsg-sa + _value + _value_ch + _value_n + _val_ts + _vcol-order + _version + _view + _view-as + _view-col + _view-def + _view-name + _view-ref + _viewname + _viewtext + _where-cls + _width + _word-rule + _word-rules + _wordidx + _wr-attr + _wr-cp + _wr-name + _wr-number + _wr-segment + _wr-type + _wr-version + + + + + + + + USE-INDEX + UNIX + DOS + VMS + BTOS + CTOS + OS2 + OS400 + EDITING + CHOOSE + PROMPT-FOR + SHARE-LOCK + READKEY + GO-PENDING + VALIDATE + IS-ATTR-SPACE + GATEWAYS + SCROLL + + + ITERATION-CHANGED + BEFORE-RECORD-FILL + AFTER-RECORD-FILL + REPOSITION-MODE + + + + + &ADM-CONTAINER + &ADM-SUPPORTED-LINKS + &ANALYZE-RESUME + &ANALYZE-SUSPEND + &BATCH-MODE + &BROWSE-NAME + &DEFINED + &DISPLAYED-FIELDS + &DISPLAYED-OBJECTS + &ELSE + &ELSEIF + &ENABLED-FIELDS-IN-QUERY + &ENABLED-FIELDS + &ENABLED-OBJECTS + &ENABLED-TABLES-IN-QUERY + &ENABLED-TABLES + &ENDIF + &EXTERNAL-TABLES + &FIELD-PAIRS-IN-QUERY + &FIELD-PAIRS + &FIELDS-IN-QUERY + &FILE-NAME + &FIRST-EXTERNAL-TABLE + &FIRST-TABLE-IN-QUERY + &FRAME-NAME + &GLOB + &GLOBAL-DEFINE + &IF + &INCLUDE + &INTERNAL-TABLES + &LAYOUT-VARIABLE + &LINE-NUMBER + &LIST-1 + &LIST-2 + &LIST-3 + &LIST-4 + &LIST-5 + &LIST-6 + &MESSAGE + &NEW + &OPEN-BROWSERS-IN-QUERY + &OPEN-QUERY + &OPSYS + &PROCEDURE-TYPE + &QUERY-NAME + &SCOP + &SCOPED-DEFINE + &SELF-NAME + &SEQUENCE + &TABLES-IN-QUERY + &THEN + &UIB_is_Running + &UNDEFINE + &WINDOW-NAME + &WINDOW-SYSTEM + DEFINED + PROCEDURE-TYPE + _CREATE-WINDOW + _CUSTOM _DEFINITIONS + _CUSTOM _MAIN-BLOCK + _CUSTOM + _DEFINITIONS + _END-PROCEDURE-SETTINGS + _FUNCTION-FORWARD + _FUNCTION + _INCLUDED-LIB + _INLINE + _MAIN-BLOCK + _PROCEDURE-SETTINGS + _PROCEDURE + _UIB-CODE-BLOCK + _UIB-PREPROCESSOR-BLOCK + _VERSION-NUMBER + _XFTR + + + + + + + diff --git a/extra/xmode/modes/prolog.xml b/extra/xmode/modes/prolog.xml new file mode 100644 index 0000000000..bd5adbd9a8 --- /dev/null +++ b/extra/xmode/modes/prolog.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + + % + + + /* + */ + + + + + ' + ' + + + " + " + + + + + [ + ] + + + + --> + :- + ?- + ; + -> + , + \+ + == + \== + \= + @< + @=< + @>= + @> + =.. + =:= + =\= + =< + >= + + + - + /\ + \/ + // + << + < + >> + > + ** + ^ + \ + / + = + * + + + . + + + ( + ) + { + } + + + + + true + fail + ! + at_end_of_stream + nl + repeat + halt + + + call + catch + throw + unify_with_occurs_check + var + atom + integer + float + atomic + compound + nonvar + number + functor + arg + copy_term + clause + current_predicate + asserta + assertz + retract + abolish + findall + bagof + setof + current_input + current_output + set_input + set_output + open + close + stream_property + at_end_of_stream + set_stream_position + get_char + get_code + peek_char + peek_code + put_char + put_code + nl + get_byte + peek_byte + put_byte + read_term + read + write_term + write + writeq + write_canonical + op + current_op + char_conversion + current_char_conversion + once + atom_length + atom_concat + sub_atom + atom_chars + atom_codes + char_code + number_chars + number_codes + set_prolog_flag + current_prolog_flag + halt + + + sin + cos + atan + exp + log + sqrt + + + is + rem + mod + + + _ + + + + + + + + [ + ] + + + diff --git a/extra/xmode/modes/props.xml b/extra/xmode/modes/props.xml new file mode 100644 index 0000000000..f3d0511026 --- /dev/null +++ b/extra/xmode/modes/props.xml @@ -0,0 +1,27 @@ + + + + + + + + + + # + = + : + + + + + + + { + } + + + # + + diff --git a/extra/xmode/modes/psp.xml b/extra/xmode/modes/psp.xml new file mode 100644 index 0000000000..2adc5a1a2e --- /dev/null +++ b/extra/xmode/modes/psp.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + <%@ + %> + + + + + <%-- + --%> + + + + + <% + %> + + + + + <script language="jscript"> + </script> + + + + <script language="javascript"> + </script> + + + + <script> + </script> + + + + + <!--# + --> + + + + + <!-- + --> + + + + + <STYLE> + </STYLE> + + + + + < + > + + + + + & + ; + + + + + + + + " + " + + + + ' + ' + + + = + + + + <%-- + --%> + + + + <% + %> + + + + + + + " + " + + + + ' + ' + + + = + + + include + + file + + + diff --git a/extra/xmode/modes/ptl.xml b/extra/xmode/modes/ptl.xml new file mode 100644 index 0000000000..b47f9a9d50 --- /dev/null +++ b/extra/xmode/modes/ptl.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + [html] + [plain] + + + _q_access + _q_exports + _q_index + _q_lookup + _q_resolve + _q_exception_handler + + + + diff --git a/extra/xmode/modes/pvwave.xml b/extra/xmode/modes/pvwave.xml new file mode 100644 index 0000000000..8a74b4a74b --- /dev/null +++ b/extra/xmode/modes/pvwave.xml @@ -0,0 +1,722 @@ + + + + + + + + + + + + " + " + + + ' + ' + + + ; + + ( + ) + = + + + - + / + * + # + > + < + ^ + } + { + . + , + ] + [ + : + $ + & + @ + ! + + + + abs + acos + add_exec_on_select + addsysvar + addvar + affine + alog + alog10 + asarr + asin + askeys + assoc + atan + avg + axis + bar + bar2d + bar3d + beseli + beselj + besely + bilinear + bindgen + blob + blobcount + boundary + build_table + buildresourcefilename + bytarr + byte + byteorder + bytscl + c_edit + call_unix + cd + center_view + chebyshev + check_math + checkfile + cindgen + close + color_convert + color_edit + color_palette + complex + complexarr + cone + congrid + conj + contour + contour2 + contourfill + conv_from_rect + conv_to_rect + convert_coord + convol + correlate + cos + cosh + cosines + cprod + create_holidays + create_weekdends + crossp + cursor + curvatures + curvefit + cylinder + day_name + day_of_week + day_of_year + dblarr + dc_error_msg + dc_options + dc_read_24_bit + dc_read_8_bit + dc_read_container + dc_read_dib + dc_read_fixed + dc_read_free + dc_read_tiff + dc_scan_container + dc_write_24_bit + dc_write_8_bit + dc_write_dib + dc_write_fixed + dc_write_free + dc_write_tiff + dcindgen + dcomplex + dcomplexarr + declare func + declare function + define_key + defroi + defsysv + del_file + delfunc + dellog + delproc + delstruct + delvar + demo + deriv + derivn + determ + device + diag + dicm_tag_info + digital_filter + dilate + dindgen + dist + dminit + doc_lib_unix + doc_library + double + drop_exec_on_select + dt_add + dt_addly + dt_compress + dt_duration + dt_print + dt_subly + dt_subtract + dt_to_sec + dt_to_str + dt_to_var + dtegn + empty + environment + eof + erase + erode + errorf + errplot + euclidean + exec_on_select + execute + exp + expand + expon + extrema + factor + fast_grid2 + fast_grid3 + fast_grid4 + fft + filepath + findfile + findgen + finite + fix + float + fltarr + flush + free_lun + fstat + funct + gamma + gaussfit + gaussint + gcd + get_kbrd + get_lun + getenv + get_named_color + getncerr + getncopts + getparam + great_int + grid + grid_2d + grid_3d + grid_4d + grid_sphere + gridn + group_by + hak + hanning + hdf_test + hdfgetsds + help + hilbert + hist_equal + hist_equal_ct + histn + histogram + hls + hsv + hsv_to_rgd + image_check + image_color_quant + image_cont + image_create + image_display + image_filetypes + image_query_file + image_read + image_write + imaginary + img_true8 + index_and + index_conv + index_or + indgen + intarr + interpol + interpolate + intrp + invert + isaskey + ishft + jacobian + jul_to_dt + keyword_set + lcm + leefilt + legend + lindgen + linknload + list + listarr + load_holidays + load_option + load_weekends + loadct + loadct_custom + loadresources + loadstrings + lonarr + long + lubksb + ludcmp + make_array + map + map_axes + map_contour + map_grid + map_plots + map_polyfill + map_proj + map_reverse + map_velovect + map_version + map_xyouts + max + median + mesh + message + min + modifyct + molec + moment + month_name + movie + mprove + msword_cgm_setup + n_elements + n_params + n_tags + nint + normals + null_processor + openr + openu + openw + oplot + oploterr + option_is_loaded + order_by + padit + packimage + packtable + palette + param_present + parsefilename + pie + pie_chart + plot + plot_field + plot_histogram + plot_io + plot_oi + plot_oo + plot_windrose + ploterr + plots + pm + pmf + point_lun + poly + poly_2d + poly_area + poly_c_conv + poly_count + poly_dev + poly_fit + poly_merge + poly_norm + poly_plot + poly_sphere + poly_surf + poly_trans + polyfill + polyfillv + polyfitw + polyshade + polywarp + popd + prime + print + printd + printf + profile + profiles + prompt + pseudo + pushd + query_table + randomn + randomu + rdpix + read + read_airs + read_xbm + readf + readu + rebin + reform + regress + rename + render + render24 + replicate + replv + resamp + reverse + rgb_to_hsv + rm + rmf + roberts + rot + rot_int + rotate + same + scale3d + sec_to_dt + select_read_lun + set_plot + set_screen + set_shading + set_symbol + set_view3d + set_viewport + set_xy + setdemo + setenv + setimagesize + setlog + setncopts + setup_keys + sgn + shade_surf + shade_surf_irr + shade_volume + shif + shift + show_options + show3 + sigma + sin + sindgen + sinh + size + skipf + slice + slice_vol + small_int + smooth + sobel + socket_accept + socket_close + socket_connect + socket_getport + socket_init + socket_read + socket_write + sort + sortn + spawn + sphere + spline + sqrt + stdev + str_to_dt + strarr + strcompress + stretch + string + strjoin + strlen + strlookup + strlowcase + strmatch + strmessage + strmid + strpos + strput + strsplit + strsubst + strtrim + structref + strupcase + sum + surface + surface_fit + surfr + svbksb + svd + svdfit + systime + t3d + tag_names + tan + tanh + tek_color + tensor_add + tensor_div + tensor_eq + tensor_exp + tensor_ge + tensor_gt + tensor_le + tensor_lt + tensor_max + tensor_min + tensor_mod + tensor_mul + tensor_ne + tensor_sub + threed + today + total + tqli + transpose + tred2 + tridag + tv + tvcrs + tvlct + tvrd + tvscl + tvsize + uniqn + unique + unix_listen + unix_reply + unload_option + upvar + usersym + usgs_names + value_length + var_match + var_to_dt + vector_field3 + vel + velovect + viewer + vol_marker + vol_pad + vol_red + vol_trans + volume + vtkaddattribute + vtkaxes + vtkcamera + vtkclose + vtkcolorbar + vtkcolornames + vtkcommand + vtkerase + vtkformat + vtkgrid + vtkhedgehog + vtkinit + vtklight + vtkplots + vtkpolydata + vtkpolyformat + vtkpolyshade + vtkppmread + vtkppmwrite + vtkreadvtk + vtkrectilineargrid + vtkrenderwindow + vtkscatter + vtkslicevol + vtkstructuredpoints + vtkstructuredgrid + vtksurface + vtksurfgen + vtktext + vtktvrd + vtkunstructuredgrid + vtkwdelete + vtkwindow + vtkwritevrml + vtkwset + wait + wavedatamanager + waveserver + wcopy + wdelete + where + wherein + window + wmenu + wpaste + wprint + wread_dib + wread_meta + write_xbm + writeu + wset + whow + wwrite_dib + wwrite_meta + xyouts + zoom + zroots + + begin + breakpoint + case + common + compile + declare + do + else + end + endcase + endelse + endfor + endif + endrepeat + endwhile + exit + for + func + function + goto + help + if + info + journal + locals + of + on_error + on_error_goto + on_ioerror + pro + quit + repeat + restore + retall + return + save + stop + then + while + + and + not + or + xor + eq + ne + gt + lt + ge + le + mod + WgAnimateTool + WgCbarTool + WgCtTool + WgIsoSurfTool + WgMovieTool + WgSimageTool + WgSliceTool + WgSurfaceTool + WgTextTool + WoAddButtons + WoAddMessage + WoAddStatus + WoButtonBar + WoCheckFile + WoColorButton + WoColorConvert + WoColorGrid + WoColorWheel + WoConfirmClose + WoDialogStatus + WoFontOptionMenu + WoGenericDialog + WoLabeledText + WoMenuBar + WoMessage + WoSaveAsPixmap + WoSetCursor + WoSetWindowTitle + WoStatus + WoVariableOptionMenu + WtAddCallback + WtAddHandler + WtCursor + WtGet + WtPointer + WtSet + WtTimer + WwAlert + WwAlertPopdown + WwButtonBox + WwCallback + WwControlsBox + WwDialog + WwDrawing + WwFileSelection + WwGenericDialog + WwGetButton + WwGetKey + WwGetPosition + WwGetValue + WwHandler + WwInit + WwLayout + WwList + WwListUtils + WwLoop + WwMainWindow + WwMenuBar + WwMenuItem + WwMessage + WwMultiClickHandler + WwOptionMenu + WwPickFile + WwPopupMenu + WwPreview + WwPreviewUtils + WwRadioBox + WwResource + WwSeparator + WwSetCursor + WwSetValue + WwTable + WwTableUtils + WwText + WwTimer + WwToolBox + WzAnimate + WzColorEdit + WzContour + WzExport + WzHistogram + WzImage + WzImport + WzMultiView + WzPlot + WzPreview + WzSurface + WzTable + WzVariable + + + diff --git a/extra/xmode/modes/pyrex.xml b/extra/xmode/modes/pyrex.xml new file mode 100644 index 0000000000..c46d574fc3 --- /dev/null +++ b/extra/xmode/modes/pyrex.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + cdef + char + cinclude + ctypedef + double + enum + extern + float + include + private + public + short + signed + sizeof + struct + union + unsigned + void + + NULL + + + + diff --git a/extra/xmode/modes/python.xml b/extra/xmode/modes/python.xml new file mode 100644 index 0000000000..654860eab7 --- /dev/null +++ b/extra/xmode/modes/python.xml @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # + + + @\w + + + + """ + """ + + + + ''' + ''' + + + + + " + " + + + ' + ' + + + = + ! + >= + <= + + + - + / + * + > + < + % + & + | + ^ + ~ + : + + ( + ) + + + + and + as + assert + break + class + continue + def + del + elif + else + except + exec + finally + for + from + global + if + import + in + is + lambda + not + or + pass + print + raise + return + reversed + sorted + try + while + with + yield + self + + + abs + all + any + apply + bool + buffer + callable + chr + classmethod + cmp + coerce + compile + complex + delattr + dict + dir + divmod + enumerate + eval + execfile + file + filter + float + frozenset + getattr + globals + hasattr + hash + hex + id + input + int + intern + isinstance + issubclass + iter + len + list + locals + long + map + max + min + object + oct + open + ord + pow + property + range + raw_input + reduce + reload + repr + round + set + setattr + slice + staticmethod + str + sum + super + tuple + type + unichr + unicode + vars + xrange + zip + + + ArithmeticError + AssertionError + AttributeError + DeprecationWarning + EOFError + EnvironmentError + Exception + FloatingPointError + IOError + ImportError + IndentationError + IndexError + KeyError + KeyboardInterrupt + LookupError + MemoryError + NameError + NotImplemented + NotImplementedError + OSError + OverflowError + OverflowWarning + ReferenceError + RuntimeError + RuntimeWarning + StandardError + StopIteration + SyntaxError + SyntaxWarning + SystemError + SystemExit + TabError + TypeError + UnboundLocalError + UnicodeError + UserWarning + ValueError + Warning + WindowsError + ZeroDivisionError + + + BufferType + BuiltinFunctionType + BuiltinMethodType + ClassType + CodeType + ComplexType + DictProxyType + DictType + DictionaryType + EllipsisType + FileType + FloatType + FrameType + FunctionType + GeneratorType + InstanceType + IntType + LambdaType + ListType + LongType + MethodType + ModuleType + NoneType + ObjectType + SliceType + StringType + StringTypes + TracebackType + TupleType + TypeType + UnboundMethodType + UnicodeType + XRangeType + + False + None + True + + __abs__ + __add__ + __all__ + __author__ + __bases__ + __builtins__ + __call__ + __class__ + __cmp__ + __coerce__ + __contains__ + __debug__ + __del__ + __delattr__ + __delitem__ + __delslice__ + __dict__ + __div__ + __divmod__ + __doc__ + __docformat__ + __eq__ + __file__ + __float__ + __floordiv__ + __future__ + __ge__ + __getattr__ + __getattribute__ + __getitem__ + __getslice__ + __gt__ + __hash__ + __hex__ + __iadd__ + __import__ + __imul__ + __init__ + __int__ + __invert__ + __iter__ + __le__ + __len__ + __long__ + __lshift__ + __lt__ + __members__ + __metaclass__ + __mod__ + __mro__ + __mul__ + __name__ + __ne__ + __neg__ + __new__ + __nonzero__ + __oct__ + __or__ + __path__ + __pos__ + __pow__ + __radd__ + __rdiv__ + __rdivmod__ + __reduce__ + __repr__ + __rfloordiv__ + __rlshift__ + __rmod__ + __rmul__ + __ror__ + __rpow__ + __rrshift__ + __rsub__ + __rtruediv__ + __rxor__ + __setattr__ + __setitem__ + __setslice__ + __self__ + __slots__ + __str__ + __sub__ + __truediv__ + __version__ + __xor__ + + + + + + %[.]?\d*[diouxXeEfFgGcrs] + %\([^)]+\)[+ -]?\d*[diouxXeEfFgGcrs] + + + + %\d*[diouxXeEfFgGcrs] + %\([^)]+\)[+ -]?\d*[diouxXeEfFgGcrs] + + B{ + } + + + C{ + } + + + E{ + } + + + I{ + } + + + L{ + } + + + >>> + ... + @ + + + diff --git a/extra/xmode/modes/quake.xml b/extra/xmode/modes/quake.xml new file mode 100644 index 0000000000..08af289e18 --- /dev/null +++ b/extra/xmode/modes/quake.xml @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + " + " + + + + ' + ' + + + + /* + */ + + + // + + + +attack + +back + +forward + +klook + +left + +lookdown + +lookup + +mlook + +movedown + +moveleft + +moveright + +moveup + +right + +speed + +strafe + +use + -attack + -back + -forward + -klook + -left + -lookdown + -lookup + -mlook + -movedown + -moveleft + -moveright + -moveup + -right + -speed + -strafe + -use + adr0 + adr1 + adr2 + adr3 + adr4 + adr5 + adr6 + adr7 + adr8 + alias + allow_download + allow_download_maps + allow_download_models + allow_download_players + allow_download_sounds + basedir + bind + bindlist + bob_pitch + bob_roll + bob_up + cd + cd_loopcount + cd_looptrack + cd_nocd + cddir + centerview + changing + cheats + cl_anglespeedkey + cl_autoskins + cl_blend + cl_entities + cl_footsteps + cl_forwardspeed + cl_gun + cl_lights + cl_maxfps + cl_nodelta + cl_noskins + cl_particles + cl_pitchspeed + cl_predict + cl_run + cl_showmiss + cl_shownet + cl_sidespeed + cl_stats + cl_stereo + cl_stereo_separation + cl_testblend + cl_testentities + cl_testlights + cl_testparticles + cl_timeout + cl_upspeed + cl_vwep + cl_yawspeed + clear + clientport + cmd + cmdlist + con_notifytime + condump + connect + coop + crosshair + cvarlist + deathmatch + debuggraph + dedicated + demomap + developer + dir + disconnect + dmflags + download + drop + dumpuser + echo + error + exec + filterban + fixedtime + flood_msgs + flood_persecond + flood_waitdelay + flushmap + fov + fraglimit + freelook + g_select_empty + game + gamedate + gamedir + gamemap + gamename + gameversion + gender + gender_auto + give + gl_3dlabs_broken + gl_allow_software + gl_bitdepth + gl_clear + gl_cull + gl_drawbuffer + gl_driver + gl_dynamic + gl_ext_compiled_vertex_array + gl_ext_multitexture + gl_ext_palettedtexture + gl_ext_pointparameters + gl_ext_swapinterval + gl_finish + gl_flashblend + gl_lightmap + gl_lockpvs + gl_log + gl_mode + gl_modulate + gl_monolightmap + gl_nobind + gl_nosubimage + gl_particle_att_a + gl_particle_att_b + gl_particle_att_c + gl_particle_max_size + gl_particle_min_size + gl_particle_size + gl_picmip + gl_playermip + gl_polyblend + gl_round_down + gl_saturatelighting + gl_shadows + gl_showtris + gl_skymip + gl_swapinterval + gl_texturealphamode + gl_texturemode + gl_texturesolidmode + gl_triplebuffer + gl_vertex_arrays + gl_ztrick + god + graphheight + graphscale + graphshift + gun_model + gun_next + gun_prev + gun_x + gun_y + gun_z + hand + heartbeat + host_speeds + hostname + hostport + imagelist + impulse + in_initjoy + in_initmouse + in_joystick + in_mouse + info + intensity + invdrop + inven + invnext + invnextp + invnextw + invprev + invprevp + invprevw + invuse + ip + ip_clientport + ip_hostport + ipx_clientport + ipx_hostport + joy_advanced + joy_advancedupdate + joy_advaxisr + joy_advaxisu + joy_advaxisv + joy_advaxisx + joy_advaxisy + joy_advaxisz + joy_forwardsensitivity + joy_forwardthreshold + joy_name + joy_pitchsensitivity + joy_pitchthreshold + joy_sidesensitivity + joy_sidethreshold + joy_upsensitivity + joy_upthreshold + joy_yawsensitivity + joy_yawthreshold + kick + kill + killserver + link + load + loading + log_stats + logfile + lookspring + lookstrafe + m_filter + m_forward + m_pitch + m_side + m_yaw + map + map_noareas + mapname + maxclients + maxentities + maxspectators + menu_addressbook + menu_credits + menu_dmoptions + menu_game + menu_joinserver + menu_keys + menu_loadgame + menu_main + menu_multiplayer + menu_options + menu_playerconfig + menu_quit + menu_savegame + menu_startserver + menu_video + messagemode + messagemode3 + modellist + msg + name + needpass + net_shownet + netgraph + nextserver + noclip + noipx + notarget + noudp + password + path + pause + paused + pingservers + play + playerlist + players + port + precache + prog + protocol + public + qport + quit + r_drawentities + r_drawworld + r_dspeeds + r_fullbright + r_lerpmodels + r_lightlevel + r_nocull + r_norefresh + r_novis + r_speeds + rate + rcon + rcon_address + rcon_password + reconnect + record + run_pitch + run_roll + s_initsound + s_khz + s_loadas8bit + s_mixahead + s_primary + s_show + s_testsound + s_volume + s_wavonly + save + say + say_team + score + scr_centertime + scr_conspeed + scr_drawall + scr_printspeed + scr_showpause + scr_showturtle + screenshot + sensitivity + serverinfo + serverrecord + serverstop + set + setenv + setmaster + showclamp + showdrop + showpackets + showtrace + sizedown + sizeup + skill + skin + skins + sky + snd_restart + soundinfo + soundlist + spectator + spectator_password + status + stop + stopsound + sv + sv_airaccelerate + sv_enforcetime + sv_gravity + sv_maplist + sv_maxvelocity + sv_noreload + sv_reconnect_limit + sv_rollangle + sv_rollspeed + sw_allow_modex + sw_clearcolor + sw_drawflat + sw_draworder + sw_maxedges + sw_maxsurfs + sw_mipcap + sw_mipscale + sw_mode + sw_polymodelstats + sw_reportedgeout + sw_reportsurfout + sw_stipplealpha + sw_surfcacheoverride + sw_waterwarp + timedemo + timegraph + timelimit + timeout + timerefresh + timescale + togglechat + toggleconsole + unbind + unbindall + use + userinfo + v_centermove + v_centerspeed + version + vid_front + vid_fullscreen + vid_gamma + vid_ref + vid_restart + vid_xpos + vid_ypos + viewpos + viewsize + wait + wave + weaplast + weapnext + weapprev + win_noalttab + z_stats + zombietime + shift + ctrl + space + tab + enter + escape + F1 + F2 + F3 + F4 + F5 + F6 + F7 + F8 + F9 + F10 + F11 + F12 + INS + DEL + PGUP + PGDN + HOME + END + MOUSE1 + MOUSE2 + uparrow + downarrow + leftarrow + rightarrow + mwheelup + mwheeldown + backspace + + + diff --git a/extra/xmode/modes/rcp.xml b/extra/xmode/modes/rcp.xml new file mode 100644 index 0000000000..1b2f4c5d73 --- /dev/null +++ b/extra/xmode/modes/rcp.xml @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + /* + */ + + + + + + + + " + " + + + + ' + ' + + + = + + + + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + // + + = + ! + = + + + - + / + * + % + | + ^ + ~ + + } + { + , + ; + ] + [ + ? + @ + : + + ( + ) + + + ALERT + APPLICATION + APPLICATIONICONNAME + AREA + BITMAP + BITMAPCOLOR + BITMAPCOLOR16 + BITMAPCOLOR16K + BITMAPFAMILY + BITMAPFAMILYEX + BITMAPFAMILYSPECIAL + BITMAPGREY + BITMAPGREY16 + BITMAPSCREENFAMILY + BOOTSCREENFAMILY + BUTTON + BUTTONS + BYTELIST + CATEGORIES + CHECKBOX + COUNTRYLOCALISATION + DATA + FEATURE + FIELD + FONTINDEX + FORM + FORMBITMAP + GADGET + GENERATEHEADER + GRAFFITIINPUTAREA + GRAFFITISTATEINDICATOR + HEX + ICON + ICONFAMILY + ICONFAMILYEX + INTEGER + KEYBOARD + LABEL + LAUNCHERCATEGORY + LIST + LONGWORDLIST + MENU + MENUITEM + MESSAGE + MIDI + NOGRAFFITISTATEINDICATOR + PALETTETABLE + POPUPLIST + POPUPTRIGGER + PULLDOWN + PUSHBUTTON + REPEATBUTTON + RESETAUTOID + SCROLLBAR + SELECTORTRIGGER + SLIDER + SMALLICON + SMALLICONFAMILY + SMALLICONFAMILYEX + STRING + STRINGTABLE + TABLE + TITLE + TRANSLATION + TRAP + VERSION + WORDLIST + + PREVTOP + PREVBOTTOM + PREVLEFT + PREVRIGHT + AUTO + AUTOID + + AT + AUTOSHIFT + BACKGROUNDID + BITMAPID + BOLDFRAME + BPP + CHECKED + COLORTABLE + COLUMNS + COLUMNWIDTHS + COMPRESS + COMPRESSBEST + COMPRESSPACKBITS + COMPRESSRLE + COMPRESSSCANLINE + CONFIRMATION + COUNTRY + CREATOR + CURRENCYDECIMALPLACES + CURRENCYNAME + CURRENCYSYMBOL + CURRENCYUNIQUESYMBOL + DATEFORMAT + DAYLIGHTSAVINGS + DEFAULTBTNID + DEFAULTBUTTON + DENSITY + DISABLED + DYNAMICSIZE + EDITABLE + ENTRY + ERROR + EXTENDED + FEEDBACK + FILE + FONTID + FORCECOMPRESS + FRAME + GRAFFITI + GRAPHICAL + GROUP + HASSCROLLBAR + HELPID + ID + INDEX + INFORMATION + KEYDOWNCHR + KEYDOWNKEYCODE + KEYDOWNMODIFIERS + LANGUAGE + LEFTALIGN + LEFTANCHOR + LONGDATEFORMAT + MAX + MAXCHARS + MEASUREMENTSYSTEM + MENUID + MIN + LOCALE + MINUTESWESTOFGMT + MODAL + MULTIPLELINES + NAME + NOCOLORTABLE + NOCOMPRESS + NOFRAME + NONEDITABLE + NONEXTENDED + NONUSABLE + NOSAVEBEHIND + NUMBER + NUMBERFORMAT + NUMERIC + PAGESIZE + RECTFRAME + RIGHTALIGN + RIGHTANCHOR + ROWS + SAVEBEHIND + SEARCH + SCREEN + SELECTEDBITMAPID + SINGLELINE + THUMBID + TRANSPARENTINDEX + TIMEFORMAT + UNDERLINED + USABLE + VALUE + VERTICAL + VISIBLEITEMS + WARNING + WEEKSTARTDAY + + FONT + + TRANSPARENT + + BEGIN + END + + + #include + #define + equ + #undef + #ifdef + #ifndef + #else + #endif + + package + + + + + + + $ + \ + = + ! + = + + + - + / + * + % + | + ^ + ~ + . + } + { + , + ; + ] + [ + ? + @ + : + ) + ' + + diff --git a/extra/xmode/modes/rd.xml b/extra/xmode/modes/rd.xml new file mode 100644 index 0000000000..2c94a6466b --- /dev/null +++ b/extra/xmode/modes/rd.xml @@ -0,0 +1,70 @@ + + + + + + + + + + " + " + + # + { + } + + \name + \alias + \title + \description + \synopsis + \usage + \arguments + \details + \value + \references + \note + \author + \seealso + \examples + \keyword + \itemize + \method + \docType + \format + \source + \itemize + \section + \enumerate + \describe + \tabular + \link + \item + \eqn + \deqn + \concept + \emph + \strong + \bold + \sQuote + \dQuote + \code + \preformatted + \kbd + \samp + \pkg + \file + \email + \url + \var + \env + \option + \command + \dfn + \cite + \acronym + \tab + + + diff --git a/extra/xmode/modes/rebol.xml b/extra/xmode/modes/rebol.xml new file mode 100644 index 0000000000..6d672b9871 --- /dev/null +++ b/extra/xmode/modes/rebol.xml @@ -0,0 +1,546 @@ + + + + + + + + + + + + + + + + + + comment { + } + + + + comment{ + } + + + + " + " + + + + { + } + + + ; + + = + >= + <= + <> + + + / + * + > + < + + ' + + + abs + absolute + add + and~ + at + back + change + clear + complement + copy + cp + divide + fifth + find + first + fourth + head + insert + last + make + max + maximum + min + minimum + multiply + negate + next + or~ + pick + poke + power + random + remainder + remove + second + select + skip + sort + subtract + tail + third + to + trim + xor~ + alias + all + any + arccosine + arcsine + arctangent + bind + break + browse + call + caret-to-offset + catch + checksum + close + comment + compose + compress + cosine + debase + decompress + dehex + detab + dh-compute-key + dh-generate-key + dh-make-key + difference + disarm + do + dsa-generate-key + dsa-make-key + dsa-make-signature + dsa-verify-signature + either + else + enbase + entab + exclude + exit + exp + foreach + form + free + get + get-modes + halt + hide + if + in + intersect + load + log-10 + log-2 + log-e + loop + lowercase + maximum-of + minimum-of + mold + not + now + offset-to-caret + open + parse + prin + print + protect + q + query + quit + read + read-io + recycle + reduce + repeat + return + reverse + rsa-encrypt + rsa-generate-key + rsa-make-key + save + secure + set + set-modes + show + sine + size-text + square-root + tangent + textinfo + throw + to-hex + to-local-file + to-rebol-file + trace + try + union + unique + unprotect + unset + until + update + uppercase + use + wait + while + write + write-io + basic-syntax-header + crlf + font-fixed + font-sans-serif + font-serif + list-words + outstr + val + value + about + alert + alter + append + array + ask + boot-prefs + build-tag + center-face + change-dir + charset + choose + clean-path + clear-fields + confine + confirm + context + cvs-date + cvs-version + decode-cgi + decode-url + deflag-face + delete + demo + desktop + dirize + dispatch + do-boot + do-events + do-face + do-face-alt + does + dump-face + dump-pane + echo + editor + emailer + emit + extract + find-by-type + find-key-face + find-window + flag-face + flash + focus + for + forall + forever + forskip + func + function + get-net-info + get-style + has + help + hide-popup + import-email + inform + input + insert-event-func + join + launch + launch-thru + layout + license + list-dir + load-image + load-prefs + load-thru + make-dir + make-face + net-error + open-events + parse-email-addrs + parse-header + parse-header-date + parse-xml + path-thru + probe + protect-system + read-net + read-thru + reboot + reform + rejoin + remold + remove-event-func + rename + repend + replace + request + request-color + request-date + request-download + request-file + request-list + request-pass + request-text + resend + save-prefs + save-user + scroll-para + send + set-font + set-net + set-para + set-style + set-user + set-user-name + show-popup + source + split-path + stylize + switch + throw-on-error + to-binary + to-bitset + to-block + to-char + to-date + to-decimal + to-email + to-event + to-file + to-get-word + to-hash + to-idate + to-image + to-integer + to-issue + to-list + to-lit-path + to-lit-word + to-logic + to-money + to-none + to-pair + to-paren + to-path + to-refinement + to-set-path + to-set-word + to-string + to-tag + to-time + to-tuple + to-url + to-word + unfocus + uninstall + unview + upgrade + Usage + vbug + view + view-install + view-prefs + what + what-dir + write-user + return + at + space + pad + across + below + origin + guide + tabs + indent + style + styles + size + sense + backcolor + do + none + action? + any-block? + any-function? + any-string? + any-type? + any-word? + binary? + bitset? + block? + char? + datatype? + date? + decimal? + email? + empty? + equal? + error? + even? + event? + file? + function? + get-word? + greater-or-equal? + greater? + hash? + head? + image? + index? + integer? + issue? + length? + lesser-or-equal? + lesser? + library? + list? + lit-path? + lit-word? + logic? + money? + native? + negative? + none? + not-equal? + number? + object? + odd? + op? + pair? + paren? + path? + port? + positive? + refinement? + routine? + same? + series? + set-path? + set-word? + strict-equal? + strict-not-equal? + string? + struct? + tag? + tail? + time? + tuple? + unset? + url? + word? + zero? + connected? + crypt-strength? + exists-key? + input? + script? + type? + value? + ? + ?? + dir? + exists-thru? + exists? + flag-face? + found? + in-window? + info? + inside? + link-app? + link? + modified? + offset? + outside? + screen-offset? + size? + span? + view? + viewed? + win-offset? + within? + action! + any-block! + any-function! + any-string! + any-type! + any-word! + binary! + bitset! + block! + char! + datatype! + date! + decimal! + email! + error! + event! + file! + function! + get-word! + hash! + image! + integer! + issue! + library! + list! + lit-path! + lit-word! + logic! + money! + native! + none! + number! + object! + op! + pair! + paren! + path! + port! + refinement! + routine! + series! + set-path! + set-word! + string! + struct! + symbol! + tag! + time! + tuple! + unset! + url! + word! + + true + false + self + + + diff --git a/extra/xmode/modes/redcode.xml b/extra/xmode/modes/redcode.xml new file mode 100644 index 0000000000..1c64d60252 --- /dev/null +++ b/extra/xmode/modes/redcode.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + ;redcode + ;author + ;name + ;strategy + ;password + ; + + .AB + .BA + .A + .B + .F + .X + .I + + , + : + ( + ) + + + + + - + / + % + + + == + != + <= + >= + < + > + + + && + || + ! + + + = + + + $ + @ + # + * + { + } + + + + CORESIZE + MAXPROCESSES + MAXCYCLES + MAXLENGTH + MINDISTANCE + ROUNDS + PSPACESIZE + CURLINE + VERSION + WARRIORS + + DAT + MOV + ADD + SUB + MUL + DIV + MOD + JMP + JMZ + JMN + DJN + SPL + SLT + CMP + SEQ + SNE + NOP + LDP + STP + + EQU + ORG + FOR + ROF + END + PIN + CORESIZE + MAXPROCESSES + MAXCYCLES + MAXLENGTH + MINDISTANCE + ROUNDS + PSPACESIZE + CURLINE + VERSION + WARRIORS + + + + + + + + diff --git a/extra/xmode/modes/relax-ng-compact.xml b/extra/xmode/modes/relax-ng-compact.xml new file mode 100644 index 0000000000..cdf67067e5 --- /dev/null +++ b/extra/xmode/modes/relax-ng-compact.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + # + + " + " + + + ' + ' + + + """ + """ + + + ''' + ''' + + + + + * + ? + &= + & + |= + | + = + - + + \ + + + attribute + default + datatypes + div + element + empty + external + grammar + include + inherit + list + mixed + namespace + notAllowed + parent + start + string + text + token + + + diff --git a/extra/xmode/modes/rest.xml b/extra/xmode/modes/rest.xml new file mode 100644 index 0000000000..0f51ecf579 --- /dev/null +++ b/extra/xmode/modes/rest.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + __ + .. _ + + + ={3,} + -{3,} + ~{3,} + #{3,} + "{3,} + \^{3,} + \+{3,} + \*{3,} + + + \.\.\s\|[^|]+\| + + + \|[^|]+\| + + + \.\.\s[A-z][A-z0-9-_]+:: + + + \*\*[^*]+\*\* + + + \*[^\s*][^*]*\* + + + .. + + + `[A-z0-9]+[^`]+`_{1,2} + + + \[[0-9]+\]_ + + + \[#[A-z0-9_]*\]_ + + + [*]_ + + + \[[A-z][A-z0-9_-]*\]_ + + + + + `` + `` + + + + + + ` + ` + + + `{3,} + + + :[A-z][A-z0-9 =\s\t_]*: + + + \+-[+-]+ + \+=[+=]+ + + + + diff --git a/extra/xmode/modes/rfc.xml b/extra/xmode/modes/rfc.xml new file mode 100644 index 0000000000..9d84db8319 --- /dev/null +++ b/extra/xmode/modes/rfc.xml @@ -0,0 +1,28 @@ + + + + + + + \[Page \d+\] + \[RFC\d+\] + + " + " + + + + MUST + MUST NOT + REQUIRED + SHALL + SHALL NOT + SHOULD + SHOULD NOT + RECOMMENDED + MAY + OPTIONAL + + + + diff --git a/extra/xmode/modes/rhtml.xml b/extra/xmode/modes/rhtml.xml new file mode 100644 index 0000000000..76e4f9173b --- /dev/null +++ b/extra/xmode/modes/rhtml.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + <%# + %> + + + + + <%= + %> + + + + + <% + %> + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + + + + + <!-- + --> + + + + <%# + %> + + + + " + " + + + + ' + ' + + + = + + + + + + <% + %> + + + + <%= + %> + + + diff --git a/extra/xmode/modes/rib.xml b/extra/xmode/modes/rib.xml new file mode 100644 index 0000000000..81b579ff12 --- /dev/null +++ b/extra/xmode/modes/rib.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + # + # + - + + + [ + ] + + " + " + + + float + string + color + point + vector + normal + matrix + void + varying + uniform + output + extern + + Begin + End + Declare + RtContextHandle + ContextHandle + Context + FrameBegin + FrameEnd + WorldBegin + WorldEnd + SolidBegin + SolidEnd + MotionBegin + MotionEnd + ObjectBegin + ObjectEnd + Format + FrameAspectRatio + ScreenWindow + CropWindow + Projection + Clipping + ClippingPlane + DepthOfField + Shutter + PixelVariance + PixelSamples + PixelFilter + Exposure + Imager + Quantize + Display + Hider + ColorSamples + RelativeDetail + Option + AttributeBegin + AttributeEnd + Color + Opacity + TextureCoordinates + RtLightHandle + LightSource + AreaLightSource + Illuminate + Surface + Displacement + Atmosphere + Interior + Exterior + ShadingRate + ShadingInterpolation + Matte + Bound + Detail + DetailRange + GeometricApproximation + Orientation + ReverseOrientation + Sides + Identity + Transform + ConcatTransform + Perspective + Translate + Rotate + Scale + Skew + CoordinateSystem + CoordSysTransform + TransformPoints + TransformBegin + TransformEnd + Attribute + + Polygon + GeneralPolygon + PointsPolygons + PointsGeneralPolygons + Basis + Patch + PatchMesh + NuPatch + TrimCurve + SubdivisionMesh + Sphere + Cone + Cylinder + Hyperboloid + Paraboloid + Disk + Torus + Points + Curves + Blobby + Procedural + DelayedReadArchive + RunProgram + DynamicLoad + Geometry + SolidBegin + SolidEnd + RtObjectHandle + ObjectBegin + ObjectEnd + ObjectInstance + + MakeTexture + MakeLatLongEnvironment + MakeCubeFaceEnvironment + MakeShadow + ErrorHandler + ArchiveRecord + ReadArchive + Deformation + MakeBump + + + + + float + string + color + point + vector + normal + matrix + void + varying + uniform + output + extern + + P + Pw + Pz + N + Cs + Os + RI_NULL + RI_INFINITY + orthographic + perspective + bezier + catmull-rom + b-spline + hermite + power + catmull-clark + hole + crease + corner + interpolateboundary + object + world + camera + screen + raster + NDC + box + triangle + sinc + gaussian + constant + smooth + outside + inside + lh + rh + bicubic + bilinear + periodic + nonperiodic + hidden + null + + + + diff --git a/extra/xmode/modes/rpmspec.xml b/extra/xmode/modes/rpmspec.xml new file mode 100644 index 0000000000..9bc3e12741 --- /dev/null +++ b/extra/xmode/modes/rpmspec.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + # + + + < + > + = + + + + %attr( + ) + + + + + %verify( + ) + + + + Source + + + Patch + %patch + + + + ${ + } + + + + %{ + } + + + $# + $? + $* + $< + $ + + + Summary: + Name: + Version: + Release: + Copyright: + Group: + URL: + Packager: + Prefix: + Distribution: + Vendor: + Icon: + Provides: + Requires: + Serial: + Conflicts: + AutoReqProv: + BuildArch: + ExcludeArch: + ExclusiveArch: + ExclusiveOS: + BuildRoot: + NoSource: + NoPatch: + + + + + + + + + + + + + + %setup + %ifarch + %ifnarch + %ifos + %ifnos + %else + %endif + + %doc + %config + %docdir + %dir + %package + + + + + , + - + + + + + owner + group + mode + md5 + size + maj + min + symlink + mtime + not + + + diff --git a/extra/xmode/modes/rtf.xml b/extra/xmode/modes/rtf.xml new file mode 100644 index 0000000000..889e79e359 --- /dev/null +++ b/extra/xmode/modes/rtf.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + { + } + + \\'\w\d + + \*\ + + \ + + diff --git a/extra/xmode/modes/ruby.xml b/extra/xmode/modes/ruby.xml new file mode 100644 index 0000000000..2d29c2d13d --- /dev/null +++ b/extra/xmode/modes/ruby.xml @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + + + + + + + + + + =begin + =end + + + + @ + + + /[^\p{Blank}]*?/ + + + + + " + " + + + + ' + ' + + + + + %Q?\( + ) + + + + + %q( + ) + + + + + %Q?\{ + } + + + + + %q{ + } + + + + + %Q?\[ + ] + + + + + %q[ + ] + + + + + %Q?< + > + + + + + %q< + > + + + + + + %Q([^\p{Alnum}]) + $1 + + + + + %q([^\p{Alnum}]) + $1 + + + + + %([^\p{Alnum}\p{Space}]) + $1 + + + + + %W( + ) + + + + + %w( + ) + + + + + %W{ + } + + + + + %w{ + } + + + + + %W[ + ] + + + + + %w[ + ] + + + + + %W< + > + + + + + %w< + > + + + + + %W([^\p{Alnum}\p{Space}]) + $1 + + + + + %w([^\p{Alnum}\p{Space}]) + $1 + + + + + + <<-?"([\p{Graph}]+)" + $1 + + + + + + <<-?'([\p{Graph}]+)' + $1 + + + + + + <<-?([A-Za-z_]+) + $1 + + + + + + + ` + ` + + + + + %x( + ) + + + + + %x{ + } + + + + + %x[ + ] + + + + + %x< + > + + + + + %x([^\p{Alnum}\p{Space}]) + $1 + + + + + + + + + + + %r( + ) + + + + + %r{ + } + + + + + %r[ + ] + + + + + %r< + > + + + + + %r([^\p{Alnum}\p{Space}]) + $1 + + + + + (/ + / + + + + + + #{ + } + + + + # + + + \$-[0adFiIKlpvw](?![\p{Alnum}_]) + + \$[0-9!@&\+`'=~/\\,\.;<>_\*"\$\?\:F](?![\p{Alnum}_]) + + + defined? + + + include(?![\p{Alnum}_\?]) + + + { + } + ( + ) + + + :: + === + = + >> + << + <= + + + - + / + + ** + * + + % + + + & + | + ! + > + < + ^ + ~ + + + ... + .. + + ] + [ + ? + + + :[\p{Alpha}_][\p{Alnum}_]* + + : + + + BEGIN + END + alias + begin + break + case + class + def + do + else + elsif + end + ensure + for + if + in + module + next + redo + rescue + retry + return + then + undef + unless + until + when + while + yield + + load + require + + and + not + or + + false + nil + self + super + true + + $defout + $deferr + $stderr + $stdin + $stdout + $DEBUG + $FILENAME + $LOAD_PATH + $SAFE + $VERBOSE + __FILE__ + __LINE__ + ARGF + ARGV + ENV + DATA + FALSE + NIL + RUBY_PLATFORM + RUBY_RELEASE_DATE + RUBY_VERSION + STDERR + STDIN + STDOUT + SCRIPT_LINES__ + TOPLEVEL_BINDING + TRUE + + + + + + + #{ + } + + #@@ + #@ + #$ + + + + + + #{ + } + + #@@ + #@ + #$ + + + + + + #{ + } + + #@@ + #@ + #$ + + diff --git a/extra/xmode/modes/rview.xml b/extra/xmode/modes/rview.xml new file mode 100644 index 0000000000..9747465814 --- /dev/null +++ b/extra/xmode/modes/rview.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + /**/ + + + + /** + */ + + + + + /* + */ + + + + " + " + + + } + { + = + + + ( + ) + + // + + + + + unique + relationalview + class + + rowmap + table + function + subview + query + + join + jointype + leftouter + rightouter + + switch + case + + sql + constraints + where + orderby + return + distinct + + + allow + delete + + update + select + insert + + + boolean + byte + char + double + float + int + long + short + + useCallableStatement + + + CHAR + VARCHAR + LONGVARCHAR + NUMERIC + DECIMAL + BIT + TINYINT + SMALLINT + INTEGER + BIGINT + REAL + FLOAT + DOUBLE + BINARY + VARBINARY + LONGVARBINARY + DATE + TIME + TIMESTAMP + + + + + + + + ' + ' + + + + + + - + / + * + = + + + >= + <= + > + < + + + } + { + + + :: + + + : + + + ( + ) + + + SELECT + FROM + WHERE + AND + NOT + IN + BETWEEN + UPDATE + SET + + call + desc + + + CHAR + VARCHAR + LONGVARCHAR + NUMERIC + DECIMAL + BIT + TINYINT + SMALLINT + INTEGER + BIGINT + REAL + FLOAT + DOUBLE + BINARY + VARBINARY + LONGVARBINARY + DATE + TIME + TIMESTAMP + + + + + diff --git a/extra/xmode/modes/sas.xml b/extra/xmode/modes/sas.xml new file mode 100644 index 0000000000..4f51536b92 --- /dev/null +++ b/extra/xmode/modes/sas.xml @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + /* + */ + + + + ' + ' + + + + = + < + > + _ + | + ~ + ^ + @ + ? + / + . + - + + + * + ! + + + $ASCII + $BINARY + $CB + $CHAR + $CHARZB + $EBCDIC + $HEX + $OCTAL + $VARYING + %BQUOTE + %DO + %ELSE + %END + %EVAL + %Global + %GOTO + %IF + %INC + %INCLUDE + %INDEX + %INPUT + %LENGTH + %LET + %LOCAL + %MACRO + %MEND + %NRBQUOTE + %NRQUOTE + %NRSTR + %PUT + %QSCAN + %Quote + %RUN + %SUBSTR + %SYSEXEC + %THEN + %UNTIL + %WHILE + %WINDOW + _ALL_ + _CHARACTER_ + _CMD_ + _ERROR_ + _I_ + _INFILE_ + _LAST_ + _MSG_ + _N_ + _NULL_ + _NUMERIC_ + _TEMPORARY_ + _TYPE_ + =DATA + ABORT + ADD + ADJRSQ + AND + ARRAY + ATTRIB + BACKWARD + BINARY + BLOCKSIZE + BY + BZ + CALL + CARDS + CARDS4 + CHAR + CLASS + COL + COLLIN + COLUMN + COMMA + COMMAX + CREATE + DATA + DATA= + DATE + DATETIME + DDMMYY + DECENDING + DEFINE + DELETE + DELIMITER + DISPLAY + DLM + DO + DROP + ELSE + END + ENDSAS + EOF + EOV + EQ + ERRORS + FILE + FILENAME + FILEVAR + FIRST. + FIRSTOBS + FOOTNOTE + FOOTNOTE1 + FOOTNOTE2 + FOOTNOTE3 + FORM + FORMAT + FORMCHAR + FORMDELIM + FORMDLIM + FORWARD + FROM + GO + GROUP + GT + HBAR + HEX + HPCT + HVAR + IB + ID + IEEE + IF + IN + INFILE + INFORMAT + INPUT + INR + JOIN + JULIAN + KEEP + LABEL + LAG + LAST. + LE + LIB + LIBNAME + LINE + LINESIZE + LINK + LIST + LOSTCARD + LRECL + LS + MACRO + MACROGEN + MAXDEC + MAXR + MEDIAN + MEMTYPE + MERGE + MERROR + MISSOVE + MLOGIC + MMDDYY + MODE + MODEL + MONYY + MPRINT + MRECALL + NE + NEW + NO + NOBS + NOCENTER + NOCUM + NODATE + NODUP + NODUPKEY + NOINT + NONUMBER + NOPAD + NOPRINT + NOROW + NOT + NOTITLE + NOTITLES + NOXSYNC + NOXWAIT + NUMBER + NWAY + OBS + OPTION + OPTIONS + OR + ORDER + OTHERWISE + OUT + OUTPUT + OVER + PAD + PAD2 + PAGESIZE + PD + PERCENT + PIB + PK + POINT + POSITION + PRINTER + PROC + PS + PUT + QUIT + R + RB + RECFM + REG + REGR + RENAME + REPLACE + RETAIN + RETURN + REUSE + RSQUARE + RUN + SASAUTOS + SCAN + SELECT + SELECTION + SERROR + SET + SIMPLE + SLE + SLS + START + STDIN + STOP + STOPOVER + SUBSTR + SYMBOL + SYMBOLGEN + T + TABLE + TABLES + THEN + TITLE + TITLE1 + TITLE2 + TITLE3 + TITLE4 + TITLE5 + TO + TOL + UNFORMATTED + UNTIL + UPDATE + VALUE + VAR + WHEN + WHERE + WHILE + WINDOW + WORK + X + XSYNC + XWAIT + YES + YYMMDD + + + + + + + diff --git a/extra/xmode/modes/scheme.xml b/extra/xmode/modes/scheme.xml new file mode 100644 index 0000000000..1117eaaa66 --- /dev/null +++ b/extra/xmode/modes/scheme.xml @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + #| + |# + + '( + ' + #\ + #b + #d + #o + #x + ; + + " + " + + + and + begin + case + cond + cond-expand + define + define-macro + delay + do + else + fluid-let + if + lambda + let + let* + letrec + or + quasiquote + quote + set! + abs + acos + angle + append + apply + asin + assoc + assq + assv + atan + car + cdr + caar + cadr + cdar + cddr + caaar + caadr + cadar + caddr + cdaar + cdadr + cddar + cdddr + call-with-current-continuation + call-with-input-file + call-with-output-file + call-with-values + call/cc + catch + ceiling + char->integer + char-downcase + char-upcase + close-input-port + close-output-port + cons + cos + current-input-port + current-output-port + delete-file + display + dynamic-wind + eval + exit + exact->inexact + exp + expt + file-or-directory-modify-seconds + floor + force + for-each + gcd + gensym + get-output-string + getenv + imag-part + integer->char + lcm + length + list + list->string + list->vector + list-ref + list-tail + load + log + magnitude + make-polar + make-rectangular + make-string + make-vector + map + max + member + memq + memv + min + modulo + newline + nil + not + number->string + open-input-file + open-input-string + open-output-file + open-output-string + peek-char + quotient + read + read-char + read-line + real-part + remainder + reverse + reverse! + round + set-car! + set-cdr! + sin + sqrt + string + string->list + string->number + string->symbol + string-append + string-copy + string-fill! + string-length + string-ref + string-set! + substring + symbol->string + system + tan + truncate + values + vector + vector->list + vector-fill! + vector-length + vector-ref + vector-set! + with-input-from-file + with-output-to-file + write + write-char + boolean? + char-alphabetic? + char-ci<=? + char-ci<? + char-ci=? + char-ci>=? + char-ci>? + char-lower-case? + char-numeric? + char-ready? + char-upper-case? + char-whitespace? + char<=? + char<? + char=? + char>=? + char>? + char? + complex? + eof-object? + eq? + equal? + eqv? + even? + exact? + file-exists? + inexact? + input-port? + integer? + list? + negative? + null? + number? + odd? + output-port? + pair? + port? + positive? + procedure? + rational? + real? + string-ci<=? + string-ci<? + string-ci=? + string-ci>=? + string-ci>? + string<=? + string<? + string=? + string>=? + string>? + string? + symbol? + vector? + zero? + #t + #f + + + diff --git a/extra/xmode/modes/sdl_pr.xml b/extra/xmode/modes/sdl_pr.xml new file mode 100644 index 0000000000..0f67aa83b9 --- /dev/null +++ b/extra/xmode/modes/sdl_pr.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + /*#SDTREF + */ + + + + + /* + */ + + + + + ' + ' + + + + " + " + + + + + + - + * + / + == + /= + := + = + < + <= + > + >= + . + ! + // + + and + mod + not + or + rem + xor + + + + active + adding + all + alternative + any + as + atleast + axioms + block + call + channel + comment + connect + connection + constant + constants + create + dcl + decision + default + else + end + endalternative + endblock + endchannel + endconnection + enddecision + endgenerator + endmacro + endnewtype + endoperator + endpackage + endprocedure + endprocess + endrefinement + endselect + endservice + endstate + endsubstructure + endsyntype + endsystem + env + error + export + exported + external + fi + finalized + for + fpar + from + gate + generator + if + import + imported + in + inherits + input + interface + join + literal + literals + macro + macrodefinition + macroid + map + nameclass + newtype + nextstate + nodelay + noequality + none + now + offspring + operator + operators + ordering + out + output + package + parent + priority + procedure + process + provided + redefined + referenced + refinement + remote + reset + return + returns + revealed + reverse + route + save + select + self + sender + service + set + signal + signallist + signalroute + signalset + spelling + start + state + stop + struct + substructure + synonym + syntype + system + task + then + this + timer + to + type + use + via + view + viewed + virtual + with + + + Boolean + Character + Charstring + Duration + Integer + Natural + Real + PId + Time + + + Array + String + Powerset + + + false + null + true + + + diff --git a/extra/xmode/modes/sgml.xml b/extra/xmode/modes/sgml.xml new file mode 100644 index 0000000000..6f7737d855 --- /dev/null +++ b/extra/xmode/modes/sgml.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + <!-- + --> + + + + + <!ENTITY + > + + + + + <![CDATA[ + ]]> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + diff --git a/extra/xmode/modes/shellscript.xml b/extra/xmode/modes/shellscript.xml new file mode 100644 index 0000000000..5d265b750d --- /dev/null +++ b/extra/xmode/modes/shellscript.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + #! + # + + + + ${ + } + + + $# + $? + $* + $@ + $$ + $< + $ + = + + + + $(( + )) + + + $( + ) + + + $[ + ] + + + ` + ` + + + + + " + " + + + ' + ' + + + + + + $1 + + + + | + & + ! + > + < + + + % + + + ( + ) + + + if + then + elif + else + fi + case + in + ;; + esac + while + for + do + done + continue + + local + return + + + + + + + + + + ${ + } + + + $ + + + + + + ${ + } + + + + $(( + )) + + + + $( + ) + + + + $[ + ] + + + $ + + | + & + ! + > + < + + diff --git a/extra/xmode/modes/shtml.xml b/extra/xmode/modes/shtml.xml new file mode 100644 index 0000000000..b5ee02e8ca --- /dev/null +++ b/extra/xmode/modes/shtml.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + <!--# + --> + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + + + + " + " + + + + ' + ' + + + = + + + + + " + " + + + + + = + + + config + echo + exec + flastmod + fsize + include + + cgi + errmsg + file + sizefmt + timefmt + var + cmd + + + + + + $ + + = + != + < + <= + > + >= + && + || + + diff --git a/extra/xmode/modes/slate.xml b/extra/xmode/modes/slate.xml new file mode 100644 index 0000000000..4f9b2c50e9 --- /dev/null +++ b/extra/xmode/modes/slate.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + " + " + + + # + + @ + + + ' + ' + + + + | + | + + + & + ` + + $\ + $ + + [ + ] + { + } + + diff --git a/extra/xmode/modes/smalltalk.xml b/extra/xmode/modes/smalltalk.xml new file mode 100644 index 0000000000..27eefe7f76 --- /dev/null +++ b/extra/xmode/modes/smalltalk.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + ' + ' + + + + " + " + + + := + _ + = + == + > + < + >= + <= + + + - + / + * + + : + # + $ + + + + + true + false + nil + + + self + super + + + isNil + not + + + Smalltalk + Transcript + + + Date + Time + Boolean + True + False + Character + String + Array + Symbol + Integer + Object + + + + diff --git a/extra/xmode/modes/smi-mib.xml b/extra/xmode/modes/smi-mib.xml new file mode 100644 index 0000000000..ed8982ea62 --- /dev/null +++ b/extra/xmode/modes/smi-mib.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + -- + + + " + " + + + ::= + } + { + + OBJECT IDENTIFIER + SEQUENCE OF + OCTET STRING + + + AGENT-CAPABILITIES + BEGIN + END + FROM + IMPORTS + MODULE-COMPLIANCE + MODULE-IDENTITY + NOTIFICATION-GROUP + NOTIFICATION-TYPE + OBJECT-GROUP + OBJECT-IDENTITY + OBJECT-TYPE + TEXTUAL-CONVENTION + + ACCESS + AUGMENTS + CONTACT-INFO + CREATION-REQUIRES + DEFINITIONS + DEFVAL + DESCRIPTION + DISPLAY-HINT + GROUP + INCLUDES + INDEX + LAST-UPDATED + MANDATORY-GROUPS + MAX-ACCESS + MIN-ACCESS + MODULE + NOTIFICATIONS + OBJECT + OBJECTS + ORGANIZATION + PRODUCT-RELEASE + REFERENCE + REVISION + STATUS + SYNTAX + SUPPORTS + UNITS + VARIATION + WRITE-SYNTAX + + AutonomousType + BITS + Counter32 + Counter64 + DateAndTime + DisplayString + Gauge32 + InstancePointer + INTEGER + Integer32 + IpAddress + MacAddress + Opaque + PhysAddress + RowPointer + RowStatus + SEQUENCE + TAddress + TDomain + TestAndIncr + TimeInterval + TimeStamp + TimeTicks + TruthValue + StorageType + Unsigned32 + VariablePointer + + accessible-for-notify + current + deprecated + not-accessible + obsolete + read-create + read-only + read-write + SIZE + + + diff --git a/extra/xmode/modes/splus.xml b/extra/xmode/modes/splus.xml new file mode 100644 index 0000000000..12e10d7ee3 --- /dev/null +++ b/extra/xmode/modes/splus.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + " + " + + + ' + ' + + + # + = + ! + _ + >= + <= + <- + + + - + / + + * + > + < + % + & + | + ^ + ~ + } + { + : + + + ( + ) + + + break + case + continue + default + do + else + for + goto + if + return + sizeof + switch + while + + function + + T + F + + + diff --git a/extra/xmode/modes/sql-loader.xml b/extra/xmode/modes/sql-loader.xml new file mode 100644 index 0000000000..ae62fc30b7 --- /dev/null +++ b/extra/xmode/modes/sql-loader.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + /* + */ + + + ' + ' + + + " + " + + -- + + + - + / + * + = + > + < + % + & + | + ^ + ~ + != + !> + !< + := + + + + LOAD + DATA + INFILE + BADFILE + DISCARDFILE + INTO + TABLE + FIELDS + TERMINATED + BY + OPTIONALLY + ENCLOSED + EXTERNAL + TRAILING + NULLCOLS + NULLIF + DATA + BLANKS + INSERT + INTO + POSITION + WHEN + APPEND + REPLACE + EOF + LOBFILE + TRUNCATE + COLUMN + + + COUNT + AND + SDF + OR + SYSDATE + + + binary + bit + blob + boolean + char + character + constant + date + datetime + decimal + double + filler + float + image + int + integer + money + + numeric + nchar + nvarchar + ntext + object + pls_integer + raw + real + smalldatetime + smallint + smallmoney + sequence + text + timestamp + tinyint + uniqueidentifier + varbinary + varchar + varchar2 + varray + zoned + + + + + diff --git a/extra/xmode/modes/sqr.xml b/extra/xmode/modes/sqr.xml new file mode 100644 index 0000000000..6e28544605 --- /dev/null +++ b/extra/xmode/modes/sqr.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + ! + + + + ' + ' + + + + + [ + ] + + + ^ + @ + := + = + <> + >= + <= + > + < + + + / + * + + $ + # + & + + + + begin-procedure + end-procedure + begin-report + end-report + begin-heading + end-heading + begin-setup + end-setup + begin-footing + end-footing + begin-program + end-program + + + begin-select + end-select + begin-sql + end-sql + + + add + array-add + array-divide + array-multiply + array-subtract + ask + break + call + clear-array + close + columns + commit + concat + connect + create-array + date-time + display + divide + do + dollar-symbol + else + encode + end-evaluate + end-if + end-while + evaluate + execute + extract + find + font + get + goto + graphic + if + last-page + let + lookup + lowercase + money-symbol + move + multiply + new-page + new-report + next-column + next-listing + no-formfeed + open + page-number + page-size + position + print + print-bar-code + print-chart + print-direct + print-image + printer-deinit + printer-init + put + read + rollback + show + stop + string + subtract + unstring + uppercase + use + use-column + use-printer-type + use-procedure + use-report + use-report + while + write + to + + + from + where + and + between + or + in + + + + diff --git a/extra/xmode/modes/squidconf.xml b/extra/xmode/modes/squidconf.xml new file mode 100644 index 0000000000..d8d84a684f --- /dev/null +++ b/extra/xmode/modes/squidconf.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + # + + + http_port + https_port + ssl_unclean_shutdown + icp_port + htcp_port + mcast_groups + udp_incoming_address + udp_outgoing_address + cache_peer + cache_peer_domain + neighbor_type_domain + icp_query_timeout + maximum_icp_query_timeout + mcast_icp_query_timeout + dead_peer_timeout + hierarchy_stoplist + no_cache + cache_mem + cache_swap_low + cache_swap_high + maximum_object_size + minimum_object_size + maximum_object_size_in_memory + ipcache_size + ipcache_low + ipcache_high + fqdncache_size + cache_replacement_policy + memory_replacement_policy + cache_dir + cache_access_log + cache_log + cache_store_log + cache_swap_log + emulate_httpd_log + log_ip_on_direct + mime_table + log_mime_hdrs + useragent_log + referer_log + pid_filename + debug_options + log_fqdn + client_netmask + ftp_user + ftp_list_width + ftp_passive + ftp_sanitycheck + cache_dns_program + dns_children + dns_retransmit_interval + dns_timeout + dns_defnames + dns_nameservers + hosts_file + diskd_program + unlinkd_program + pinger_program + redirect_program + redirect_children + redirect_rewrites_host_header + redirector_access + auth_param + authenticate_cache_garbage_interval + authenticate_ttl + authenticate_ip_ttl + external_acl_type + wais_relay_host + wais_relay_port + request_header_max_size + request_body_max_size + refresh_pattern + quick_abort_min + quick_abort_max + quick_abort_pct + negative_ttl + positive_dns_ttl + negative_dns_ttl + range_offset_limit + connect_timeout + peer_connect_timeout + read_timeout + request_timeout + persistent_request_timeout + client_lifetime + half_closed_clients + pconn_timeout + ident_timeout + shutdown_lifetime + acl + http_access + http_reply_access + icp_access + miss_access + cache_peer_access + ident_lookup_access + tcp_outgoing_tos + tcp_outgoing_address + reply_body_max_size + cache_mgr + cache_effective_user + cache_effective_group + visible_hostname + unique_hostname + hostname_aliases + announce_period + announce_host + announce_file + announce_port + httpd_accel_host + httpd_accel_port + httpd_accel_single_host + httpd_accel_with_proxy + httpd_accel_uses_host_header + dns_testnames + logfile_rotate + append_domain + tcp_recv_bufsize + err_html_text + deny_info + memory_pools + memory_pools_limit + forwarded_for + log_icp_queries + icp_hit_stale + minimum_direct_hops + minimum_direct_rtt + cachemgr_passwd + store_avg_object_size + store_objects_per_bucket + client_db + netdb_low + netdb_high + netdb_ping_period + query_icmp + test_reachability + buffered_logs + reload_into_ims + always_direct + never_direct + header_access + header_replace + icon_directory + error_directory + maximum_single_addr_tries + snmp_port + snmp_access + snmp_incoming_address + snmp_outgoing_address + as_whois_server + wccp_router + wccp_version + wccp_incoming_address + wccp_outgoing_address + delay_pools + delay_class + delay_access + delay_parameters + delay_initial_bucket_level + incoming_icp_average + incoming_http_average + incoming_dns_average + min_icp_poll_cnt + min_dns_poll_cnt + min_http_poll_cnt + max_open_disk_fds + offline_mode + uri_whitespace + broken_posts + mcast_miss_addr + mcast_miss_ttl + mcast_miss_port + mcast_miss_encode_key + nonhierarchical_direct + prefer_direct + strip_query_terms + coredump_dir + redirector_bypass + ignore_unknown_nameservers + digest_generation + digest_bits_per_entry + digest_rebuild_period + digest_rewrite_period + digest_swapout_chunk_size + digest_rebuild_chunk_percentage + chroot + client_persistent_connections + server_persistent_connections + pipeline_prefetch + extension_methods + request_entities + high_response_time_warning + high_page_fault_warning + high_memory_warning + store_dir_select_algorithm + forward_log + ie_refresh + vary_ignore_expire + sleep_after_fork + + dst + src + method + port + proxy_auth + + on + off + allow + deny + + + diff --git a/extra/xmode/modes/ssharp.xml b/extra/xmode/modes/ssharp.xml new file mode 100644 index 0000000000..019a6fd1cf --- /dev/null +++ b/extra/xmode/modes/ssharp.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + ' + ' + + + # + "" + + + " + " + + + + « + » + + + ( + ) + { + } + := + _ + = + == + > + < + >= + <= + + + - + / + // + \\ + * + ** + # + ^ + ^^ + ; + . + -> + && + || + ^| + != + ~= + !== + ~~ + + : + # + $ + + + + disable + enable + no + off + on + yes + + + self + true + false + nil + super + thread + sender + senderMethod + blockSelf + scheduler + ¼ + + + isNil + not + + + Smalltalk + Transcript + + + Date + Time + Boolean + True + False + Character + String + Array + Symbol + Integer + Object + + Application + Category + Class + Compiler + EntryPoint + Enum + Eval + Exception + Function + IconResource + Interface + Literal + Namespace + Method + Mixin + Module + Project + Reference + Require + Resource + Signal + Struct + Subsystem + Specifications + Warning + + + + diff --git a/extra/xmode/modes/svn-commit.xml b/extra/xmode/modes/svn-commit.xml new file mode 100644 index 0000000000..5cd415cadd --- /dev/null +++ b/extra/xmode/modes/svn-commit.xml @@ -0,0 +1,22 @@ + + + + + + + + + --This line, and those below, will be ignored-- + + + A + D + M + _ + + diff --git a/extra/xmode/modes/swig.xml b/extra/xmode/modes/swig.xml new file mode 100644 index 0000000000..ac5a23a1a9 --- /dev/null +++ b/extra/xmode/modes/swig.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + %{ + %} + + + + % + + + + diff --git a/extra/xmode/modes/tcl.xml b/extra/xmode/modes/tcl.xml new file mode 100644 index 0000000000..4927f13bff --- /dev/null +++ b/extra/xmode/modes/tcl.xml @@ -0,0 +1,682 @@ + + + + + + + + + + + + + + + + + \\$ + + + + ;\s*(?=#) + + + \{\s*(?=#) + } + + + # + + + + " + " + + + + + + \$(\w|::)+\( + ) + + + + ${ + } + + + \$(\w|::)+ + + + + { + } + + + + + [ + ] + + + + \a + \b + \f + \n + \r + \t + \v + + + + + ; + :: + + + = + ! + >= + <= + + + - + / + * + > + < + % + & + | + ^ + ~ + + + + append + array + concat + console + eval + expr + format + global + set + trace + unset + upvar + join + lappend + lindex + linsert + list + llength + lrange + lreplace + lsearch + lsort + split + scan + string + regexp + regsub + if + else + elseif + switch + for + foreach + while + break + continue + proc + return + source + unknown + uplevel + cd + close + eof + file + flush + gets + glob + open + read + puts + pwd + seek + tell + catch + error + exec + pid + after + time + exit + history + rename + info + + ceil + floor + round + incr + abs + acos + cos + cosh + asin + sin + sinh + atan + atan2 + tan + tanh + log + log10 + fmod + pow + hypot + sqrt + double + int + + bgerror + binary + clock + dde + encoding + fblocked + fconfigure + fcopy + fileevent + filename + http + interp + load + lset + memory + msgcat + namespace + package + pkg::create + pkg_mkIndex + registry + resource + socket + subst + update + variable + vwait + + auto_execok + auto_import + auto_load + auto_mkindex + auto_mkindex_old + auto_qualify + auto_reset + parray + tcl_endOfWord + tcl_findLibrary + tcl_startOfNextWord + tcl_startOfPreviousWord + tcl_wordBreakAfter + tcl_wordBreakBefore + + + bind + button + canvas + checkbutton + destroy + entry + focus + frame + grab + image + label + listbox + lower + menu + menubutton + message + option + pack + placer + radiobutton + raise + scale + scrollbar + selection + send + text + tk + tkerror + tkwait + toplevel + update + winfo + wm + + + + debug + disconnect + + exp_continue + exp_internal + exp_open + exp_pid + exp_version + expect + expect_after + expect_background + expect_before + expect_tty + expect_user + fork + inter_return + interact + interpreter + log_file + log_user + match_max + overlay + parity + promptl + prompt2 + remove_nulls + + send_error + send_log + send_tty + send_user + sleep + spawn + strace + stty + system + timestamp + trap + wait + + full_buffer + timeout + + + + argv0 + argv + argc + tk_version + tk_library + tk_strictMotif + + env + errorCode + errorInfo + geometry + tcl_library + tcl_patchLevel + tcl_pkgPath + tcl_platform + tcl_precision + tcl_rcFileName + tcl_rcRsrcName + tcl_traceCompile + tcl_traceExec + tcl_wordchars + tcl_nonwordchars + tcl_version + tcl_interactive + + + exact + all + indices + nocase + nocomplain + nonewline + code + errorinfo + errorcode + atime + anymore + args + body + compare + cmdcount + commands + ctime + current + default + dev + dirname + donesearch + errorinfo + executable + extension + first + globals + gid + index + ino + isdirectory + isfile + keep + last + level + length + library + locals + lstat + match + mode + mtime + names + nextelement + nextid + nlink + none + procs + owned + range + readable + readlink + redo + release + rootname + script + show + size + startsearch + stat + status + substitute + tail + tclversion + tolower + toupper + trim + trimleft + trimright + type + uid + variable + vars + vdelete + vinfo + visibility + window + writable + accelerator + activeforeground + activebackground + anchor + aspect + background + before + bg + borderwidth + bd + bitmap + command + cursor + default + expand + family + fg + fill + font + force + foreground + from + height + icon + question + warning + in + ipadx + ipady + justify + left + center + right + length + padx + pady + offvalue + onvalue + orient + horizontal + vertical + outline + oversrike + relief + raised + sunken + flat + groove + ridge + solid + screen + selectbackground + selectforeground + setgrid + side + size + slant + left + right + top + bottom + spacing1 + spacing2 + spacing3 + state + stipple + takefocus + tearoff + textvariable + title + to + type + abortretryignore + ok + okcancel + retrycancel + yesno + yesnocancel + underline + value + variable + weight + width + xscrollcommand + yscrollcommand + active + add + arc + aspect + bitmap + cascade + cget + children + class + clear + client + create + colormodel + command + configure + deiconify + delete + disabled + exists + focusmodel + flash + forget + geometry + get + group + handle + iconbitmap + iconify + iconmask + iconname + iconposition + iconwindow + idletasks + insert + interps + itemconfigure + invoke + line + mark + maxsize + minsize + move + name + normal + overrideredirect + oval + own + photo + polygon + positionfrom + propagate + protocol + ranges + rectangle + remove + resizable + separator + slaves + sizefrom + state + tag + title + transient + window + withdraw + xview + yview + Activate + Alt + Any + B1 + B2 + B3 + Button1 + Button2 + Button3 + ButtonPress + ButtonRelease + Double + Circulate + Colormap + Configure + Control + Deactivate + Escape + Expose + FocusIn + FocusOut + Gravity + Key + KeyPress + KeyRelease + Lock + Meta + Property + Reparent + Shift + Unmap + Visibility + Button + ButtonPress + ButtonRelease + Destroy + Escape + Enter + Leave + Motion + MenuSelect + Triple + all + + + + + + #.* + + + + + + + + + + \\$ + + + + \$(\w|::)+\( + ) + + + \$\{ + } + + \$(\w|::)+ + + + + [ + ] + + + + \a + \b + \f + \n + \r + \t + \v + + diff --git a/extra/xmode/modes/tex.xml b/extra/xmode/modes/tex.xml new file mode 100644 index 0000000000..c59bfa8d89 --- /dev/null +++ b/extra/xmode/modes/tex.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + $$ + $$ + + + + + $ + $ + + + + + \[ + \] + + + + \$ + \\ + \% + + + + \iffalse + \fi + + + + + \begin{verbatim} + \end{verbatim} + + + + + \verb| + | + + + \ + + + % + + + { + } + [ + ] + + + + + \$ + \\ + \% + + + \ + + + ) + ( + { + } + [ + ] + = + ! + + + - + / + * + > + < + & + | + ^ + ~ + . + , + ; + ? + : + ' + " + ` + + + % + + + + diff --git a/extra/xmode/modes/texinfo.xml b/extra/xmode/modes/texinfo.xml new file mode 100644 index 0000000000..32ce5893fa --- /dev/null +++ b/extra/xmode/modes/texinfo.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + @c + @comment + + + @ + + { + } + + diff --git a/extra/xmode/modes/text.xml b/extra/xmode/modes/text.xml new file mode 100644 index 0000000000..fe66537ae2 --- /dev/null +++ b/extra/xmode/modes/text.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/extra/xmode/modes/tpl.xml b/extra/xmode/modes/tpl.xml new file mode 100644 index 0000000000..9b215f67b3 --- /dev/null +++ b/extra/xmode/modes/tpl.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + < + > + + + + + & + ; + + + + + { + } + + + + + + + " + " + + + ' + ' + + + * + + + + include + = + START + END + + + + + + " + " + + + ' + ' + + + = + + + diff --git a/extra/xmode/modes/tsql.xml b/extra/xmode/modes/tsql.xml new file mode 100644 index 0000000000..ad4d151e2c --- /dev/null +++ b/extra/xmode/modes/tsql.xml @@ -0,0 +1,1013 @@ + + + + + + + + + + + + + /* + */ + + + + " + " + + + ' + ' + + + [ + ] + + + ( + ) + + -- + + + - + / + * + = + > + < + % + & + | + ^ + ~ + != + !> + !< + :: + : + + @ + + + + ABSOLUTE + ADD + ALTER + ANSI_NULLS + AS + ASC + AUTHORIZATION + BACKUP + BEGIN + BREAK + BROWSE + BULK + BY + CASCADE + CHECK + CHECKPOINT + CLOSE + CLUSTERED + COLUMN + COMMIT + COMMITTED + COMPUTE + CONFIRM + CONSTRAINT + CONTAINS + CONTAINSTABLE + CONTINUE + CONTROLROW + CREATE + CURRENT + CURRENT_DATE + CURRENT_TIME + CURSOR + DATABASE + DBCC + DEALLOCATE + DECLARE + DEFAULT + DELETE + DENY + DESC + DISK + DISTINCT + DISTRIBUTED + DOUBLE + DROP + DUMMY + DUMP + DYNAMIC + ELSE + END + ERRLVL + ERROREXIT + ESCAPE + EXCEPT + EXEC + EXECUTE + EXIT + FAST_FORWARD + FETCH + FILE + FILLFACTOR + FIRST + FLOPPY + FOR + FOREIGN + FORWARD_ONLY + FREETEXT + FREETEXTTABLE + FROM + FULL + FUNCTION + GLOBAL + GOTO + GRANT + GROUP + HAVING + HOLDLOCK + ID + IDENTITYCOL + IDENTITY_INSERT + IF + INDEX + INNER + INSENSITIVE + INSERT + INTO + IS + ISOLATION + KEY + KEYSET + KILL + LAST + LEVEL + LINENO + LOAD + LOCAL + MAX + MIN + MIRROREXIT + NATIONAL + NEXT + NOCHECK + NONCLUSTERED + OF + OFF + OFFSETS + ON + ONCE + ONLY + OPEN + OPENDATASOURCE + OPENQUERY + OPENROWSET + OPTIMISTIC + OPTION + ORDER + OUTPUT + OVER + PERCENT + PERM + PERMANENT + PIPE + PLAN + PRECISION + PREPARE + PRIMARY + PRINT + PRIOR + PRIVILEGES + PROC + PROCEDURE + PROCESSEXIT + PUBLIC + QUOTED_IDENTIFIER + RAISERROR + READ + READTEXT + READ_ONLY + RECONFIGURE + REFERENCES + RELATIVE + REPEATABLE + REPLICATION + RESTORE + RESTRICT + RETURN + RETURNS + REVOKE + ROLLBACK + ROWGUIDCOL + RULE + SAVE + SCHEMA + SCROLL + SCROLL_LOCKS + SELECT + SERIALIZABLE + SET + SETUSER + SHUTDOWN + STATIC + STATISTICS + TABLE + TAPE + TEMP + TEMPORARY + TEXTIMAGE_ON + THEN + TO + TOP + TRAN + TRANSACTION + TRIGGER + TRUNCATE + TSEQUAL + UNCOMMITTED + UNION + UNIQUE + UPDATE + UPDATETEXT + USE + VALUES + VARYING + VIEW + WAITFOR + WHEN + WHERE + WHILE + WITH + WORK + WRITETEXT + + + binary + bit + char + character + datetime + decimal + float + image + int + integer + money + name + numeric + nchar + nvarchar + ntext + real + smalldatetime + smallint + smallmoney + text + timestamp + tinyint + uniqueidentifier + varbinary + varchar + + + @@CONNECTIONS + @@CPU_BUSY + @@CURSOR_ROWS + @@DATEFIRST + @@DBTS + @@ERROR + @@FETCH_STATUS + @@IDENTITY + @@IDLE + @@IO_BUSY + @@LANGID + @@LANGUAGE + @@LOCK_TIMEOUT + @@MAX_CONNECTIONS + @@MAX_PRECISION + @@NESTLEVEL + @@OPTIONS + @@PACKET_ERRORS + @@PACK_RECEIVED + @@PACK_SENT + @@PROCID + @@REMSERVER + @@ROWCOUNT + @@SERVERNAME + @@SERVICENAME + @@SPID + @@TEXTSIZE + @@TIMETICKS + @@TOTAL_ERRORS + @@TOTAL_READ + @@TOTAL_WRITE + @@TRANCOUNT + @@VERSION + ABS + ACOS + APP_NAME + ASCII + ASIN + ATAN + ATN2 + AVG + BINARY_CHECKSUM + CASE + CAST + CEILING + CHARINDEX + CHECKSUM + CHECKSUM_AGG + COALESCE + COLLATIONPROPERTY + COLUMNPROPERTY + COL_LENGTH + COL_NAME + CONVERT + COS + COT + COUNT + COUNT_BIG + CURRENT_DATE + CURRENT_TIME + CURRENT_TIMESTAMP + CURRENT_USER + CURSOR_STATUS + DATABASEPROPERTY + DATALENGTH + DATEADD + DATEDIFF + DATENAME + DATEPART + DAY + DB_ID + DB_NAME + DEGREES + DIFFERENCE + EXP + FILEGROUPPROPERTY + FILEGROUP_ID + FILEGROUP_NAME + FILEPROPERTY + FILE_ID + FILE_NAME + FLOOR + FORMATMESSAGE + FULLTEXTCATALOGPROPERTY + FULLTEXTSERVICEPROPERTY + GETANSINULL + GETDATE + GETUTCDATE + GROUPING + HOST_ID + HOST_NAME + IDENTITY + IDENTITY_INSERT + IDENT_CURRENT + IDENT_INCR + IDENT_SEED + INDEXPROPERTY + INDEX_COL + ISDATE + ISNULL + ISNUMERIC + IS_MEMBER + IS_SRVROLEMEMBER + LEFT + LEN + LOG10 + LOG + LOWER + LTRIM + MONTH + NEWID + NULLIF + OBJECTPROPERTY + OBJECT_ID + OBJECT_NAME + PARSENAME + PATINDEX + PERMISSIONS + PI + POWER + QUOTENAME + RADIANS + RAND + REPLACE + REPLICATE + REVERSE + RIGHT + ROUND + ROWCOUNT_BIG + RTRIM + SCOPE_IDENTITY + SERVERPROPERTY + SESSIONPROPERTY + SESSION_USER + SIGN + SIN + SOUNDEX + SPACE + SQRT + SQUARE + STATS_DATE + STDEV + STDEVP + STR + STUFF + SUBSTRING + SUM + SUSER_ID + SUSER_NAME + SUSER_SID + SUSER_SNAME + SYSTEM_USER + TAN + TEXTPTR + TEXTVALID + TYPEPROPERTY + UNICODE + UPPER + USER + USER_ID + USER_NAME + VAR + VARP + YEAR + + + ALL + AND + ANY + BETWEEN + CROSS + EXISTS + IN + INTERSECT + JOIN + LIKE + NOT + NULL + OR + OUTER + SOME + + + sp_add_agent_parameter + sp_add_agent_profile + sp_add_alert + sp_add_category + sp_add_data_file_recover_suspect_db + sp_add_job + sp_add_jobschedule + sp_add_jobserver + sp_add_jobstep + sp_add_log_file_recover_suspect_db + sp_add_notification + sp_add_operator + sp_add_targetservergroup + sp_add_targetsvrgrp_member + sp_addalias + sp_addapprole + sp_addarticle + sp_adddistpublisher + sp_adddistributiondb + sp_adddistributor + sp_addextendedproc + sp_addgroup + sp_addlinkedserver + sp_addlinkedsrvlogin + sp_addlinkedsrvlogin + sp_addlogin + sp_addmergearticle + sp_addmergefilter + sp_addmergepublication + sp_addmergepullsubscription + sp_addmergepullsubscription_agent + sp_addmergesubscription + sp_addmessage + sp_addpublication + sp_addpublication_snapshot + sp_addpublisher70 + sp_addpullsubscription + sp_addpullsubscription_agent + sp_addremotelogin + sp_addrole + sp_addrolemember + sp_addserver + sp_addsrvrolemember + sp_addsubscriber + sp_addsubscriber_schedule + sp_addsubscription + sp_addsynctriggers + sp_addtabletocontents + sp_addtask + sp_addtype + sp_addumpdevice + sp_adduser + sp_altermessage + sp_apply_job_to_targets + sp_approlepassword + sp_article_validation + sp_articlecolumn + sp_articlefilter + sp_articlesynctranprocs + sp_articleview + sp_attach_db + sp_attach_single_file_db + sp_autostats + sp_bindefault + sp_bindrule + sp_bindsession + sp_browsereplcmds + sp_catalogs + sp_certify_removable + sp_change_agent_parameter + sp_change_agent_profile + sp_change_subscription_properties + sp_change_users_login + sp_changearticle + sp_changedbowner + sp_changedistpublisher + sp_changedistributiondb + sp_changedistributor_password + sp_changedistributor_property + sp_changegroup + sp_changemergearticle + sp_changemergefilter + sp_changemergepublication + sp_changemergepullsubscription + sp_changemergesubscription + sp_changeobjectowner + sp_changepublication + sp_changesubscriber + sp_changesubscriber_schedule + sp_changesubstatus + sp_check_for_sync_trigger + sp_column_privileges + sp_column_privileges_ex + sp_columns + sp_columns_ex + sp_configure + sp_create_removable + sp_createorphan + sp_createstats + sp_cursor + sp_cursor_list + sp_cursorclose + sp_cursorexecute + sp_cursorfetch + sp_cursoropen + sp_cursoroption + sp_cursorprepare + sp_cursorunprepare + sp_cycle_errorlog + sp_databases + sp_datatype_info + sp_dbcmptlevel + sp_dbfixedrolepermission + sp_dboption + sp_defaultdb + sp_defaultlanguage + sp_delete_alert + sp_delete_backuphistory + sp_delete_category + sp_delete_job + sp_delete_jobschedule + sp_delete_jobserver + sp_delete_jobstep + sp_delete_notification + sp_delete_operator + sp_delete_targetserver + sp_delete_targetservergroup + sp_delete_targetsvrgrp_member + sp_deletemergeconflictrow + sp_denylogin + sp_depends + sp_describe_cursor + sp_describe_cursor_columns + sp_describe_cursor_tables + sp_detach_db + sp_drop_agent_parameter + sp_drop_agent_profile + sp_dropalias + sp_dropapprole + sp_droparticle + sp_dropdevice + sp_dropdistpublisher + sp_dropdistributiondb + sp_dropdistributor + sp_dropextendedproc + sp_dropgroup + sp_droplinkedsrvlogin + sp_droplinkedsrvlogin + sp_droplogin + sp_dropmergearticle + sp_dropmergefilter + sp_dropmergepublication + sp_dropmergepullsubscription + sp_dropmergesubscription + sp_dropmessage + sp_droporphans + sp_droppublication + sp_droppullsubscription + sp_dropremotelogin + sp_droprole + sp_droprolemember + sp_dropserver + sp_dropsrvrolemember + sp_dropsubscriber + sp_dropsubscription + sp_droptask + sp_droptype + sp_dropuser + sp_dropwebtask + sp_dsninfo + sp_dumpparamcmd + sp_enumcodepages + sp_enumcustomresolvers + sp_enumdsn + sp_enumfullsubscribers + sp_execute + sp_executesql + sp_expired_subscription_cleanup + sp_fkeys + sp_foreignkeys + sp_fulltext_catalog + sp_fulltext_column + sp_fulltext_database + sp_fulltext_service + sp_fulltext_table + sp_generatefilters + sp_get_distributor + sp_getbindtoken + sp_getmergedeletetype + sp_grant_publication_access + sp_grantdbaccess + sp_grantlogin + sp_help + sp_help_agent_default + sp_help_agent_parameter + sp_help_agent_profile + sp_help_alert + sp_help_category + sp_help_downloadlist + sp_help_fulltext_catalogs + sp_help_fulltext_catalogs_cursor + sp_help_fulltext_columns + sp_help_fulltext_columns_cursor + sp_help_fulltext_tables + sp_help_fulltext_tables_cursor + sp_help_job + sp_help_jobhistory + sp_help_jobschedule + sp_help_jobserver + sp_help_jobstep + sp_help_notification + sp_help_operator + sp_help_publication_access + sp_help_targetserver + sp_help_targetservergroup + sp_helparticle + sp_helparticlecolumns + sp_helpconstraint + sp_helpdb + sp_helpdbfixedrole + sp_helpdevice + sp_helpdistpublisher + sp_helpdistributiondb + sp_helpdistributor + sp_helpextendedproc + sp_helpfile + sp_helpfilegroup + sp_helpgroup + sp_helphistory + sp_helpindex + sp_helplanguage + sp_helplinkedsrvlogin + sp_helplogins + sp_helpmergearticle + sp_helpmergearticleconflicts + sp_helpmergeconflictrows + sp_helpmergedeleteconflictrows + sp_helpmergefilter + sp_helpmergepublication + sp_helpmergepullsubscription + sp_helpmergesubscription + sp_helpntgroup + sp_helppublication + sp_helppullsubscription + sp_helpremotelogin + sp_helpreplicationdboption + sp_helprole + sp_helprolemember + sp_helprotect + sp_helpserver + sp_helpsort + sp_helpsrvrole + sp_helpsrvrolemember + sp_helpsubscriberinfo + sp_helpsubscription + sp_helpsubscription_properties + sp_helptask + sp_helptext + sp_helptrigger + sp_helpuser + sp_indexes + sp_indexoption + sp_link_publication + sp_linkedservers + sp_lock + sp_makewebtask + sp_manage_jobs_by_login + sp_mergedummyupdate + sp_mergesubscription_cleanup + sp_monitor + sp_msx_defect + sp_msx_enlist + sp_OACreate + sp_OADestroy + sp_OAGetErrorInfo + sp_OAGetProperty + sp_OAMethod + sp_OASetProperty + sp_OAStop + sp_password + sp_pkeys + sp_post_msx_operation + sp_prepare + sp_primarykeys + sp_processmail + sp_procoption + sp_publication_validation + sp_purge_jobhistory + sp_purgehistory + sp_reassigntask + sp_recompile + sp_refreshsubscriptions + sp_refreshview + sp_reinitmergepullsubscription + sp_reinitmergesubscription + sp_reinitpullsubscription + sp_reinitsubscription + sp_remoteoption + sp_remove_job_from_targets + sp_removedbreplication + sp_rename + sp_renamedb + sp_replcmds + sp_replcounters + sp_repldone + sp_replflush + sp_replication_agent_checkup + sp_replicationdboption + sp_replsetoriginator + sp_replshowcmds + sp_repltrans + sp_reset_connection + sp_resync_targetserver + sp_revoke_publication_access + sp_revokedbaccess + sp_revokelogin + sp_runwebtask + sp_script_synctran_commands + sp_scriptdelproc + sp_scriptinsproc + sp_scriptmappedupdproc + sp_scriptupdproc + sp_sdidebug + sp_server_info + sp_serveroption + sp_serveroption + sp_setapprole + sp_setnetname + sp_spaceused + sp_special_columns + sp_sproc_columns + sp_srvrolepermission + sp_start_job + sp_statistics + sp_stop_job + sp_stored_procedures + sp_subscription_cleanup + sp_table_privileges + sp_table_privileges_ex + sp_table_validation + sp_tableoption + sp_tables + sp_tables_ex + sp_unbindefault + sp_unbindrule + sp_unprepare + sp_update_agent_profile + sp_update_alert + sp_update_category + sp_update_job + sp_update_jobschedule + sp_update_jobstep + sp_update_notification + sp_update_operator + sp_update_targetservergroup + sp_updatestats + sp_updatetask + sp_validatelogins + sp_validname + sp_who + xp_cmdshell + xp_deletemail + xp_enumgroups + xp_findnextmsg + xp_findnextmsg + xp_grantlogin + xp_logevent + xp_loginconfig + xp_logininfo + xp_msver + xp_readmail + xp_revokelogin + xp_sendmail + xp_sprintf + xp_sqlinventory + xp_sqlmaint + xp_sqltrace + xp_sscanf + xp_startmail + xp_stopmail + xp_trace_addnewqueue + xp_trace_deletequeuedefinition + xp_trace_destroyqueue + xp_trace_enumqueuedefname + xp_trace_enumqueuehandles + xp_trace_eventclassrequired + xp_trace_flushqueryhistory + xp_trace_generate_event + xp_trace_getappfilter + xp_trace_getconnectionidfilter + xp_trace_getcpufilter + xp_trace_getdbidfilter + xp_trace_getdurationfilter + xp_trace_geteventfilter + xp_trace_geteventnames + xp_trace_getevents + xp_trace_gethostfilter + xp_trace_gethpidfilter + xp_trace_getindidfilter + xp_trace_getntdmfilter + xp_trace_getntnmfilter + xp_trace_getobjidfilter + xp_trace_getqueueautostart + xp_trace_getqueuedestination + xp_trace_getqueueproperties + xp_trace_getreadfilter + xp_trace_getserverfilter + xp_trace_getseverityfilter + xp_trace_getspidfilter + xp_trace_getsysobjectsfilter + xp_trace_gettextfilter + xp_trace_getuserfilter + xp_trace_getwritefilter + xp_trace_loadqueuedefinition + xp_trace_pausequeue + xp_trace_restartqueue + xp_trace_savequeuedefinition + xp_trace_setappfilter + xp_trace_setconnectionidfilter + xp_trace_setcpufilter + xp_trace_setdbidfilter + xp_trace_setdurationfilter + xp_trace_seteventclassrequired + xp_trace_seteventfilter + xp_trace_sethostfilter + xp_trace_sethpidfilter + xp_trace_setindidfilter + xp_trace_setntdmfilter + xp_trace_setntnmfilter + xp_trace_setobjidfilter + xp_trace_setqueryhistory + xp_trace_setqueueautostart + xp_trace_setqueuecreateinfo + xp_trace_setqueuedestination + xp_trace_setreadfilter + xp_trace_setserverfilter + xp_trace_setseverityfilter + xp_trace_setspidfilter + xp_trace_setsysobjectsfilter + xp_trace_settextfilter + xp_trace_setuserfilter + xp_trace_setwritefilter + fn_helpcollations + fn_servershareddrives + fn_virtualfilestats + + + backupfile + backupmediafamily + backupmediaset + backupset + MSagent_parameters + MSagent_profiles + MSarticles + MSdistpublishers + MSdistribution_agents + MSdistribution_history + MSdistributiondbs + MSdistributor + MSlogreader_agents + MSlogreader_history + MSmerge_agents + MSmerge_contents + MSmerge_delete_conflicts + MSmerge_genhistory + MSmerge_history + MSmerge_replinfo + MSmerge_subscriptions + MSmerge_tombstone + MSpublication_access + Mspublications + Mspublisher_databases + MSrepl_commands + MSrepl_errors + Msrepl_originators + MSrepl_transactions + MSrepl_version + MSreplication_objects + MSreplication_subscriptions + MSsnapshot_agents + MSsnapshot_history + MSsubscriber_info + MSsubscriber_schedule + MSsubscription_properties + MSsubscriptions + restorefile + restorefilegroup + restorehistory + sysalerts + sysallocations + sysaltfiles + sysarticles + sysarticleupdates + syscacheobjects + syscategories + syscharsets + syscolumns + syscomments + sysconfigures + sysconstraints + syscurconfigs + sysdatabases + sysdatabases + sysdepends + sysdevices + sysdownloadlist + sysfilegroups + sysfiles + sysforeignkeys + sysfulltextcatalogs + sysindexes + sysindexkeys + sysjobhistory + sysjobs + sysjobschedules + sysjobservers + sysjobsteps + syslanguages + syslockinfo + syslogins + sysmembers + sysmergearticles + sysmergepublications + sysmergeschemachange + sysmergesubscriptions + sysmergesubsetfilters + sysmessages + sysnotifications + sysobjects + sysobjects + sysoledbusers + sysoperators + sysperfinfo + syspermissions + sysprocesses + sysprotects + syspublications + sysreferences + sysremotelogins + sysreplicationalerts + sysservers + sysservers + syssubscriptions + systargetservergroupmembers + systargetservergroups + systargetservers + systaskids + systypes + sysusers + + + diff --git a/extra/xmode/modes/tthtml.xml b/extra/xmode/modes/tthtml.xml new file mode 100644 index 0000000000..24d9667c6c --- /dev/null +++ b/extra/xmode/modes/tthtml.xml @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + " + " + + + + ' + ' + + = + + + + + > + + SRC= + + + + > + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + [%# + %] + + + \[%\s*?PERL\s*?%\] + \[%\s*?END\s*?%\] + + + + [% + %] + + + + + + ${ + } + + + \$#?[\w:]+ + + + . + ( + + " + " + + + + ' + ' + + + = + ! + >= + <= + + + - + / + * + > + < + % + & + | + ^ + ~ + . + } + { + , + ; + ] + [ + ? + + + SET + GET + CALL + DEFAULT + IF + ELSIF + ELSE + UNLESS + LAST + NEXT + FOR + FOREACH + WHILE + SWITCH + CASE + PROCESS + INCLUDE + INSERT + WRAPPER + BLOCK + MACRO + END + USE + IN + FILTER + TRY + THROW + CATCH + FINAL + META + TAGS + DEBUG + PERL + + constants + + template + component + loop + error + content + + + + defined + length + repeat + replace + match + search + split + chunk + list + hash + size + + + keys + values + each + sort + nsort + import + defined + exists + item + + + first + last + max + reverse + join + grep + unshift + push + shift + pop + unique + merge + slice + splice + count + + + format + upper + lower + ucfirst + lcfirst + trim + collapse + html + html_entity + html_para + html_break + html_para_break + html_line_break + uri + url + indent + truncate + repeat + remove + replace + redirect + eval + evaltt + perl + evalperl + stdout + stderr + null + latex + + + diff --git a/extra/xmode/modes/twiki.xml b/extra/xmode/modes/twiki.xml new file mode 100644 index 0000000000..364fec05e0 --- /dev/null +++ b/extra/xmode/modes/twiki.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + -- + + + -{3}[+]{1,6}(?:!!)?\s + + + \*[^\s*][^*]*\* + + + __\w.*?\w__ + + + _\w.*?\w_ + + + ==\w.*?\w== + + + =\w.*?\w= + + + --- + + + [A-Z][A-Z.]*[a-z.]+(?:[A-Z][A-Z.]*[a-z.]*[a-z])+ + + + + [[ + ]] + + + + + <verbatim> + </verbatim> + + + + <nop> + + + + <noautolink> + </noautolink> + + + + \s{3}\w(?:&nbsp;|-|\w)*?\w+:\s + + + %[A-Z]+(?:\{[^\}]+\})?% + + + + ATTACHURL + ATTACHURLPATH + BASETOPIC + BASEWEB + GMTIME + HOMETOPIC + HTTP_HOST + INCLUDE + INCLUDINGTOPIC + INCLUDINGWEB + MAINWEB + NOTIFYTOPIC + PUBURL + PUBURLPATH + REMOTE_ADDR + REMOTE_PORT + REMOTE_USER + SCRIPTSUFFIX + SCRIPTURL + SCRIPTURLPATH + SEARCH + SERVERTIME + SPACEDTOPIC + STARTINCLUDE + STATISTICSTOPIC + STOPINCLUDE + TOC + TOPIC + TOPICLIST + TWIKIWEB + URLENCODE + URLPARAM + USERNAME + WEB + WEBLIST + WEBPREFSTOPIC + WIKIHOMEURL + WIKINAME + WIKIPREFSTOPIC + WIKITOOLNAME + WIKIUSERNAME + WIKIUSERSTOPIC + WIKIVERSION + + + + + + + diff --git a/extra/xmode/modes/typoscript.xml b/extra/xmode/modes/typoscript.xml new file mode 100644 index 0000000000..b9a705b0e4 --- /dev/null +++ b/extra/xmode/modes/typoscript.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + <INCLUDE + > + + + + = + + + + ( + ) + + + + < + + + # + + /* + */ + + / + + + + [ + ] + + + + { + } + ( + ) + + + + + + + {$ + } + + + + + + + + diff --git a/extra/xmode/modes/uscript.xml b/extra/xmode/modes/uscript.xml new file mode 100644 index 0000000000..c9c947fe89 --- /dev/null +++ b/extra/xmode/modes/uscript.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + /**/ + + + + /* + */ + + + + " + " + + + ' + ' + + + // + + ~ + ! + @ + # + $ + ^ + & + * + - + = + + + | + \\ + : + < + > + / + ? + ` + + : + + + ( + ) + + + abstract + auto + array + case + class + coerce + collapscategories + config + const + default + defaultproperties + deprecated + do + dontcollapsecategories + edfindable + editconst + editinline + editinlinenew + else + enum + event + exec + export + exportstructs + extends + false + final + for + foreach + function + globalconfig + hidecategories + if + ignores + input + iterator + latent + local + localized + native + nativereplication + noexport + noteditinlinenew + notplaceable + operator + optional + out + perobjectconfig + placeable + postoperator + preoperator + private + protected + reliable + replication + return + safereplace + showcategories + simulated + singular + state + static + struct + switch + transient + travel + true + unreliable + until + var + while + within + + default + global + none + self + static + super + + bool + byte + float + int + name + string + + + diff --git a/extra/xmode/modes/vbscript.xml b/extra/xmode/modes/vbscript.xml new file mode 100644 index 0000000000..9f0e9bf8a6 --- /dev/null +++ b/extra/xmode/modes/vbscript.xml @@ -0,0 +1,739 @@ + + + + + + + + + + + + + " + " + + + + #if + #else + #end + + ' + rem + + + < + <= + >= + > + = + <> + . + + + + + + - + * + / + \ + + ^ + + + & + + + + + + + + + : + + + + if + then + else + elseif + select + case + + + + for + to + step + next + + each + in + + do + while + until + loop + + wend + + + exit + end + + + function + sub + class + property + get + let + set + + + byval + byref + + + const + dim + redim + preserve + as + + + set + with + new + + + public + default + private + + + rem + + + call + execute + eval + + + on + error + goto + resume + option + explicit + erase + randomize + + + + is + + mod + + and + or + not + xor + imp + + + false + true + empty + nothing + null + + + + vbblack + vbred + vbgreen + vbyellow + vbblue + vbmagenta + vbcyan + vbwhite + + + + + vbGeneralDate + vbLongDate + vbShortDate + vbLongTime + vbShortTime + + + vbObjectError + Err + + + vbOKOnly + vbOKCancel + vbAbortRetryIgnore + vbYesNoCancel + vbYesNo + vbRetryCancel + vbCritical + vbQuestion + vbExclamation + vbInformation + vbDefaultButton1 + vbDefaultButton2 + vbDefaultButton3 + vbDefaultButton4 + vbApplicationModal + vbSystemModal + vbOK + vbCancel + vbAbort + vbRetry + vbIgnore + vbYes + vbNo + + + vbUseDefault + vbTrue + vbFalse + + + vbcr + vbcrlf + vbformfeed + vblf + vbnewline + vbnullchar + vbnullstring + vbtab + vbverticaltab + + vbempty + vbnull + vbinteger + vblong + vbsingle + vbdouble + vbcurrency + vbdate + vbstring + vbobject + vberror + vbboolean + vbvariant + vbdataobject + vbdecimal + vbbyte + vbarray + + + + array + lbound + ubound + + cbool + cbyte + ccur + cdate + cdbl + cint + clng + csng + cstr + + hex + oct + + date + time + dateadd + datediff + datepart + dateserial + datevalue + day + month + monthname + weekday + weekdayname + year + hour + minute + second + now + timeserial + timevalue + + formatcurrency + formatdatetime + formatnumber + formatpercent + + inputbox + loadpicture + msgbox + + atn + cos + sin + tan + exp + log + sqr + rnd + + rgb + + createobject + getobject + getref + + abs + int + fix + round + sgn + + scriptengine + scriptenginebuildversion + scriptenginemajorversion + scriptengineminorversion + + asc + ascb + ascw + chr + chrb + chrw + filter + instr + instrb + instrrev + join + len + lenb + lcase + ucase + left + leftb + mid + midb + right + rightb + replace + space + split + strcomp + string + strreverse + ltrim + rtrim + trim + + isarray + isdate + isempty + isnull + isnumeric + isobject + typename + vartype + + + + + + + adOpenForwardOnly + adOpenKeyset + adOpenDynamic + adOpenStatic + + + + + adLockReadOnly + adLockPessimistic + adLockOptimistic + adLockBatchOptimistic + + + adRunAsync + adAsyncExecute + adAsyncFetch + adAsyncFetchNonBlocking + adExecuteNoRecords + + + + + adStateClosed + adStateOpen + adStateConnecting + adStateExecuting + adStateFetching + + + adUseServer + adUseClient + + + adEmpty + adTinyInt + adSmallInt + adInteger + adBigInt + adUnsignedTinyInt + adUnsignedSmallInt + adUnsignedInt + adUnsignedBigInt + adSingle + adDouble + adCurrency + adDecimal + adNumeric + adBoolean + adError + adUserDefined + adVariant + adIDispatch + adIUnknown + adGUID + adDate + adDBDate + adDBTime + adDBTimeStamp + adBSTR + adChar + adVarChar + adLongVarChar + adWChar + adVarWChar + adLongVarWChar + adBinary + adVarBinary + adLongVarBinary + adChapter + adFileTime + adDBFileTime + adPropVariant + adVarNumeric + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + adPersistADTG + adPersistXML + + + + + + + + + + + + + + + + + adParamSigned + adParamNullable + adParamLong + + + adParamUnknown + adParamInput + adParamOutput + adParamInputOutput + adParamReturnValue + + + adCmdUnknown + adCmdText + adCmdTable + adCmdStoredProc + adCmdFile + adCmdTableDirect + + + + + + + + + + + + + + + + + + + + + diff --git a/extra/xmode/modes/velocity.xml b/extra/xmode/modes/velocity.xml new file mode 100644 index 0000000000..7fa160afce --- /dev/null +++ b/extra/xmode/modes/velocity.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + + + + + #* + *# + + + ## + + + ${ + } + + + \$!?[A-z][A-z0-9._-]* + + + #set + #foreach + #end + #if + #else + #elseif + #parse + #macro + #stop + #include + + + + + > + + SRC= + + + + + + + + + + > + + + + > + + + + + + + + diff --git a/extra/xmode/modes/verilog.xml b/extra/xmode/modes/verilog.xml new file mode 100644 index 0000000000..ee1602ec43 --- /dev/null +++ b/extra/xmode/modes/verilog.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + /* + */ + + // + + + + " + " + + + 'd + 'h + 'b + 'o + + + ( + ) + + + = + ! + + + - + / + * + > + < + % + & + | + ^ + ~ + } + { + + + + always + assign + begin + case + casex + casez + default + deassign + disable + else + end + endcase + endfunction + endgenerate + endmodule + endprimitive + endspecify + endtable + endtask + for + force + forever + fork + function + generate + if + initial + join + macromodule + module + negedge + posedge + primitive + repeat + release + specify + table + task + wait + while + + + `include + `define + `undef + `ifdef + `ifndef + `else + `endif + `timescale + `resetall + `signed + `unsigned + `celldefine + `endcelldefine + `default_nettype + `unconnected_drive + `nounconnected_drive + `protect + `endprotect + `protected + `endprotected + `remove_gatename + `noremove_gatename + `remove_netname + `noremove_netname + `expand_vectornets + `noexpand_vectornets + `autoexpand_vectornets + + + integer + reg + time + realtime + defparam + parameter + event + wire + wand + wor + tri + triand + trior + tri0 + tri1 + trireg + vectored + scalared + input + output + inout + + + supply0 + supply1 + strong0 + strong1 + pull0 + pull1 + weak0 + weak1 + highz0 + highz1 + small + medium + large + + + $stop + $finish + $time + $stime + $realtime + $settrace + $cleartrace + $showscopes + $showvars + $monitoron + $monitoroff + $random + $printtimescale + $timeformat + + + and + nand + or + nor + xor + xnor + buf + bufif0 + bufif1 + not + notif0 + notif1 + nmos + pmos + cmos + rnmos + rpmos + rcmos + tran + tranif0 + tranif1 + rtran + rtranif0 + rtranif1 + pullup + pulldown + + + + diff --git a/extra/xmode/modes/vhdl.xml b/extra/xmode/modes/vhdl.xml new file mode 100644 index 0000000000..a5d6dcee58 --- /dev/null +++ b/extra/xmode/modes/vhdl.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + " + " + + + 'event + + + ' + ' + + + -- + = + /= + ! + : + >= + > + <= + < + + + - + / + * + + ** + % + & + | + ^ + ~ + : + + + architecture + alias + assert + entity + process + variable + signal + function + generic + in + out + inout + begin + end + component + use + library + loop + constant + break + case + port + is + to + of + array + catch + continue + default + do + else + elsif + when + then + downto + upto + extends + for + if + implements + instanceof + return + static + switch + type + while + others + all + record + range + wait + + package + import + std_logic + std_ulogic + std_logic_vector + std_ulogic_vector + integer + natural + bit + bit_vector + + + or + nor + not + nand + and + xnor + sll + srl + sla + sra + rol + ror + or + or + mod + rem + abs + + EVENT + BASE + LEFT + RIGHT + LOW + HIGH + ASCENDING + IMAGE + VALUE + POS + VAL + SUCC + VAL + POS + PRED + VAL + POS + LEFTOF + RIGHTOF + LEFT + RIGHT + LOW + HIGH + RANGE + REVERSE + LENGTH + ASCENDING + DELAYED + STABLE + QUIET + TRANSACTION + EVENT + ACTIVE + LAST + LAST + LAST + DRIVING + DRIVING + SIMPLE + INSTANCE + PATH + + rising_edge + shift_left + shift_right + rotate_left + rotate_right + resize + std_match + to_integer + to_unsigned + to_signed + unsigned + signed + to_bit + to_bitvector + to_stdulogic + to_stdlogicvector + to_stdulogicvector + + false + true + + + diff --git a/extra/xmode/modes/xml.xml b/extra/xmode/modes/xml.xml new file mode 100644 index 0000000000..116be46054 --- /dev/null +++ b/extra/xmode/modes/xml.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + <!-- + --> + + + + + <!ENTITY + > + + + + + <![CDATA[ + ]]> + + + + + <! + > + + + + + <? + > + + + + + < + > + + + + + & + ; + + + + + + <!-- + --> + + + + " + " + + + + ' + ' + + + / + : + + + + + <!-- + --> + + + + + -- + -- + + + + + % + ; + + + + " + " + + + + ' + ' + + + + + [ + ] + + + ( + ) + | + ? + * + + + , + + + CDATA + EMPTY + INCLUDE + IGNORE + NDATA + #IMPLIED + #PCDATA + #REQUIRED + + + + + + <!-- + --> + + + + + -- + -- + + + + " + " + + + + ' + ' + + + = + + % + + + SYSTEM + + + + + + diff --git a/extra/xmode/modes/xq.xml b/extra/xmode/modes/xq.xml new file mode 100644 index 0000000000..b49dc68f2e --- /dev/null +++ b/extra/xmode/modes/xq.xml @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + + + + + + + + + + <!-- + --> + + + + + + <!ENTITY + > + + + + + <![CDATA[ + ]]> + + + + + <! + > + + + + + <? + > + + + + + + > + + + + + & + ; + + + + + + + <!-- + --> + + + + " + " + + + + ' + ' + + + + / + : + + + + + + <!-- + --> + + + + + -- + -- + + + + + % + ; + + + + " + " + + + + ' + ' + + + + + [ + ] + + + ( + ) + | + ? + * + + + , + + + CDATA + EMPTY + INCLUDE + IGNORE + NDATA + #IMPLIED + #PCDATA + #REQUIRED + + + + + + + <!-- + --> + + + + + -- + -- + + + + " + " + + + + ' + ' + + + = + + % + + + SYSTEM + + + + + + + + + + + + (: + :) + + + + " + " + + + ' + ' + + + $ + + + + + ( + ) + + , + + = + != + > + >= + < + <= + + << + >> + + + + + * + + + + | + + / + // + + } + { + + + some + every + + or + and + + instance of + + treat as + + castable as + + cast as + + eq + ne + lt + gt + ge + is + + to + + div + idiv + mod + + union + + intersect + except + + return + for + in + to + at + + let + := + + where + + stable + order + by + + ascending + descending + + greatest + least + collation + + typeswitch + default + + cast + as + if + then + else + + true + false + + xquery + version + + declare + function + library + variable + module + namespace + local + + validate + import + schema + validation + collection + + ancestor + descendant + self + parent + child + self + descendant-or-self + ancestor-or-self + preceding-sibling + following-sibling + following + preceding + + xs:integer + xs:decimal + xs:double + xs:string + xs:date + xs:time + xs:dateTime + xs:boolean + + item + element + attribute + comment + document + document-node + node + empty + + zero-or-one + avg + base-uri + boolean + ceiling + codepoints-to-string + collection + compare + concat + contains + count + current-date + current-dateTime + current-time + data + day-from-date + day-from-dateTime + days-from-duration + deep-equal + distinct-values + doc + adjust-time-to-timezone + adjust-dateTime-to-timezone + string-length + string-join + string + starts-with + seconds-from-time + seconds-from-duration + seconds-from-dateTime + round-half-to-even + round + root + reverse + replace + remove + prefix-from-QName + position + one-or-more + number + QName + abs + adjust-date-to-timezone + doc-available + doctype + document + last + local-name + local-name-from-QName + lower-case + match-all + match-any + matches + max + min + minutes-from-dateTime + minutes-from-duration + minutes-from-time + month-from-date + month-from-dateTime + name + namespace-uri + namespace-uri-for-prefix + namespace-uri-from-QName + node-name + normalize-space + lang + item-at + document-uri + empty + encode-for-uri + ends-with + error + escape-html-uri + escape-uri + exactly-one + exists + false + floor + hours-from-dateTime + hours-from-duration + hours-from-time + id + implicit-timezone + in-scope-prefixes + index-of + insert-before + iri-to-uri + string-pad + string-to-codepoints + sum + timezone-from-date + timezone-from-dateTime + timezone-from-time + not + tokenize + translate + true + unordered + upper-case + xcollection + year-from-date + year-from-dateTime + substring-before + subsequence + substring + substring-after + + + + + diff --git a/extra/xmode/modes/xsl.xml b/extra/xmode/modes/xsl.xml new file mode 100644 index 0000000000..94a5610165 --- /dev/null +++ b/extra/xmode/modes/xsl.xml @@ -0,0 +1,436 @@ + + + + + + + + + + + + + + + <!-- + --> + + + + + <(?=xsl:) + > + + + + <(?=/xsl:) + > + + + + + <![CDATA[ + ]]> + + + + + <! + > + + + + + & + ; + + + + + <? + ?> + + + + + < + > + + + + + + + + DEBUG: + DONE: + FIXME: + IDEA: + NOTE: + QUESTION: + TODO: + XXX + ??? + + + + + + + + + " + " + + + ' + ' + + + + xmlns: + + xmlns + + + : + + + + + + + + {{ + }} + + + + { + } + + + + + & + ; + + + + + + + + + + " + " + + + ' + ' + + + + + + count[\p{Space}]*=[\p{Space}]*" + " + + + count[\p{Space}]*=[\p{Space}]*' + ' + + + + from[\p{Space}]*=[\p{Space}]*" + " + + + from[\p{Space}]*=[\p{Space}]*' + ' + + + + group-adjacent[\p{Space}]*=[\p{Space}]*" + " + + + group-adjacent[\p{Space}]*=[\p{Space}]*' + ' + + + + group-by[\p{Space}]*=[\p{Space}]*" + " + + + group-by[\p{Space}]*=[\p{Space}]*' + ' + + + + group-ending-with[\p{Space}]*=[\p{Space}]*" + " + + + group-ending-with[\p{Space}]*=[\p{Space}]*' + ' + + + + group-starting-with[\p{Space}]*=[\p{Space}]*" + " + + + group-starting-with[\p{Space}]*=[\p{Space}]*' + ' + + + + match[\p{Space}]*=[\p{Space}]*" + " + + + match[\p{Space}]*=[\p{Space}]*' + ' + + + + select[\p{Space}]*=[\p{Space}]*" + " + + + select[\p{Space}]*=[\p{Space}]*' + ' + + + + test[\p{Space}]*=[\p{Space}]*" + " + + + test[\p{Space}]*=[\p{Space}]*' + ' + + + + use[\p{Space}]*=[\p{Space}]*" + " + + + use[\p{Space}]*=[\p{Space}]*' + ' + + + + xmlns: + + xmlns + + + : + + + + analyze-string + apply-imports + apply-templates + attribute + attribute-set + call-template + character-map + choose + comment + copy + copy-of + date-format + decimal-format + element + fallback + for-each + for-each-group + function + if + import + import-schema + include + key + matching-substring + message + namespace + namespace-alias + next-match + non-matching-substring + number + otherwise + output + output-character + param + preserve-space + processing-instruction + result-document + sequence + sort + sort-key + strip-space + stylesheet + template + text + transform + value-of + variable + when + with-param + + + + + + + + " + " + + + ' + ' + + + + + (: + :) + + + + :: + + @ + + + + = + != + > + &gt; + &lt; + + ? + + + + + * + + / + + | + + , + + + + [ + ] + + + + + & + ; + + + + : + + + ( + ) + + + $ + + + + and + as + castable + div + else + eq + every + except + for + ge + gt + idiv + if + in + instance + intersect + is + isnot + le + lt + mod + nillable + ne + of + or + return + satisfies + some + then + to + treat + union + + + - + + + + + + + + + (: + :) + + + + + + + (: + :) + + + + diff --git a/extra/xmode/modes/zpt.xml b/extra/xmode/modes/zpt.xml new file mode 100644 index 0000000000..f962acff72 --- /dev/null +++ b/extra/xmode/modes/zpt.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + <!-- + --> + + + + + <SCRIPT + </SCRIPT> + + + + + <STYLE + </STYLE> + + + + + <! + > + + + + + < + > + + + + + & + ; + + + + + + + " + " + + + + ' + ' + + + = + + + + tal + attributes + define + condition + content + omit-tag + on-error + repeat + replace + + + metal + define-macro + define-slot + fill-slot + use-macro + + + + + : + ; + ? + | + $$ + + + " + " + + + + ' + ' + + + + ${ + } + + $ + + + + + exists + nocall + not + path + python + string + structure + + + + CONTEXTS + attrs + container + default + here + modules + nothing + options + repeat + request + root + template + user + + + index + number + even + odd + start + end + first + last + length + letter + Letter + roman + Roman + + + + + > + SRC= + + + + > + + + + > + + + diff --git a/extra/xmode/rules/rules-tests.factor b/extra/xmode/rules/rules-tests.factor new file mode 100644 index 0000000000..404dbb89fb --- /dev/null +++ b/extra/xmode/rules/rules-tests.factor @@ -0,0 +1,6 @@ +IN: temporary +USING: xmode.rules tools.test ; + +[ { 1 2 3 } ] [ f { 1 2 3 } ?push-all ] unit-test +[ { 1 2 3 } ] [ { 1 2 3 } f ?push-all ] unit-test +[ V{ 1 2 3 4 5 } ] [ { 1 2 3 } { 4 5 } ?push-all ] unit-test diff --git a/extra/xmode/rules/rules.factor b/extra/xmode/rules/rules.factor new file mode 100755 index 0000000000..acc6308c6f --- /dev/null +++ b/extra/xmode/rules/rules.factor @@ -0,0 +1,129 @@ +USING: xmode.tokens xmode.keyword-map kernel +sequences vectors assocs strings memoize regexp ; +IN: xmode.rules + +TUPLE: string-matcher string ignore-case? ; + +C: string-matcher + +! Based on org.gjt.sp.jedit.syntax.ParserRuleSet +TUPLE: rule-set +name +props +keywords +rules +imports +terminate-char +ignore-case? +default +escape-rule +highlight-digits? +digit-re +no-word-sep +finalized? +; + +: init-rule-set ( ruleset -- ) + #! Call after constructor. + >r H{ } clone H{ } clone V{ } clone r> + { + set-rule-set-rules + set-rule-set-props + set-rule-set-imports + } set-slots ; + +: ( -- ruleset ) + rule-set construct-empty dup init-rule-set ; + +MEMO: standard-rule-set ( id -- ruleset ) + [ set-rule-set-default ] keep ; + +: import-rule-set ( import ruleset -- ) + rule-set-imports push ; + +: inverted-index ( hashes key index -- ) + [ swapd [ ?push ] change-at ] 2curry each ; + +: ?push-all ( seq1 seq2 -- seq1+seq2 ) + [ + over [ >r V{ } like r> over push-all ] [ nip ] if + ] when* ; + +: rule-set-no-word-sep* ( ruleset -- str ) + dup rule-set-no-word-sep + swap rule-set-keywords dup [ keyword-map-no-word-sep* ] when + "_" 3append ; + +! Match restrictions +TUPLE: matcher text at-line-start? at-whitespace-end? at-word-start? ; + +C: matcher + +! Based on org.gjt.sp.jedit.syntax.ParserRule +TUPLE: rule +no-line-break? +no-word-break? +no-escape? +start +end +match-token +body-token +delegate +chars +; + +: construct-rule ( class -- rule ) + >r rule construct-empty r> construct-delegate ; inline + +TUPLE: seq-rule ; + +TUPLE: span-rule ; + +TUPLE: eol-span-rule ; + +: init-span ( rule -- ) + dup rule-delegate [ drop ] [ + dup rule-body-token standard-rule-set + swap set-rule-delegate + ] if ; + +: init-eol-span ( rule -- ) + dup init-span + t swap set-rule-no-line-break? ; + +TUPLE: mark-following-rule ; + +TUPLE: mark-previous-rule ; + +TUPLE: escape-rule ; + +: ( string -- rule ) + f f f f + escape-rule construct-rule + [ set-rule-start ] keep ; + +GENERIC: text-hash-char ( text -- ch ) + +M: f text-hash-char ; + +M: string-matcher text-hash-char string-matcher-string first ; + +M: regexp text-hash-char drop f ; + +: rule-chars* ( rule -- string ) + dup rule-chars + swap rule-start matcher-text + text-hash-char [ add ] when* ; + +: add-rule ( rule ruleset -- ) + >r dup rule-chars* >upper swap + r> rule-set-rules inverted-index ; + +: add-escape-rule ( string ruleset -- ) + over [ + >r r> + 2dup set-rule-set-escape-rule + add-rule + ] [ + 2drop + ] if ; diff --git a/extra/xmode/summary.txt b/extra/xmode/summary.txt new file mode 100644 index 0000000000..4482fb8b86 --- /dev/null +++ b/extra/xmode/summary.txt @@ -0,0 +1 @@ +Syntax highlighting engine using jEdit mode files diff --git a/extra/xmode/tokens/tokens.factor b/extra/xmode/tokens/tokens.factor new file mode 100644 index 0000000000..14a48582ec --- /dev/null +++ b/extra/xmode/tokens/tokens.factor @@ -0,0 +1,21 @@ +USING: parser words sequences namespaces kernel assocs ; +IN: xmode.tokens + +! Based on org.gjt.sp.jedit.syntax.Token +SYMBOL: tokens + +: string>token ( string -- id ) tokens get at ; + +: TOKENS: + ";" parse-tokens [ + create-in dup define-symbol + dup word-name swap + ] H{ } map>assoc tokens set-global ; parsing + +TOKENS: COMMENT1 COMMENT2 COMMENT3 COMMENT4 DIGIT FUNCTION +INVALID KEYWORD1 KEYWORD2 KEYWORD3 KEYWORD4 LABEL LITERAL1 +LITERAL2 LITERAL3 LITERAL4 MARKUP OPERATOR END NULL ; + +TUPLE: token str id ; + +C: token diff --git a/extra/xmode/utilities/test.xml b/extra/xmode/utilities/test.xml new file mode 100644 index 0000000000..09a83fabc8 --- /dev/null +++ b/extra/xmode/utilities/test.xml @@ -0,0 +1 @@ +VP SalesCFO diff --git a/extra/xmode/utilities/utilities-tests.factor b/extra/xmode/utilities/utilities-tests.factor new file mode 100644 index 0000000000..d31aac64ae --- /dev/null +++ b/extra/xmode/utilities/utilities-tests.factor @@ -0,0 +1,53 @@ +IN: temporary +USING: xmode.utilities tools.test xml xml.data +kernel strings vectors sequences io.files prettyprint assocs ; + +[ "hi" 3 ] [ + { 1 2 3 4 5 6 7 8 } [ H{ { 3 "hi" } } at ] map-find +] unit-test + +[ f f ] [ + { 1 2 3 4 5 6 7 8 } [ H{ { 11 "hi" } } at ] map-find +] unit-test + +TUPLE: company employees type ; + +: V{ } clone f company construct-boa ; + +: add-employee company-employees push ; + + + +\ parse-employee-tag see + +: parse-company-tag + [ + + { { "type" >upper set-company-type } } + init-from-tag dup + ] keep + tag-children [ tag? ] subset + [ parse-employee-tag ] curry* each ; + +[ + T{ company f + V{ + T{ employee f "Joe" "VP Sales" } + T{ employee f "Jane" "CFO" } + } + "PUBLIC" + "This is a great company" + } +] [ + "extra/xmode/utilities/test.xml" + resource-path read-xml parse-company-tag +] unit-test diff --git a/extra/xmode/utilities/utilities.factor b/extra/xmode/utilities/utilities.factor new file mode 100644 index 0000000000..d4096b17e0 --- /dev/null +++ b/extra/xmode/utilities/utilities.factor @@ -0,0 +1,58 @@ +USING: sequences assocs kernel quotations namespaces xml.data +xml.utilities combinators macros parser words ; +IN: xmode.utilities + +: implies >r not r> or ; inline + +: child-tags ( tag -- seq ) tag-children [ tag? ] subset ; + +: map-find ( seq quot -- result elt ) + f -rot + [ nip ] swap [ dup ] 3compose find + >r [ drop f ] unless r> ; inline + +: tag-init-form ( spec -- quot ) + { + { [ dup quotation? ] [ [ object get tag get ] swap compose ] } + { [ dup length 2 = ] [ + first2 [ + >r >r tag get children>string + r> [ execute ] when* object get r> execute + ] 2curry + ] } + { [ dup length 3 = ] [ + first3 [ + >r >r tag get at + r> [ execute ] when* object get r> execute + ] 3curry + ] } + } cond ; + +: with-tag-initializer ( tag obj quot -- ) + [ object set tag set ] swap compose with-scope ; inline + +MACRO: (init-from-tag) ( specs -- ) + [ tag-init-form ] map concat [ ] like + [ with-tag-initializer ] curry ; + +: init-from-tag ( tag tuple specs -- tuple ) + over >r (init-from-tag) r> ; inline + +SYMBOL: tag-handlers +SYMBOL: tag-handler-word + +: + tag-handler-word get + tag-handlers get >alist [ >r dup name-tag r> case ] curry + define-compound ; parsing diff --git a/extra/xmode/xmode.dtd b/extra/xmode/xmode.dtd new file mode 100644 index 0000000000..d96df445fa --- /dev/null +++ b/extra/xmode/xmode.dtd @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/misc/factor.el b/misc/factor.el index 19e29843d6..985e10e285 100644 --- a/misc/factor.el +++ b/misc/factor.el @@ -113,13 +113,6 @@ (defvar factor-binary "/scratch/repos/Factor/factor") (defvar factor-image "/scratch/repos/Factor/factor.image") -(defun run-factor () - (interactive) - (switch-to-buffer - (make-comint-in-buffer "factor" nil factor-binary nil - (concat "-i=" factor-image) - "-run=listener"))) - (defun factor-telnet-to-port (port) (interactive "nPort: ") (switch-to-buffer @@ -166,9 +159,30 @@ (beginning-of-line) (insert "! ")) - (define-key factor-mode-map "\C-c\C-f" 'factor-run-file) (define-key factor-mode-map "\C-c\C-r" 'factor-send-region) (define-key factor-mode-map "\C-c\C-s" 'factor-see) -(define-key factor-mode-map "\C-ce" 'factor-edit) +(define-key factor-mode-map "\C-ce" 'factor-edit) (define-key factor-mode-map "\C-c\C-h" 'factor-help) +(define-key factor-mode-map "\C-cc" 'comment-region) +(define-key factor-mode-map [return] 'newline-and-indent) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factor-listener-mode +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define-derived-mode factor-listener-mode comint-mode "Factor Listener") + +(define-key factor-listener-mode-map [f8] 'factor-refresh-all) + +(defun run-factor () + (interactive) + (switch-to-buffer + (make-comint-in-buffer "factor" nil factor-binary nil + (concat "-i=" factor-image) + "-run=listener")) + (factor-listener-mode)) + +(defun factor-refresh-all () + (interactive) + (comint-send-string "*factor*" "refresh-all\n")) \ No newline at end of file diff --git a/misc/factor.sh b/misc/factor.sh new file mode 100755 index 0000000000..11ea2a9cdf --- /dev/null +++ b/misc/factor.sh @@ -0,0 +1,282 @@ +#!/bin/bash -e + +# Programs returning != 0 will not cause script to exit +set +e + +# Case insensitive string comparison +shopt -s nocaseglob +#shopt -s nocasematch + +OS= +ARCH= +WORD= +NO_UI= + +ensure_program_installed() { + echo -n "Checking for $1..." + result=`type -p $1` + if ! [[ -n $result ]] ; then + echo "not found!" + echo "Install $1 and try again." + exit 1 + fi + echo "found!" +} + +check_ret() { + RET=$? + if [[ $RET -ne 0 ]] ; then + echo $1 failed + exit 2 + fi +} + +check_gcc_version() { + echo -n "Checking gcc version..." + GCC_VERSION=`gcc --version` + check_ret gcc + if [[ $GCC_VERSION == *3.3.* ]] ; then + echo "bad!" + echo "You have a known buggy version of gcc (3.3)" + echo "Install gcc 3.4 or higher and try again." + exit 3 + fi + echo "ok." +} + +check_installed_programs() { + ensure_program_installed chmod + ensure_program_installed uname + ensure_program_installed git + ensure_program_installed wget + ensure_program_installed gcc + ensure_program_installed make + check_gcc_version +} + +check_library_exists() { + GCC_TEST=factor-library-test.c + GCC_OUT=factor-library-test.out + echo -n "Checking for library $1..." + echo "int main(){return 0;}" > $GCC_TEST + gcc $GCC_TEST -o $GCC_OUT -l $1 + if [[ $? -ne 0 ]] ; then + echo "not found!" + echo "Warning: library $1 not found." + echo "***Factor will compile NO_UI=1" + NO_UI=1 + fi + rm -f $GCC_TEST + check_ret rm + rm -f $GCC_OUT + check_ret rm + echo "found." +} + +check_X11_libraries() { + check_library_exists freetype + check_library_exists GLU + check_library_exists GL + check_library_exists X11 +} + +check_libraries() { + case $OS in + linux) check_X11_libraries;; + esac +} + +check_factor_exists() { + if [[ -d "factor" ]] ; then + echo "A directory called 'factor' already exists." + echo "Rename or delete it and try again." + exit 4 + fi +} + +find_os() { + echo "Finding OS..." + uname_s=`uname -s` + check_ret uname + case $uname_s in + CYGWIN_NT-5.2-WOW64) OS=windows-nt;; + *CYGWIN_NT*) OS=windows-nt;; + *CYGWIN*) OS=windows-nt;; + *darwin*) OS=macosx;; + *Darwin*) OS=macosx;; + *linux*) OS=linux;; + *Linux*) OS=linux;; + esac +} + +find_architecture() { + echo "Finding ARCH..." + uname_m=`uname -m` + check_ret uname + case $uname_m in + i386) ARCH=x86;; + i686) ARCH=x86;; + *86) ARCH=x86;; + *86_64) ARCH=x86;; + "Power Macintosh") ARCH=ppc;; + esac +} + +write_test_program() { + echo "#include " > $C_WORD.c + echo "int main(){printf(\"%d\", 8*sizeof(void*)); return 0; }" >> $C_WORD.c +} + +find_word_size() { + echo "Finding WORD..." + C_WORD=factor-word-size + write_test_program + gcc -o $C_WORD $C_WORD.c + WORD=$(./$C_WORD) + check_ret $C_WORD + rm -f $C_WORD* +} + +set_factor_binary() { + case $OS in + windows-nt) FACTOR_BINARY=factor-nt;; + macosx) FACTOR_BINARY=./Factor.app/Contents/MacOS/factor;; + *) FACTOR_BINARY=factor;; + esac +} + +echo_build_info() { + echo OS=$OS + echo ARCH=$ARCH + echo WORD=$WORD + echo FACTOR_BINARY=$FACTOR_BINARY + echo MAKE_TARGET=$MAKE_TARGET + echo BOOT_IMAGE=$BOOT_IMAGE +} + +set_build_info() { + if ! [[ -n $OS && -n $ARCH && -n $WORD ]] ; then + echo "OS: $OS" + echo "ARCH: $ARCH" + echo "WORD: $WORD" + echo "OS, ARCH, or WORD is empty. Please report this" + exit 5 + fi + + MAKE_TARGET=$OS-$ARCH-$WORD + BOOT_IMAGE=boot.$ARCH.$WORD.image + if [[ $OS == macosx && $ARCH == ppc ]] ; then + MAKE_TARGET=$OS-$ARCH + BOOT_IMAGE=boot.macosx-ppc.image + fi +} + +find_build_info() { + find_os + find_architecture + find_word_size + set_factor_binary + set_build_info + echo_build_info +} + +git_clone() { + echo "Downloading the git repository from factorcode.org..." + git clone git://factorcode.org/git/factor.git + check_ret git +} + +git_pull_factorcode() { + echo "Updating the git repository from factorcode.org..." + git pull git://factorcode.org/git/factor.git + check_ret git +} + +cd_factor() { + cd factor + check_ret cd +} + +make_clean() { + make clean + check_ret make +} + +make_factor() { + make NO_UI=$NO_UI $MAKE_TARGET -j5 + check_ret make +} + +delete_boot_images() { + echo "Deleting old images..." + rm $BOOT_IMAGE > /dev/null 2>&1 + rm $BOOT_IMAGE.* > /dev/null 2>&1 +} + +get_boot_image() { + wget http://factorcode.org/images/latest/$BOOT_IMAGE + check_ret wget +} + +maybe_download_dlls() { + if [[ $OS == windows-nt ]] ; then + wget http://factorcode.org/dlls/freetype6.dll + check_ret wget + wget http://factorcode.org/dlls/zlib1.dll + check_ret wget + chmod 777 *.dll + check_ret chmod + fi +} + +bootstrap() { + ./$FACTOR_BINARY -i=$BOOT_IMAGE +} + +usage() { + echo "usage: $0 install|install-x11|update|quick-update" +} + +install() { + check_factor_exists + check_installed_programs + find_build_info + check_libraries + git_clone + cd_factor + make_factor + get_boot_image + maybe_download_dlls + bootstrap +} + +update() { + check_installed_programs + find_build_info + check_libraries + git_pull_factorcode + make_clean + make_factor +} + +update_bootstrap() { + delete_boot_images + get_boot_image + bootstrap +} + +refresh_image() { + ./$FACTOR_BINARY -e="refresh-all save 0 USE: system exit" +} + +install_libraries() { + sudo apt-get install libc6-dev libfreetype6-dev wget git-core git-doc libx11-dev glutg3-dev rlwrap +} + +case "$1" in + install) install ;; + install-x11) install_libraries; install ;; + quick-update) update; refresh_image ;; + update) update; update_bootstrap ;; + *) usage ;; +esac diff --git a/misc/install.sh b/misc/install.sh deleted file mode 100755 index 006a7cf604..0000000000 --- a/misc/install.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/bash -e - -# Programs returning != 0 will not cause script to exit -set +e - -# Case insensitive string comparison -shopt -s nocaseglob -#shopt -s nocasematch - -ensure_program_installed() { - echo -n "Checking for $1..." - result=`type -p $1` - if ! [[ -n $result ]] ; then - echo "not found!" - echo "Install $1 and try again." - exit 1 - fi - echo "found!" -} - -check_ret() { - RET=$? - if [[ $RET -ne 0 ]] ; then - echo $1 failed - exit 5 - fi -} - -ensure_program_installed uname -ensure_program_installed git -ensure_program_installed wget -ensure_program_installed gcc -ensure_program_installed make - -GCC_VERSION=`gcc --version` -if [[ $GCC_VERSION == *3.3.* ]] ; then - echo "You have a known buggy version of gcc (3.3)" - echo "Install gcc 3.4 or higher and try again." - exit 1 -fi - -# OS -OS= -uname_s=`uname -s` -case $uname_s in - CYGWIN_NT-5.2-WOW64) OS=windows-nt;; - *CYGWIN_NT*) OS=windows-nt;; - *CYGWIN*) OS=windows-nt;; - *darwin*) OS=macosx;; - *Darwin*) OS=macosx;; - *linux*) OS=linux;; - *Linux*) OS=linux;; -esac - -# Architecture -ARCH= -uname_m=`uname -m` -case $uname_m in - i386) ARCH=x86;; - i686) ARCH=x86;; - *86) ARCH=x86;; - "Power Macintosh") ARCH=ppc;; -esac - -WORD= -C_WORD=factor-word-size -# Word size -echo "#include " > $C_WORD.c -echo "int main() { printf(\"%d\", 8*sizeof(long)); return 0; }" >> $C_WORD.c -gcc -o $C_WORD $C_WORD.c -WORD=$(./$C_WORD) -check_ret $C_WORD -rm -f $C_WORD* - -case $OS in - windows-nt) FACTOR_BINARY=factor-nt;; - macosx) FACTOR_BINARY=./Factor.app/Contents/MacOS/factor;; - *) FACTOR_BINARY=factor;; -esac - -MAKE_TARGET=$OS-$ARCH-$WORD -BOOT_IMAGE=boot.$ARCH.$WORD.image - -echo OS=$OS -echo ARCH=$ARCH -echo WORD=$WORD -echo FACTOR_BINARY=$FACTOR_BINARY -echo MAKE_TARGET=$MAKE_TARGET -echo BOOT_IMAGE=$BOOT_IMAGE - -if ! [[ -n $OS && -n $ARCH && -n $WORD ]] ; then - echo "OS, ARCH, or WORD is empty. Please report this" - exit 4 -fi - -echo "Downloading the git repository from factorcode.org..." -git clone git://factorcode.org/git/factor.git -check_ret git - -cd factor -check_ret cd - -make $MAKE_TARGET -check_ret make - -echo "Deleting old images..." -rm $BOOT_IMAGE > /dev/null 2>&1 -rm $BOOT_IMAGE.* > /dev/null 2>&1 -wget http://factorcode.org/images/latest/$BOOT_IMAGE -check_ret wget - -if [[ $OS == windows-nt ]] ; then - wget http://factorcode.org/dlls/freetype6.dll - check_ret - wget http://factorcode.org/dlls/zlib1.dll - check_ret -fi - - -./$FACTOR_BINARY -i=$BOOT_IMAGE diff --git a/unmaintained/alarms/alarms.factor b/unmaintained/alarms/alarms.factor deleted file mode 100644 index 0402ead8f4..0000000000 --- a/unmaintained/alarms/alarms.factor +++ /dev/null @@ -1,89 +0,0 @@ -! Copyright (C) 2007 Doug Coleman. -! See http://factorcode.org/license.txt for BSD license. - -USING: arrays calendar concurrency generic kernel math -namespaces sequences threads ; -IN: alarms-internals - -! for now a V{ }, eventually a min-heap to store alarms -SYMBOL: alarms -SYMBOL: alarm-receiver -SYMBOL: alarm-looper - -TUPLE: alarm time quot ; - -: add-alarm ( alarm -- ) - alarms get-global push ; - -: remove-alarm ( alarm -- ) - alarms get-global remove alarms set-global ; - -: handle-alarm ( alarm -- ) - dup delegate { - { "register" [ add-alarm ] } - { "unregister" [ remove-alarm ] } - } case ; - -: expired-alarms ( -- seq ) - now alarms get-global - [ alarm-time compare-timestamps 0 > ] subset-with ; - -: unexpired-alarms ( -- seq ) - now alarms get-global - [ alarm-time compare-timestamps 0 <= ] subset-with ; - -: call-alarm ( alarm -- ) - alarm-quot spawn drop ; - -: do-alarms ( -- ) - alarms get-global expired-alarms - [ call-alarm ] each - unexpired-alarms alarms set-global ; - -: alarm-receive-loop ( -- ) - receive dup alarm? [ handle-alarm ] [ drop ] if - alarm-receive-loop ; - -: start-alarm-receiver ( -- ) - [ - alarm-receive-loop - ] spawn alarm-receiver set-global ; - -: alarm-loop ( -- ) - alarms get-global empty? [ - do-alarms - ] unless 100 sleep alarm-loop ; - -: start-alarm-looper ( -- ) - [ - alarm-loop - ] spawn alarm-looper set-global ; - -: send-alarm ( alarm -- ) - over set-delegate - alarm-receiver get-global send ; - -: start-alarm-daemon ( -- process ) - alarms get-global [ - V{ } clone alarms set-global - start-alarm-looper - start-alarm-receiver - ] unless ; - -start-alarm-daemon - -IN: alarms - -: register-alarm ( alarm -- ) - "register" send-alarm ; - -: unregister-alarm ( alarm -- ) - "unregister" send-alarm ; - -: change-alarm ( alarm-old alarm-new -- ) - "register" send-alarm - "unregister" send-alarm ; - - -! Example: -! now 5 seconds +dt [ "hi" print flush ] register-alarm diff --git a/unmaintained/alarms/load.factor b/unmaintained/alarms/load.factor deleted file mode 100644 index 4b52ce6c79..0000000000 --- a/unmaintained/alarms/load.factor +++ /dev/null @@ -1,5 +0,0 @@ -REQUIRES: libs/calendar libs/concurrency ; -PROVIDE: libs/alarms -{ +files+ { - "alarms.factor" -} } ; diff --git a/unmaintained/random-tester/load.factor b/unmaintained/random-tester/load.factor deleted file mode 100644 index ba69545e3b..0000000000 --- a/unmaintained/random-tester/load.factor +++ /dev/null @@ -1,9 +0,0 @@ -REQUIRES: libs/lazy-lists libs/null-stream libs/shuffle ; -PROVIDE: apps/random-tester -{ +files+ { - "utils.factor" - "random.factor" - "random-tester.factor" - "random-tester2.factor" - "type.factor" -} } ; diff --git a/unmaintained/random-tester/random-tester.factor b/unmaintained/random-tester/random-tester.factor deleted file mode 100644 index 649ca9d345..0000000000 --- a/unmaintained/random-tester/random-tester.factor +++ /dev/null @@ -1,301 +0,0 @@ -USING: kernel math math-internals memory sequences namespaces errors -assocs words arrays parser compiler syntax io -quotations tools prettyprint optimizer inference ; -IN: random-tester - -! n-foo>bar -- list of words of type 'foo' that take n parameters -! and output a 'bar' - - -! Math vocabulary words -: 1-x>y - { - 1+ 1- >bignum >digit >fixnum abs absq arg - bitnot bits>double bits>float ceiling cis conjugate cos cosec cosech - cosh cot coth denominator double>bits exp float>bits floor imaginary - log neg numerator real sec ! next-power-of-2 - sech sgn sin sinh sq sqrt tan tanh truncate - } ; - -: 1-x>y-throws - { - recip log2 - asec asech acot acoth acosec acosech acos acosh asin asinh atan atanh - } ; - -: 2-x>y ( -- seq ) { * + - /f max min polar> bitand bitor bitxor align } ; -: 2-x>y-throws ( -- seq ) { / /i mod rem } ; - -: 1-integer>x - { - 1+ 1- >bignum >digit >fixnum abs absq arg - bitnot bits>double bits>float ceiling cis conjugate cos cosec cosech - cosh cot coth denominator exp floor imaginary - log neg next-power-of-2 numerator real sec - sech sgn sin sinh sq sqrt tan tanh truncate - } ; - -: 1-ratio>x - { - 1+ 1- >bignum >digit >fixnum abs absq arg ceiling - cis conjugate cos cosec cosech - cosh cot coth exp floor imaginary - log neg next-power-of-2 real sec - sech sgn sin sinh sq sqrt tan tanh truncate - } ; - -: 1-float>x ( -- seq ) - { - 1+ 1- >bignum >digit >fixnum abs absq arg - ceiling cis conjugate cos cosec cosech - cosh cot coth double>bits exp float>bits floor imaginary - log neg real sec ! next-power-of-2 - sech sgn sin sinh sq sqrt tan tanh truncate - } ; - -: 1-complex>x - { - 1+ 1- abs absq arg conjugate cos cosec cosech - cosh cot coth exp imaginary log neg real - sec sech sin sinh sq sqrt tan tanh - } ; - -: 1-integer>x-throws - { - recip log2 - asec asech acot acoth acosec acosech acos acosh asin asinh atan atanh - } ; - -: 1-ratio>x-throws - { - recip - asec asech acot acoth acosec acosech acos acosh asin asinh atan atanh - } ; - -: 1-integer>integer - { - 1+ 1- >bignum >digit >fixnum abs absq bitnot ceiling conjugate - denominator floor imaginary - neg next-power-of-2 numerator real sgn sq truncate - } ; - -: 1-ratio>ratio - { 1+ 1- >digit abs absq conjugate neg real sq } ; - -: 1-float>float - { - 1+ 1- >digit abs absq arg ceiling - conjugate exp floor neg real sq truncate - } ; - -: 1-complex>complex - { - 1+ 1- abs absq arg conjugate cosec cosech cosh cot coth exp log - neg sech sin sinh sq sqrt tanh - } ; - -: 2-integer>x { * + - /f max min polar> bitand bitor bitxor align } ; -: 2-ratio>x { * + - /f max min polar> } ; -: 2-float>x { float+ float- float* float/f + - * /f max min polar> } ; -: 2-complex>x { * + - /f } ; - -: 2-integer>integer { * + - max min bitand bitor bitxor align } ; -: 2-ratio>ratio { * + - max min } ; -: 2-float>float { float* float+ float- float/f max min /f + - } ; -: 2-complex>complex { * + - /f } ; - - -SYMBOL: last-quot -SYMBOL: first-arg -SYMBOL: second-arg -: 0-runtime-check ( quot -- ) - #! Checks the runtime only, not the compiler - #! Evaluates the quotation twice and makes sure the results agree - [ last-quot set ] keep - [ call ] keep - call - ! 2dup swap unparse write " " write unparse print flush - = [ last-quot get . "problem in runtime" throw ] unless ; - -: 1-runtime-check ( quot -- ) - #! Checks the runtime only, not the compiler - #! Evaluates the quotation twice and makes sure the results agree - #! For quotations that are given one argument - [ last-quot set first-arg set ] 2keep - [ call ] 2keep - call - 2dup swap unparse write " " write unparse print flush - = [ "problem in runtime" throw ] unless ; - -: 1-interpreted-vs-compiled-check ( x quot -- ) - #! Checks the runtime output vs the compiler output - #! quot: ( x -- y ) - 2dup swap unparse write " " write . flush - [ last-quot set first-arg set ] 2keep - [ call ] 2keep compile-1 - 2dup swap unparse write " " write unparse print flush - = [ "problem in math1" throw ] unless ; - -: 2-interpreted-vs-compiled-check ( x y quot -- ) - #! Checks the runtime output vs the compiler output - #! quot: ( x y -- z ) - .s flush - [ last-quot set first-arg set second-arg set ] 3keep - [ call ] 3keep compile-1 - 2dup swap unparse write " " write unparse print flush - = [ "problem in math2" throw ] unless ; - -: 0-interpreted-vs-compiled-check-catch ( quot -- ) - #! Check the runtime output vs the compiler output for words that throw - #! - dup . - [ last-quot set ] keep - [ catch [ "caught: " write dup print-error ] when* ] keep - [ compile-1 ] catch [ nip "caught: " write dup print-error ] when* - = [ "problem in math3" throw ] unless ; - -: 1-interpreted-vs-compiled-check-catch ( quot -- ) - #! Check the runtime output vs the compiler output for words that throw - 2dup swap unparse write " " write . - ! "." write - [ last-quot set first-arg set ] 2keep - [ catch [ nip "caught: " write dup print-error ] when* ] 2keep - [ compile-1 ] catch [ 2nip "caught: " write dup print-error ] when* - = [ "problem in math4" throw ] unless ; - -: 2-interpreted-vs-compiled-check-catch ( quot -- ) - #! Check the runtime output vs the compiler output for words that throw - ! 3dup rot unparse write " " write swap unparse write " " write . - "." write - [ last-quot set first-arg set second-arg set ] 3keep - [ catch [ 2nip "caught: " write dup print-error ] when* ] 3keep - [ compile-1 ] catch [ 2nip nip "caught: " write dup print-error ] when* - = [ "problem in math5" throw ] unless ; - - -! RANDOM QUOTATIONS TO TEST -: random-1-integer>x-quot ( -- quot ) 1-integer>x random 1quotation ; -: random-1-ratio>x-quot ( -- quot ) 1-ratio>x random 1quotation ; -: random-1-float>x-quot ( -- quot ) 1-float>x random 1quotation ; -: random-1-complex>x-quot ( -- quot ) 1-complex>x random 1quotation ; - -: test-1-integer>x ( -- ) - random-integer random-1-integer>x-quot 1-interpreted-vs-compiled-check ; -: test-1-ratio>x ( -- ) - random-ratio random-1-ratio>x-quot 1-interpreted-vs-compiled-check ; -: test-1-float>x ( -- ) - random-float random-1-float>x-quot 1-interpreted-vs-compiled-check ; -: test-1-complex>x ( -- ) - random-complex random-1-complex>x-quot 1-interpreted-vs-compiled-check ; - - -: random-1-float>float-quot ( -- obj ) 1-float>float random 1quotation ; -: random-2-float>float-quot ( -- obj ) 2-float>float random 1quotation ; -: nrandom-2-float>float-quot ( -- obj ) - [ - 5 - [ - { - [ 2-float>float random , random-float , ] - [ 1-float>float random , ] - } do-one - ] times - 2-float>float random , - ] [ ] make ; - -: test-1-float>float ( -- ) - random-float random-1-float>float-quot 1-interpreted-vs-compiled-check ; -: test-2-float>float ( -- ) - random-float random-float random-2-float>float-quot - 2-interpreted-vs-compiled-check ; - -: test-n-2-float>float ( -- ) - random-float random-float nrandom-2-float>float-quot - 2-interpreted-vs-compiled-check ; - -: test-1-integer>x-runtime ( -- ) - random-integer random-1-integer>x-quot 1-runtime-check ; - -: random-1-integer>x-throws-quot ( -- obj ) 1-integer>x-throws random 1quotation ; -: random-1-ratio>x-throws-quot ( -- obj ) 1-ratio>x-throws random 1quotation ; -: test-1-integer>x-throws ( -- obj ) - random-integer random-1-integer>x-throws-quot - 1-interpreted-vs-compiled-check-catch ; -: test-1-ratio>x-throws ( -- obj ) - random-ratio random-1-ratio>x-throws-quot - 1-interpreted-vs-compiled-check-catch ; - - - -: test-2-integer>x-throws ( -- ) - [ - random-integer , random-integer , - 2-x>y-throws random , - ] [ ] make 2-interpreted-vs-compiled-check-catch ; - -! : test-^-ratio ( -- ) - ! [ - ! random-ratio , random-ratio , \ ^ , - ! ] [ ] make interp-compile-check-catch ; - -: test-0-float?-when - [ - random-number , \ dup , \ float? , 1-float>x random 1quotation , \ when , - ] [ ] make 0-runtime-check ; - -: test-1-integer?-when - random-integer [ - \ dup , \ integer? , 1-integer>x random 1quotation , \ when , - ] [ ] make 1-interpreted-vs-compiled-check ; - -: test-1-ratio?-when - random-ratio [ - \ dup , \ ratio? , 1-ratio>x random 1quotation , \ when , - ] [ ] make 1-interpreted-vs-compiled-check ; - -: test-1-float?-when - random-float [ - \ dup , \ float? , 1-float>x random 1quotation , \ when , - ] [ ] make 1-interpreted-vs-compiled-check ; - -: test-1-complex?-when - random-complex [ - \ dup , \ complex? , 1-complex>x random 1quotation , \ when , - ] [ ] make 1-interpreted-vs-compiled-check ; - - -: many-word-test ( -- ) - #! defines words a1000 down to a0, which does a trivial addition - "random-tester-scratchpad" vocabularies get delete-at - "random-tester-scratchpad" set-in - "a0" "random-tester-scratchpad" create [ 1 1 + ] define-compound - 100 [ - [ 1+ "a" swap unparse append "random-tester-scratchpad" create ] keep - "a" swap unparse append [ parse ] catch [ :1 ] when define-compound - ] each ; - -: compile-loop ( -- ) - 10 [ many-word-test "a100" parse first compile ] times ; - -: random-test - "----" print - { - test-1-integer>x - test-1-ratio>x - test-1-float>x - test-1-complex>x - test-1-integer>x-throws - test-1-ratio>x-throws - test-1-float>float - test-2-float>float - ! test-n-2-float>float - test-1-integer>x-runtime - ! test-0-float?-when - test-1-integer?-when - test-1-ratio?-when - test-1-float?-when - test-1-complex?-when - ! full-gc - ! code-gc - } random dup . execute nl ; - diff --git a/unmaintained/random-tester/random-tester2.factor b/unmaintained/random-tester/random-tester2.factor deleted file mode 100644 index 8a49830f12..0000000000 --- a/unmaintained/random-tester/random-tester2.factor +++ /dev/null @@ -1,186 +0,0 @@ -USING: compiler errors inference interpreter io kernel math -memory namespaces prettyprint random-tester sequences tools -quotations words arrays definitions generic graphs -hashtables byte-arrays assocs network ; -IN: random-tester2 - -: dangerous-words ( -- array ) - { - die - set-walker-hook exit - >r r> ndrop - - set-callstack set-word set-word-prop - set-catchstack set-namestack set-retainstack - set-continuation-retain continuation-catch - set-continuation-name catchstack retainstack - set-no-math-method-generic - set-no-math-method-right - set-check-method-class - set-check-create-name - set-pathname-string - set-check-create-vocab - set-check-method-generic - check-create? - reset-generic forget-class - create forget-word forget-vocab forget - forget-methods forget-predicate - remove-word-prop empty-method - continue-with - - define-compound define make-generic - define-method define-predicate-class - define-tuple-class define-temp define-tuple-slots - define-writer define-predicate define-generic - (define-union-class) - define-declared define-class - define-union-class define-inline - ?make-generic define-reader define-slot define-slots - define-typecheck define-slot-word define-union-class - define-simple-generic with-methods define-constructor - predicate-word condition-continuation define-symbol - tuple-predicate (sort-classes) - - stdio - close readln read1 read read-until - stream-read stream-readln stream-read1 lines - contents stream-copy stream-flush - lines-loop - stream-format set-line-reader-cr - - - style-stream default-constructor - init-namespaces plain-writer - - with-datastack datastack-underflow. - (delegates) simple-slot , # % - continue-with set-delegate - callcc0 callcc1 - - :r :s :c - - (next-power-of-2) (^) d>w/w w>h/h millis - (random) ^n integer, first-bignum - most-positive-fixnum ^ init-random next-power-of-2 - most-negative-fixnum - - clear-assoc build-graph - - set-word-def set-word-name - set-word-props - set set-axis set-delegate set-global set-restart-obj - - - - gensym random - - double>bits float>bits >bignum - - class-predicates delete (delete) memq? - prune join concat group at+ - normalize norm vneg vmax vmin v- v+ [v-] - times repeat (repeat) - supremum infimum at norm-sq - product sum curry remove-all member? subseq? - - ! O(n) on bignums - (add-vertex) (prune) (split) digits>integer - substitute ?head ?tail add-vertex all? base> closure - drop-prefix - find-last-sep format-column head? index index* - last-index mismatch push-new remove-vertex reset-props - seq-quot-uses sequence= split split, split1 start - start* string-lines string>integer tail? v. - - stack-picture - - ! allot crashes - at+ natural-sort - - # % (delegates) +@ , . .s - be> bin> callstack changed-word - changed-words continue-with counter dec - global - hex> inc le> namespace namestack nest oct> off - on parent-dir path+ - simple-slot simple-slots string>number tabular-output - unxref-word xref-word xref-words vocabularies - with-datastack - - bind if-graph ! 0 >n ! GCs - - move-backward move-forward open-slice (open-slice) ! infinite loop - (assoc-stack) ! infinite loop - - case ! 100000000000 t case ! takes a long time - } ; - -: safe-words ( -- array ) - dangerous-words { - "arrays" "assocs" "bit-arrays" "byte-arrays" - "errors" "generic" "graphs" "hashtables" "io" - "kernel" "math" "namespaces" "quotations" "sbufs" - "queues" "strings" "sequences" "vectors" "words" - } [ words ] map concat seq-diff natural-sort ; - -safe-words \ safe-words set-global - -: databank ( -- array ) - { - ! V{ } H{ } V{ 3 } { 3 } { } "" "asdf" - pi 1/0. -1/0. 0/0. [ ] - f t "" 0 0.0 3.14 2 -3 -7 20 3/4 -3/4 1.2/3 3.5 - C{ 2 2 } C{ 1/0. 1/0. } - } ; - -: setup-test ( #data #code -- data... quot ) - #! variable stack effect - >r [ databank random ] times r> - [ drop \ safe-words get random ] map >quotation ; - -SYMBOL: before -SYMBOL: after -SYMBOL: quot -SYMBOL: err -err off - -: test-compiler ( data... quot -- ... ) - err off - dup quot set - datastack clone dup pop* before set - [ call ] catch drop datastack clone after set - clear - before get [ ] each - quot get [ compile-1 ] [ err on ] recover ; - -: do-test ( data... quot -- ) - .s flush test-compiler - err get [ - datastack after get 2dup = [ - 2drop - ] [ - [ . ] each - "--" print [ . ] each quot get . - "not =" throw - ] if - ] unless - clear ; - -: random-test* ( #data #code -- ) - setup-test do-test ; - -: run-random-tester2 - 100000000000000 [ 6 3 random-test* ] times ; - - -! A worthwhile test that has not been run extensively - -1000 [ drop gensym ] map "syms" set-global - -: fooify-test - "syms" get-global random - 2000 random >quotation - over set-word-def - 100 random zero? [ code-gc ] when - compile fooify-test ; - diff --git a/unmaintained/random-tester/type.factor b/unmaintained/random-tester/type.factor deleted file mode 100644 index bda0284c47..0000000000 --- a/unmaintained/random-tester/type.factor +++ /dev/null @@ -1,218 +0,0 @@ -USING: arrays errors generic hashtables io kernel lazy-lists math -memory modules namespaces null-stream prettyprint random-tester2 -quotations sequences strings -tools vectors words ; -IN: random-tester - -: inert ; -TUPLE: inert-object ; - -: inputs ( -- seq ) - { - 0 -1 -1000000000000000000000000 2 - inert - -29/2 - 1000000000000000000000000000000/1111111111111111111111111111111111 - 3/4 - -1000000000000000000000000/111111111111111111 - -3.14 1/0. 0.0 -1/0. 3.14 0/0. - 20102101010100110110 - C{ 1 -1 } - W{ 55 } - { } - f t - "" - "asdf" - [ ] - ! DLL" libm.dylib" - ! ALIEN: 1 - T{ inert-object f } - } - [ - H{ { 1 2 } { "asdf" "foo" } } clone , - H{ } clone , - V{ 1 0 65536 } clone , - V{ } clone , - SBUF" " clone , - B{ } clone , - ?{ } clone , - ] { } make append ; - -TUPLE: success quot inputs outputs input-types output-types ; - -SYMBOL: err -SYMBOL: last-time -SYMBOL: quot -SYMBOL: output -SYMBOL: input -SYMBOL: silent -t silent set-global - -: test-quot ( input quot -- success/f ) - ! 2dup swap . . flush - ! dup [ hash+ ] = [ 2dup . . flush ] when - err off - quot set input set - silent get [ - quot get last-time get = [ - quot get - dup . flush - last-time set - ] unless - ] unless - [ - clear - input get >vector set-datastack quot get - [ [ [ call ] { } make drop ] with-null-stream ] - [ err on ] recover - datastack clone output set - ] with-saved-datastack - err get [ - f - ] [ - quot get input get output get - 2dup [ [ type ] map ] 2apply - ] if ; - -: test-inputs ( word -- seq ) - [ - [ word-input-count inputs swap ] keep - 1quotation [ - test-quot [ , ] when* - ] curry each-permutation - ] { } make ; - -: >types ( quot -- seq ) - map concat prune natural-sort ; - -: >output-types ( seq -- seq ) - #! input seq is the result of test-inputs - [ success-output-types ] >types ; - -: >input-types ( seq -- seq ) - #! input seq is the result of test-inputs - [ success-input-types ] >types ; - -TUPLE: typed quot inputs outputs ; - -: successes>typed ( seq -- typed ) - dup empty? [ - drop f { } clone { } clone - ] [ - [ first success-quot ] keep - [ >input-types ] keep >output-types - ] if ; - -: word>type-check ( word -- tuple ) - [ - dup test-inputs - successes>typed , - ] curry [ with-saved-datastack ] { } make first ; - -: type>name ( n -- string ) - dup integer? [ - { - "fixnum" - "bignum" - "word" - "obj" - "ratio" - "float" - "complex" - "wrapper" - "array" - "boolean" - "hashtable" - "vector" - "string" - "sbuf" - "quotation" - "dll" - "alien" - "tuple" - } nth - ] when ; - -: replace-subseqs ( seq new old -- seq ) - [ - swapd split1 [ append swap add ] [ nip ] if* - ] 2each ; - -: type-array>name ( seq -- seq ) - { - { "object" { 0 1 2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 } } - { "seq3" { 0 1 8 9 11 12 13 14 } } - { "seq2" { 0 8 9 11 12 13 14 } } - { "seq" { 8 9 11 12 13 14 } } - { "number" { 0 1 4 5 6 } } - { "real" { 0 1 4 5 } } - { "rational" { 0 1 4 } } - { "integer" { 0 1 } } - { "float/complex" { 5 6 } } - { "word/f" { 2 9 } } - } flip first2 replace-subseqs [ type>name ] map ; - -: buggy? - [ word>type-check ] catch [ - drop f - ] [ - 2array [ [ type-array>name ] map ] map - [ [ length 1 = ] all? ] all? not - ] if ; - -: variable-stack-effect? - [ word>type-check ] catch nip ; - -: find-words ( quot -- seq ) - \ safe-words get - [ - word-input-count 3 <= - ] subset swap subset ; - -: find-safe ( -- seq ) [ buggy? not ] find-words ; - -: find-buggy ( -- seq ) [ buggy? ] find-words ; - -: test-word ( output input word -- ? ) - 1quotation test-quot dup [ - success-outputs sequence= - ] [ - nip - ] if ; - -: word-finder ( inputs outputs -- seq ) - swap safe-words - [ >r 2dup r> test-word ] subset 2nip ; - -: (enumeration-test) - [ - [ stack-effect effect-in length ] catch [ 4 < ] unless - ] subset [ [ test-inputs successes>typed , ] each ] { } make ; - -! full-gc finds corrupted memory faster - -: enumeration-test ( -- seq ) - [ - \ safe-words get - f silent set - (enumeration-test) - ] with-scope ; - -: array>all-quots ( seq n -- seq ) - [ - [ 1+ [ >quotation , ] each-permutation ] each-with - ] { } make ; - -: array>all ( seq n -- seq ) - dupd array>all-quots append ; - -: quot-finder ( inputs outputs -- seq ) - swap safe-words 2 array>all - [ - 3 [ >quotation >r 2dup r> [ test-quot ] keep - swap [ , ] [ drop ] if ] each-permutation - ] { } make ; - -: word-frequency ( -- alist ) - all-words [ dup usage length 2array ] map sort-values ; - diff --git a/unmaintained/random-tester/utils.factor b/unmaintained/random-tester/utils.factor deleted file mode 100644 index e699d53f22..0000000000 --- a/unmaintained/random-tester/utils.factor +++ /dev/null @@ -1,77 +0,0 @@ -USING: generic kernel math sequences namespaces errors -assocs words arrays parser compiler syntax io -quotations optimizer inference shuffle tools prettyprint ; -IN: random-tester - -: word-input-count ( word -- n ) - [ stack-effect effect-in length ] [ 2drop 0 ] recover ; - -: type-error? ( exception -- ? ) - [ swap execute or ] curry - >r { no-method? no-math-method? } f r> reduce ; - -! HASHTABLES -: random-hash-entry ( hash -- key value ) - [ keys random dup ] keep at ; - -: coin-flip ( -- bool ) 2 random zero? ; -: do-one ( seq -- ) random call ; inline - -: nzero-array ( seq -- ) - dup length >r 0 r> [ pick set-nth ] each-with drop ; - -: zero-array ( n -- seq ) [ drop 0 ] map ; - -TUPLE: p-list seq max count count-vec ; -: make-p-list ( seq n -- tuple ) - >r dup length [ 1- ] keep r> - [ ^ 0 swap 2array ] keep - zero-array ; - -: inc-seq ( seq max -- ) - 2dup [ < ] curry find-last over -1 = [ - 3drop nzero-array - ] [ - nipd 1+ 2over swap set-nth - 1+ over length rot nzero-array - ] if ; - -: inc-count ( tuple -- ) - [ p-list-count first2 >r 1+ r> 2array ] keep - set-p-list-count ; - -: get-permutation ( tuple -- seq ) - [ p-list-seq ] keep p-list-count-vec [ swap nth ] map-with ; - -: p-list-next ( tuple -- seq/f ) - dup p-list-count first2 < [ - [ - [ get-permutation ] keep - [ p-list-count-vec ] keep p-list-max - inc-seq - ] keep inc-count - ] [ - drop f - ] if ; - -: (permutations) ( tuple -- ) - dup p-list-next [ , (permutations) ] [ drop ] if* ; - -: permutations ( seq n -- seq ) - make-p-list [ (permutations) ] { } make ; - -: (each-permutation) ( tuple quot -- ) - over p-list-next [ - [ rot drop swap call ] 3keep - drop (each-permutation) - ] [ - 2drop - ] if* ; inline - -: each-permutation ( seq n quot -- ) - >r make-p-list r> (each-permutation) ; - -SYMBOL: saved-datastack -: with-saved-datastack - >r datastack saved-datastack set r> call - saved-datastack get set-datastack ; inline diff --git a/extra/rss/reader/reader.factor b/unmaintained/reader/reader.factor similarity index 100% rename from extra/rss/reader/reader.factor rename to unmaintained/reader/reader.factor diff --git a/unmaintained/regexp/load.factor b/unmaintained/regexp/load.factor deleted file mode 100644 index 989452e606..0000000000 --- a/unmaintained/regexp/load.factor +++ /dev/null @@ -1,10 +0,0 @@ -REQUIRES: libs/memoize ; -PROVIDE: libs/regexp -{ +files+ { - "tables.factor" - "regexp.factor" -} } { +tests+ { - "test/regexp.factor" - "test/tables.factor" -} } ; - diff --git a/unmaintained/regexp/regexp.factor b/unmaintained/regexp/regexp.factor deleted file mode 100644 index de233b2155..0000000000 --- a/unmaintained/regexp/regexp.factor +++ /dev/null @@ -1,501 +0,0 @@ -USING: arrays errors generic assocs io kernel math -memoize namespaces kernel sequences strings tables -vectors ; -USE: interpreter -USE: prettyprint -USE: test - -IN: regexp-internals - -SYMBOL: trans-table -SYMBOL: eps -SYMBOL: start-state -SYMBOL: final-state - -SYMBOL: paren-count -SYMBOL: currentstate -SYMBOL: stack - -SYMBOL: bot -SYMBOL: eot -SYMBOL: alternation -SYMBOL: lparen -SYMBOL: rparen - -: regexp-init ( -- ) - 0 paren-count set - -1 currentstate set - V{ } clone stack set - final-state over add-column trans-table set ; - -: paren-underflow? ( -- ) - paren-count get 0 < [ "too many rparen" throw ] when ; - -: unbalanced-paren? ( -- ) - paren-count get 0 > [ "neesds closing paren" throw ] when ; - -: inc-paren-count ( -- ) - paren-count [ 1+ ] change ; - -: dec-paren-count ( -- ) - paren-count [ 1- ] change paren-underflow? ; - -: push-stack ( n -- ) stack get push ; -: next-state ( -- n ) - currentstate [ 1+ ] change currentstate get ; -: current-state ( -- n ) currentstate get ; - -: set-trans-table ( row col data -- ) - trans-table get set-value ; - -: add-trans-table ( row col data -- ) - trans-table get add-value ; - -: data-stack-slice ( token -- seq ) - stack get reverse [ index ] keep cut reverse dup pop* stack set reverse ; - -: find-start-state ( table -- n ) - start-state t rot find-by-column first ; - -: find-final-state ( table -- n ) - final-state t rot find-by-column first ; - -: final-state? ( row table -- ? ) - get-row final-state swap key? ; - -: switch-rows ( r1 r2 -- ) - [ 2array [ trans-table get get-row ] each ] 2keep - 2array [ trans-table get set-row ] each ; - -: set-table-prop ( prop s table -- ) - pick over add-column table-rows - [ - pick rot member? [ - pick t swap rot set-at - ] [ - drop - ] if - ] assoc-each 2drop ; - -: add-numbers ( n obj -- obj ) - dup sequence? [ - [ + ] map-with - ] [ - dup number? [ + ] [ nip ] if - ] if ; - -: increment-cols ( n row -- ) - ! n row - dup [ >r pick r> add-numbers swap pick set-at ] assoc-each 2drop ; - -: complex-count ( c -- ci-cr+1 ) - >rect swap - 1+ ; - -: copy-rows ( c1 -- ) - #! copy rows to the bottom with a new row-name c1_range higher - [ complex-count ] keep trans-table get table-rows ! 2 C{ 0 1 } rows - [ drop [ over real >= ] keep pick imaginary <= and ] assoc-subset nip - [ clone [ >r over r> increment-cols ] keep swap pick + trans-table get set-row ] assoc-each ! 2 - currentstate get 1+ dup pick + 1- rect> push-stack - currentstate [ + ] change ; - - -! s1 final f ! s1 eps s2 ! output s0,s3 -: apply-concat ( seq -- ) - ! "Concat: " write dup . - dup pop over pop swap - over imaginary final-state f set-trans-table - 2dup >r imaginary eps r> real add-trans-table - >r real r> imaginary rect> swap push ; - -! swap 0, 4 so 0 is incoming -! ! s1 final f ! s3 final f ! s4 e s0 ! s4 e s2 ! s1 e s5 ! s3 e s5 -! ! s5 final t ! s4,s5 push - -SYMBOL: saved-state -: apply-alternation ( seq -- ) - ! "Alternation: " print - dup pop over pop* over pop swap - next-state trans-table get add-row - >r >rect >r saved-state set current-state r> rect> r> - ! 4,1 2,3 - over real saved-state get trans-table get swap-rows - saved-state get start-state t set-trans-table - over real start-state f set-trans-table - over imaginary final-state f set-trans-table - dup imaginary final-state f set-trans-table - over real saved-state get eps rot add-trans-table - dup real saved-state get eps rot add-trans-table - imaginary eps next-state add-trans-table - imaginary eps current-state add-trans-table - current-state final-state t set-trans-table - saved-state get current-state rect> swap push ; - -! s1 final f ! s1 e s0 ! s2 e s0 ! s2 e s3 ! s1 e s3 ! s3 final t -: apply-kleene-closure ( -- ) - ! "Apply kleene closure" print - stack get pop - next-state trans-table get add-row - >rect >r [ saved-state set ] keep current-state - [ trans-table get swap-rows ] keep r> rect> - - dup imaginary final-state f set-trans-table - dup imaginary eps pick real add-trans-table - saved-state get eps pick real add-trans-table - saved-state get eps next-state add-trans-table - imaginary eps current-state add-trans-table - current-state final-state t add-trans-table - saved-state get current-state rect> push-stack ; - -: apply-plus-closure ( -- ) - ! "Apply plus closure" print - stack get peek copy-rows - apply-kleene-closure stack get apply-concat ; - -: apply-alternation? ( seq -- ? ) - dup length dup 3 < [ - 2drop f - ] [ - 2 - swap nth alternation = - ] if ; - -: apply-concat? ( seq -- ? ) - dup length dup 2 < [ - 2drop f - ] [ - 2 - swap nth complex? - ] if ; - -: (apply) ( slice -- slice ) - dup length 1 > [ - { - { [ dup apply-alternation? ] - [ [ apply-alternation ] keep (apply) ] } - { [ dup apply-concat? ] - [ [ apply-concat ] keep (apply) ] } - } cond - ] when ; - -: apply-til-last ( tokens -- slice ) - data-stack-slice (apply) ; - -: maybe-concat ( -- ) - stack get apply-concat? [ stack get apply-concat ] when ; - -: maybe-concat-loop ( -- ) - stack get length maybe-concat stack get length > [ - maybe-concat-loop - ] when ; - -: create-nontoken-nfa ( tok -- ) - next-state swap next-state - [ trans-table get set-value ] keep - entry-value final-state t set-trans-table - current-state [ 1- ] keep rect> push-stack ; - -! stack gets: alternation C{ 0 1 } -: apply-question-closure ( -- ) - alternation push-stack - eps create-nontoken-nfa stack get apply-alternation ; - -! {2} exactly twice, {2,} 2 or more, {2,4} exactly 2,3,4 times -! : apply-bracket-closure ( c1 -- ) - ! ; -SYMBOL: character-class -SYMBOL: brace -SYMBOL: escaped-character -SYMBOL: octal -SYMBOL: hex -SYMBOL: control -SYMBOL: posix - -: addto-character-class ( char -- ) - ; - -: make-escaped ( char -- ) - { - ! TODO: POSIX character classes (US-ASCII only) - ! TODO: Classes for Unicode blocks and categories - - ! { CHAR: { [ ] } ! left brace - { CHAR: \\ [ ] } ! backaslash - - { CHAR: 0 [ ] } ! octal \0n \0nn \0mnn (0 <= m <= 3, 0 <= n <= 7) - { CHAR: x [ ] } ! \xhh - { CHAR: u [ ] } ! \uhhhh - { CHAR: t [ ] } ! tab \u0009 - { CHAR: n [ ] } ! newline \u000a - { CHAR: r [ ] } ! carriage-return \u000d - { CHAR: f [ ] } ! form-feed \u000c - { CHAR: a [ ] } ! alert (bell) \u0007 - { CHAR: e [ ] } ! escape \u001b - { CHAR: c [ ] } ! control character corresoding to X in \cX - - { CHAR: d [ ] } ! [0-9] - { CHAR: D [ ] } ! [^0-9] - { CHAR: s [ ] } ! [ \t\n\x0B\f\r] - { CHAR: S [ ] } ! [^\s] - { CHAR: w [ ] } ! [a-zA-Z_0-9] - { CHAR: W [ ] } ! [^\w] - - { CHAR: b [ ] } ! a word boundary - { CHAR: B [ ] } ! a non-word boundary - { CHAR: A [ ] } ! the beginning of input - { CHAR: G [ ] } ! the end of the previous match - { CHAR: Z [ ] } ! the end of the input but for the - ! final terminator, if any - { CHAR: z [ ] } ! the end of the input - } case ; - -: handle-character-class ( char -- ) - { - { [ \ escaped-character get ] [ make-escaped \ escaped-character off ] } - { [ dup CHAR: ] = ] [ \ character-class off ] } - { [ t ] [ addto-character-class ] } - } cond ; - -: parse-token ( char -- ) - { - ! { [ \ character-class get ] [ ] } - ! { [ \ escaped-character get ] [ ] } - ! { [ dup CHAR: [ = ] [ \ character-class on ] } - ! { [ dup CHAR: \\ = ] [ drop \ escaped-character on ] } - - ! { [ dup CHAR: ^ = ] [ ] } - ! { [ dup CHAR: $ = ] [ ] } - ! { [ dup CHAR: { = ] [ ] } - ! { [ dup CHAR: } = ] [ ] } - - { [ dup CHAR: | = ] - [ drop maybe-concat-loop alternation push-stack ] } - { [ dup CHAR: * = ] - [ drop apply-kleene-closure ] } - { [ dup CHAR: + = ] - [ drop apply-plus-closure ] } - { [ dup CHAR: ? = ] - [ drop apply-question-closure ] } - - { [ dup CHAR: ( = ] - [ drop inc-paren-count lparen push-stack ] } - { [ dup CHAR: ) = ] - [ - drop dec-paren-count lparen apply-til-last - stack get push-all - ] } ! apply - - - { [ dup bot = ] [ push-stack ] } - { [ dup eot = ] - [ - drop unbalanced-paren? maybe-concat-loop bot apply-til-last - dup length 1 = [ - pop real start-state t set-trans-table - ] [ - drop - ] if - ] } - { [ t ] [ create-nontoken-nfa ] } - } cond ; - -: cut-at-index ( i string ch -- i subseq ) - -rot [ index* ] 2keep >r >r [ 1+ ] keep r> swap r> subseq ; - -: parse-character-class ( index string -- new-index obj ) - 2dup >r 1+ r> nth CHAR: ] = [ >r 1+ r> ] when - cut-at-index ; - -: (parse-regexp) ( str -- ) - dup length [ - 2dup swap character-class get [ - parse-character-class - "CHARACTER CLASS: " write . - character-class off - nip ! adjust index - ] [ - nth parse-token - ] if - ] repeat ; - -: parse-regexp ( str -- ) - bot parse-token - ! [ "parsing: " write dup ch>string . parse-token ] each - [ parse-token ] each - ! (parse-regexp) - eot parse-token ; - -: push-all-diff ( seq seq -- diff ) - [ swap seq-diff ] 2keep push-all ; - -: prune-sort ( vec -- vec ) - prune natural-sort >vector ; - -SYMBOL: ttable -SYMBOL: transition -SYMBOL: check-list -SYMBOL: initial-check-list -SYMBOL: result - -: init-find ( data state table -- ) - ttable set - dup sequence? [ clone >vector ] [ V{ } clone [ push ] keep ] if - [ check-list set ] keep clone initial-check-list set - V{ } clone result set - transition set ; - -: (find-next-state) ( -- ) - check-list get [ - [ - ttable get get-row transition get swap at* - [ dup sequence? [ % ] [ , ] if ] [ drop ] if - ] each - ] { } make - result get push-all-diff - check-list set - result get prune-sort result set ; - -: (find-next-state-recursive) ( -- ) - check-list get empty? [ (find-next-state) (find-next-state-recursive) ] unless ; - -: find-epsilon-closure ( state table -- vec ) - eps -rot init-find - (find-next-state-recursive) result get initial-check-list get append natural-sort ; - -: find-next-state ( data state table -- vec ) - find-epsilon-closure check-list set - V{ } clone result set transition set - (find-next-state) result get ttable get find-epsilon-closure ; - -: filter-cols ( vec -- vec ) - #! remove info columns state-state, eps, final - clone start-state over delete-at eps over delete-at - final-state over delete-at ; - -SYMBOL: old-table -SYMBOL: new-table -SYMBOL: todo-states -SYMBOL: transitions - -: init-nfa>dfa ( table -- ) - new-table set - [ table-columns clone filter-cols keys transitions set ] keep - dup [ find-start-state ] keep find-epsilon-closure - V{ } clone [ push ] keep todo-states set - old-table set ; - -: create-row ( state table -- ) - 2dup row-exists? - [ 2drop ] [ [ add-row ] 2keep drop todo-states get push ] if ; - -: (nfa>dfa) ( -- ) - todo-states get dup empty? [ - pop transitions get [ - 2dup swap old-table get find-next-state - dup empty? [ - 3drop - ] [ - dup new-table get create-row - new-table get set-value - ] if - ] each-with - ] unless* todo-states get empty? [ (nfa>dfa) ] unless ; - -: nfa>dfa ( table -- table ) - init-nfa>dfa - (nfa>dfa) - start-state old-table get find-start-state - new-table get set-table-prop - final-state old-table get find-final-state - new-table get [ set-table-prop ] keep ; - -SYMBOL: regexp -SYMBOL: text -SYMBOL: matches -SYMBOL: partial-matches -TUPLE: partial-match index row count ; -! a state is a vector -! state is a key in a hashtable. the value is a hashtable of transition states - -: save-partial-match ( index row -- ) - 1 dup partial-match-index - \ partial-matches get set-at ; - -: inc-partial-match ( partial-match -- ) - [ partial-match-count 1+ ] keep set-partial-match-count ; - -: check-final-state ( partial-match -- ) - dup partial-match-row regexp get final-state? [ - clone dup partial-match-index matches get set-at - ] [ - drop - ] if ; - -: check-trivial-match ( row regexp -- ) - dupd final-state? [ - >r 0 r> 0 - 0 matches get set-at - ] [ - drop - ] if ; - -: update-partial-match ( char partial-match -- ) - tuck partial-match-row regexp get get-row at* [ - over set-partial-match-row - inc-partial-match - ] [ - drop - partial-match-index partial-matches get delete-at - ] if ; - -: regexp-step ( index char start-state -- ) - ! check partial-matches - over \ partial-matches get - [ nip update-partial-match ] assoc-each-with - - ! check new match - at* [ - save-partial-match - ] [ - 2drop - ] if - partial-matches get values [ check-final-state ] each ; - -: regexp-match ( text regexp -- seq ) - #! text is the haystack - #! regexp is a table describing the needle - H{ } clone \ matches set - H{ } clone \ partial-matches set - dup regexp set - >r dup text set r> - [ find-start-state ] keep - 2dup check-trivial-match - get-row - swap [ length ] keep - [ pick regexp-step ] 2each drop - matches get values [ - [ partial-match-index ] keep - partial-match-count dupd + text get - ] map ; - -IN: regexp -MEMO: make-regexp ( str -- table ) - [ - regexp-init - parse-regexp - trans-table get nfa>dfa - ] with-scope ; - -! TODO: make compatible with -! http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html - -! Greedy -! Match the longest possible string, default -! a+ - -! Reluctant -! Match on shortest possible string -! / in vi does this (find next) -! a+? - -! Possessive -! Match only when the entire text string matches -! a++ diff --git a/unmaintained/regexp/tables.factor b/unmaintained/regexp/tables.factor deleted file mode 100644 index 76b27e1a03..0000000000 --- a/unmaintained/regexp/tables.factor +++ /dev/null @@ -1,111 +0,0 @@ -USING: errors generic kernel namespaces -sequences vectors assocs ; -IN: tables - -TUPLE: table rows columns ; -TUPLE: entry row-key column-key value ; -GENERIC: add-value ( entry table -- ) - -C: table ( -- obj ) - H{ } clone over set-table-rows - H{ } clone over set-table-columns ; - -: (add-row) ( row-key table -- row ) - 2dup table-rows at* [ - 2nip - ] [ - drop H{ } clone [ -rot table-rows set-at ] keep - ] if ; - -: add-row ( row-key table -- ) - (add-row) drop ; - -: add-column ( column-key table -- ) - t -rot table-columns set-at ; - -: set-row ( row row-key table -- ) - table-rows set-at ; - -: lookup-row ( row-key table -- row/f ? ) - table-rows at* ; - -: row-exists? ( row-key table -- ? ) - lookup-row nip ; - -: lookup-column ( column-key table -- column/f ? ) - table-columns at* ; - -: column-exists? ( column-key table -- ? ) - lookup-column nip ; - -TUPLE: no-row key ; -TUPLE: no-column key ; - -: get-row ( row-key table -- row ) - dupd lookup-row [ - nip - ] [ - drop throw - ] if ; - -: get-column ( column-key table -- column ) - dupd lookup-column [ - nip - ] [ - drop throw - ] if ; - -: get-value ( row-key column-key table -- obj ? ) - swapd lookup-row [ - at* - ] [ - 2drop f f - ] if ; - -: (set-value) ( entry table -- value column-key row ) - [ >r entry-column-key r> add-column ] 2keep - dupd >r entry-row-key r> (add-row) - >r [ entry-value ] keep entry-column-key r> ; - -: set-value ( entry table -- ) - (set-value) set-at ; - -: swap-rows ( row-key1 row-key2 table -- ) - [ tuck get-row >r get-row r> ] 3keep - >r >r rot r> r> [ set-row ] keep set-row ; - -: member?* ( obj obj -- bool ) - 2dup = [ 2drop t ] [ member? ] if ; - -: find-by-column ( column-key data table -- seq ) - swapd 2dup lookup-column 2drop - [ - table-rows [ - pick swap at* [ - >r pick r> member?* [ , ] [ drop ] if - ] [ - 2drop - ] if - ] assoc-each - ] { } make 2nip ; - - -TUPLE: vector-table ; -C: vector-table ( -- obj ) - over set-delegate ; - -: add-hash-vector ( value key hash -- ) - 2dup at* [ - dup vector? [ - 2nip push - ] [ - V{ } clone [ push ] keep - -rot >r >r [ push ] keep r> r> set-at - ] if - ] [ - drop set-at - ] if ; - -M: vector-table add-value ( entry table -- ) - (set-value) add-hash-vector ; - diff --git a/unmaintained/regexp/test/regexp.factor b/unmaintained/regexp/test/regexp.factor deleted file mode 100644 index 36c627c9cf..0000000000 --- a/unmaintained/regexp/test/regexp.factor +++ /dev/null @@ -1,30 +0,0 @@ -USING: kernel sequences namespaces errors io math tables arrays generic hashtables vectors strings parser ; -USING: prettyprint test ; -USING: regexp-internals regexp ; - -[ "dog" ] [ "dog" "cat|dog" make-regexp regexp-match first >string ] unit-test -[ "cat" ] [ "cat" "cat|dog" make-regexp regexp-match first >string ] unit-test -[ "a" ] [ "a" "a|b|c" make-regexp regexp-match first >string ] unit-test -[ "" ] [ "" "a*" make-regexp regexp-match first >string ] unit-test -[ "aaaa" ] [ "aaaa" "a*" make-regexp regexp-match first >string ] unit-test -[ "aaaa" ] [ "aaaa" "a+" make-regexp regexp-match first >string ] unit-test -[ t ] [ "" "a+" make-regexp regexp-match empty? ] unit-test -[ "cadog" ] [ "cadog" "ca(t|d)og" make-regexp regexp-match first >string ] unit-test -[ "catog" ] [ "catog" "ca(t|d)og" make-regexp regexp-match first >string ] unit-test -[ "cadog" ] [ "abcadoghi" "ca(t|d)og" make-regexp regexp-match first >string ] unit-test -[ t ] [ "abcatdoghi" "ca(t|d)og" make-regexp regexp-match empty? ] unit-test - -[ "abcdefghijklmnopqrstuvwxyz" ] [ "abcdefghijklmnopqrstuvwxyz" "a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+" make-regexp regexp-match first >string ] unit-test -[ "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz" ] [ "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz" "a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+" make-regexp regexp-match first >string ] unit-test -[ t ] [ "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyy" "a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+" make-regexp regexp-match empty? ] unit-test -[ "abcdefghijklmnopqrstuvwxyz" ] [ "abcdefghijklmnopqrstuvwxyz" "a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*" make-regexp regexp-match first >string ] unit-test -[ "" ] [ "" "a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*" make-regexp regexp-match first >string ] unit-test -[ "az" ] [ "az" "a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*" make-regexp regexp-match first >string ] unit-test - -[ t ] [ "abc" "a?b?c?" make-regexp regexp-match length 3 = ] unit-test -[ "ac" ] [ "ac" "a?b?c?" make-regexp regexp-match first >string ] unit-test -[ "" ] [ "" "a?b?c?" make-regexp regexp-match first >string ] unit-test -[ t ] [ "aabc" "a?b?c?" make-regexp regexp-match length 4 = ] unit-test -[ "abbbccdefefffeffe" ] [ "abbbccdefefffeffe" "(a?b*c+d(e|f)*)+" make-regexp regexp-match first >string ] unit-test -[ t ] [ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" make-regexp regexp-match length 29 = ] unit-test - diff --git a/unmaintained/regexp/test/tables.factor b/unmaintained/regexp/test/tables.factor deleted file mode 100644 index 4ce339afad..0000000000 --- a/unmaintained/regexp/test/tables.factor +++ /dev/null @@ -1,49 +0,0 @@ -USING: kernel tables test ; - -: test-table -
- "a" "c" "z" over set-value - "a" "o" "y" over set-value - "a" "l" "x" over set-value - "b" "o" "y" over set-value - "b" "l" "x" over set-value - "b" "s" "u" over set-value ; - -[ - T{ table f - H{ - { "a" H{ { "l" "x" } { "c" "z" } { "o" "y" } } } - { "b" H{ { "l" "x" } { "s" "u" } { "o" "y" } } } - } - H{ { "l" t } { "s" t } { "c" t } { "o" t } } } -] [ test-table ] unit-test - -[ "x" t ] [ "a" "l" test-table get-value ] unit-test -[ "har" t ] [ - "a" "z" "har" test-table [ set-value ] keep - >r "a" "z" r> get-value -] unit-test - -: vector-test-table - - "a" "c" "z" over add-value - "a" "c" "r" over add-value - "a" "o" "y" over add-value - "a" "l" "x" over add-value - "b" "o" "y" over add-value - "b" "l" "x" over add-value - "b" "s" "u" over add-value ; - -[ -T{ vector-table - T{ table f - H{ - { "a" - H{ { "l" "x" } { "c" V{ "z" "r" } } { "o" "y" } } } - { "b" - H{ { "l" "x" } { "s" "u" } { "o" "y" } } } - } - H{ { "l" t } { "s" t } { "c" t } { "o" t } } } -} -] [ vector-test-table ] unit-test - diff --git a/extra/furnace/scaffold/crud-templates/edit.furnace b/unmaintained/scaffold/crud-templates/edit.furnace similarity index 100% rename from extra/furnace/scaffold/crud-templates/edit.furnace rename to unmaintained/scaffold/crud-templates/edit.furnace diff --git a/extra/furnace/scaffold/crud-templates/list.furnace b/unmaintained/scaffold/crud-templates/list.furnace similarity index 100% rename from extra/furnace/scaffold/crud-templates/list.furnace rename to unmaintained/scaffold/crud-templates/list.furnace diff --git a/extra/furnace/scaffold/crud-templates/show.furnace b/unmaintained/scaffold/crud-templates/show.furnace similarity index 100% rename from extra/furnace/scaffold/crud-templates/show.furnace rename to unmaintained/scaffold/crud-templates/show.furnace diff --git a/extra/furnace/scaffold/scaffold.factor b/unmaintained/scaffold/scaffold.factor similarity index 97% rename from extra/furnace/scaffold/scaffold.factor rename to unmaintained/scaffold/scaffold.factor index f0c2850ab5..e74374c245 100644 --- a/extra/furnace/scaffold/scaffold.factor +++ b/unmaintained/scaffold/scaffold.factor @@ -2,7 +2,7 @@ USING: http.server help.markup help.syntax kernel prettyprint sequences parser namespaces words classes math tuples.private quotations arrays strings ; -IN: furnace +IN: furnace.scaffold TUPLE: furnace-model model ; C: furnace-model @@ -40,6 +40,11 @@ HELP: crud-lookup* { $values { "string" string } { "class" class } { "tuple" tuple } } "A CRUD utility function - same as crud-lookup, but always returns a tuple of the given class. When the lookup fails, returns a tuple of the given class with all slots set to f." ; +: render-page ( model template title -- ) + [ + [ render-component ] simple-html-document + ] serve-html ; + : crud-page ( model template title -- ) [ "libs/furnace/crud-templates" template-path set render-page ] with-scope ; diff --git a/vm/Config.macosx.x86.64 b/vm/Config.macosx.x86.64 new file mode 100644 index 0000000000..e2063c4a75 --- /dev/null +++ b/vm/Config.macosx.x86.64 @@ -0,0 +1,3 @@ +include vm/Config.macosx +include vm/Config.x86.64 +CFLAGS += -arch x86_64 diff --git a/vm/Config.windows.nt b/vm/Config.windows.nt new file mode 100644 index 0000000000..c712c7d053 --- /dev/null +++ b/vm/Config.windows.nt @@ -0,0 +1,8 @@ +LIBS = -lm +EXE_SUFFIX=-nt +DLL_SUFFIX=-nt +PLAF_DLL_OBJS += vm/os-windows-nt.o +PLAF_EXE_OBJS += vm/resources.o +PLAF_EXE_OBJS += vm/main-windows-nt.o +#CFLAGS += -mwindows +include vm/Config.windows diff --git a/vm/Config.windows.nt.x86.32 b/vm/Config.windows.nt.x86.32 index adc69b1e27..9a020a7bc1 100644 --- a/vm/Config.windows.nt.x86.32 +++ b/vm/Config.windows.nt.x86.32 @@ -1,7 +1,3 @@ -LIBS = -lm -EXE_SUFFIX=-nt -DLL_SUFFIX=-nt -PLAF_DLL_OBJS += vm/os-windows-nt.o -PLAF_EXE_OBJS += vm/resources.o -PLAF_EXE_OBJS += vm/main-windows-nt.o -include vm/Config.x86.32 vm/Config.windows +WINDRES=windres +include vm/Config.windows.nt +include vm/Config.x86.32 diff --git a/vm/Config.windows.nt.x86.64 b/vm/Config.windows.nt.x86.64 new file mode 100644 index 0000000000..1c30e64096 --- /dev/null +++ b/vm/Config.windows.nt.x86.64 @@ -0,0 +1,4 @@ +CC=/k/target/bin/x86_64-pc-mingw32-gcc +include vm/Config.windows.nt +include vm/Config.x86.64 +WINDRES = /k/target/bin/windres diff --git a/vm/debug.c b/vm/debug.c index 55ffcadca6..2692bdf59c 100755 --- a/vm/debug.c +++ b/vm/debug.c @@ -213,6 +213,7 @@ void dump_objects(F_FIXNUM type) void factorbug(void) { reset_stdio(); + open_console(); printf("Starting low level debugger...\n"); printf(" Basic commands:\n"); diff --git a/vm/factor.c b/vm/factor.c index 690f5d490c..8719416b72 100755 --- a/vm/factor.c +++ b/vm/factor.c @@ -26,6 +26,7 @@ void default_parameters(F_PARAMETERS *p) p->secure_gc = false; p->fep = false; + p->console = false; } /* Get things started */ @@ -110,6 +111,8 @@ void init_factor_from_args(F_CHAR *image, int argc, F_CHAR **argv, bool embedded p.fep = true; else if(STRNCMP(argv[i],STR_FORMAT("-i="),3) == 0) p.image = argv[i] + 3; + else if(STRCMP(argv[i],STR_FORMAT("-console")) == 0) + p.console = true ; } init_factor(&p); @@ -135,6 +138,9 @@ void init_factor_from_args(F_CHAR *image, int argc, F_CHAR **argv, bool embedded nest_stacks(); + if(p.console) + open_console(); + if(p.fep) factorbug(); diff --git a/vm/image.h b/vm/image.h index 52b666254e..3774263031 100755 --- a/vm/image.h +++ b/vm/image.h @@ -32,6 +32,7 @@ typedef struct { CELL code_size; bool secure_gc; bool fep; + bool console; } F_PARAMETERS; void load_image(F_PARAMETERS *p); diff --git a/vm/os-linux-x86-64.h b/vm/os-linux-x86-64.h index 2bbae86f6e..911c2f1749 100644 --- a/vm/os-linux-x86-64.h +++ b/vm/os-linux-x86-64.h @@ -1,2 +1,10 @@ +#include + +INLINE void *ucontext_stack_pointer(void *uap) +{ + ucontext_t *ucontext = (ucontext_t *)uap; + return (void *)ucontext->uc_mcontext.gregs[15]; +} + #define UAP_PROGRAM_COUNTER(ucontext) \ (((ucontext_t *)(ucontext))->uc_mcontext.gregs[16]) diff --git a/vm/os-macosx-x86.64.h b/vm/os-macosx-x86.64.h new file mode 100644 index 0000000000..d2bb48c3fe --- /dev/null +++ b/vm/os-macosx-x86.64.h @@ -0,0 +1,35 @@ +/* Fault handler information. MacOSX version. +Copyright (C) 1993-1999, 2002-2003 Bruno Haible +Copyright (C) 2003 Paolo Bonzini + +Used under BSD license with permission from Paolo Bonzini and Bruno Haible, +2005-03-10: + +http://sourceforge.net/mailarchive/message.php?msg_name=200503102200.32002.bruno%40clisp.org + +Modified for Factor by Slava Pestov and Daniel Ehrenberg */ +#define MACH_EXC_STATE_TYPE x86_exception_state64_t +#define MACH_EXC_STATE_FLAVOR x86_EXCEPTION_STATE64 +#define MACH_EXC_STATE_COUNT x86_EXCEPTION_STATE64_COUNT +#define MACH_THREAD_STATE_TYPE x86_thread_state64_t +#define MACH_THREAD_STATE_FLAVOR x86_THREAD_STATE64 +#define MACH_THREAD_STATE_COUNT MACHINE_THREAD_STATE_COUNT + +#if __DARWIN_UNIX03 + #define MACH_EXC_STATE_FAULT(exc_state) (exc_state)->__faultvaddr + #define MACH_STACK_POINTER(thr_state) (thr_state)->__rsp + #define MACH_PROGRAM_COUNTER(thr_state) (thr_state)->__rip + #define UAP_PROGRAM_COUNTER(ucontext) \ + MACH_PROGRAM_COUNTER(&(((ucontext_t *)(ucontext))->uc_mcontext->__ss)) +#else + #define MACH_EXC_STATE_FAULT(exc_state) (exc_state)->faultvaddr + #define MACH_STACK_POINTER(thr_state) (thr_state)->rsp + #define MACH_PROGRAM_COUNTER(thr_state) (thr_state)->rip + #define UAP_PROGRAM_COUNTER(ucontext) \ + MACH_PROGRAM_COUNTER(&(((ucontext_t *)(ucontext))->uc_mcontext->ss)) +#endif + +INLINE CELL fix_stack_pointer(CELL sp) +{ + return ((sp + 8) & ~15) - 8; +} diff --git a/vm/os-unix.c b/vm/os-unix.c index 303c01491a..b33c879d88 100644 --- a/vm/os-unix.c +++ b/vm/os-unix.c @@ -219,6 +219,9 @@ static void sigaction_safe(int signum, const struct sigaction *act, struct sigac ret = sigaction(signum, act, oldact); } while(ret == -1 && errno == EINTR); + + if(ret == -1) + fatal_error("sigaction failed", 0); } void unix_init_signals(void) @@ -256,3 +259,5 @@ void reset_stdio(void) fcntl(0,F_SETFL,0); fcntl(1,F_SETFL,0); } + +void open_console(void) { } diff --git a/vm/os-unix.h b/vm/os-unix.h index cbce7de985..85f760b5aa 100755 --- a/vm/os-unix.h +++ b/vm/os-unix.h @@ -39,3 +39,4 @@ s64 current_millis(void); void sleep_millis(CELL msec); void reset_stdio(void); +void open_console(void); diff --git a/vm/os-windows-ce.c b/vm/os-windows-ce.c index 1465e0c89f..e68a6385ae 100755 --- a/vm/os-windows-ce.c +++ b/vm/os-windows-ce.c @@ -46,3 +46,5 @@ void c_to_factor_toplevel(CELL quot) { c_to_factor(quot); } + +void open_console(void) { } diff --git a/vm/os-windows-ce.h b/vm/os-windows-ce.h index 959de89634..f1d6df6f3d 100755 --- a/vm/os-windows-ce.h +++ b/vm/os-windows-ce.h @@ -24,3 +24,4 @@ char *getenv(char *name); s64 current_millis(void); void c_to_factor_toplevel(CELL quot); +void open_console(void); diff --git a/vm/os-windows-nt.c b/vm/os-windows-nt.c index baa0a06c4b..da54b794d1 100755 --- a/vm/os-windows-nt.c +++ b/vm/os-windows-nt.c @@ -10,9 +10,9 @@ s64 current_millis(void) DEFINE_PRIMITIVE(cwd) { - F_CHAR buf[MAX_PATH + 4]; + F_CHAR buf[MAX_UNICODE_PATH]; - if(!GetCurrentDirectory(MAX_PATH + 4, buf)) + if(!GetCurrentDirectory(MAX_UNICODE_PATH, buf)) io_error(); box_u16_string(buf); @@ -88,3 +88,17 @@ void c_to_factor_toplevel(CELL quot) c_to_factor(quot); RemoveVectoredExceptionHandler((void*)exception_handler); } + +void open_console(void) +{ + /* + // Do this: http://www.cygwin.com/ml/cygwin/2007-11/msg00432.html + if(console_open) + return; + + if(AttachConsole(ATTACH_PARENT_PROCESS) || AllocConsole()) + { + console_open = true; + } + */ +} diff --git a/vm/os-windows-nt.h b/vm/os-windows-nt.h index f7c56c129d..9e451f0301 100755 --- a/vm/os-windows-nt.h +++ b/vm/os-windows-nt.h @@ -18,3 +18,5 @@ typedef char F_SYMBOL; void c_to_factor_toplevel(CELL quot); long exception_handler(PEXCEPTION_POINTERS pe); +bool console_open; +void open_console(void); diff --git a/vm/os-windows.c b/vm/os-windows.c index aa0e0ed8c1..9d7bd85465 100755 --- a/vm/os-windows.c +++ b/vm/os-windows.c @@ -98,21 +98,22 @@ const F_CHAR *vm_executable_path(void) return safe_strdup(full_path); } -DEFINE_PRIMITIVE(stat) +void stat_not_found(void) { + dpush(F); + dpush(F); + dpush(F); + dpush(F); +} + +void find_file_stat(F_CHAR *path) +{ + // FindFirstFile is the only call that can stat c:\pagefile.sys WIN32_FIND_DATA st; HANDLE h; - F_CHAR *path = unbox_u16_string(); - if(INVALID_HANDLE_VALUE == (h = FindFirstFile( - path, - &st))) - { - dpush(F); - dpush(F); - dpush(F); - dpush(F); - } + if(INVALID_HANDLE_VALUE == (h = FindFirstFile(path, &st))) + stat_not_found(); else { box_boolean(st.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); @@ -129,6 +130,42 @@ DEFINE_PRIMITIVE(stat) } } +DEFINE_PRIMITIVE(stat) +{ + HANDLE h; + BY_HANDLE_FILE_INFORMATION bhfi; + + F_CHAR *path = unbox_u16_string(); + //wprintf(L"path = %s\n", path); + h = CreateFileW(path, + GENERIC_READ, + FILE_SHARE_READ, + NULL, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS, + NULL); + if(h == INVALID_HANDLE_VALUE) + { + find_file_stat(path); + return; + } + + if(!GetFileInformationByHandle(h, &bhfi)) + stat_not_found(); + else { + box_boolean(bhfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); + dpush(tag_fixnum(0)); + box_unsigned_8( + (u64)bhfi.nFileSizeLow | (u64)bhfi.nFileSizeHigh << 32); + u64 lo = bhfi.ftLastWriteTime.dwLowDateTime; + u64 hi = bhfi.ftLastWriteTime.dwHighDateTime; + u64 modTime = (hi << 32) + lo; + + box_unsigned_8((modTime - EPOCH_OFFSET) / 10000000); + } + CloseHandle(h); +} + DEFINE_PRIMITIVE(read_dir) { HANDLE dir; diff --git a/vm/platform.h b/vm/platform.h index f181c93e2c..a3b7350b69 100644 --- a/vm/platform.h +++ b/vm/platform.h @@ -30,6 +30,8 @@ #include "os-macosx-x86.32.h" #elif defined(FACTOR_PPC) #include "os-macosx-ppc.h" + #elif defined(FACTOR_AMD64) + #include "os-macosx-x86.64.h" #else #error "Unsupported Mac OS X flavor" #endif diff --git a/vm/quotations.c b/vm/quotations.c old mode 100644 new mode 100755 index 472ec76f1e..9d98fa7842 --- a/vm/quotations.c +++ b/vm/quotations.c @@ -192,9 +192,19 @@ XT quot_offset_to_pc(F_QUOTATION *quot, F_FIXNUM offset) DEFINE_PRIMITIVE(curry) { F_CURRY *curry = allot_object(CURRY_TYPE,sizeof(F_CURRY)); - curry->quot = dpop(); - curry->obj = dpop(); - dpush(tag_object(curry)); + + switch(type_of(dpeek())) + { + case QUOTATION_TYPE: + case CURRY_TYPE: + curry->quot = dpop(); + curry->obj = dpop(); + dpush(tag_object(curry)); + break; + default: + type_error(QUOTATION_TYPE,dpeek()); + break; + } } void uncurry(CELL obj)