├── .gitattributes ├── .gitignore ├── LICENSE ├── Makefile ├── README ├── etc ├── Makefile ├── build.bat ├── main.c ├── run.sh ├── timer.h └── validate.sh ├── example.c ├── slex.h ├── test.c └── tests ├── backslashes-in-short-comment-near-end.c ├── backslashes-in-short-comment-near-end.c.err ├── backslashes-in-short-comment-near-end.c.out ├── backslashes-in-string-1.c ├── backslashes-in-string-1.c.err ├── backslashes-in-string-1.c.out ├── backslashes-in-string-2.c ├── backslashes-in-string-2.c.err ├── backslashes-in-string-2.c.out ├── backslashes-in-string-3.c ├── backslashes-in-string-3.c.err ├── backslashes-in-string-3.c.out ├── backslashes-in-string-4.c ├── backslashes-in-string-4.c.err ├── backslashes-in-string-4.c.out ├── chars.c ├── chars.c.err ├── chars.c.out ├── empty.c ├── empty.c.err ├── empty.c.out ├── float-at-the-end.c ├── float-at-the-end.c.err ├── float-at-the-end.c.out ├── float-near-end.c ├── float-near-end.c.err ├── float-near-end.c.out ├── invalid-chars-2.c ├── invalid-chars-2.c.err ├── invalid-chars-2.c.out ├── invalid-chars.c ├── invalid-chars.c.err ├── invalid-chars.c.out ├── long-comment-near-end-1.c ├── long-comment-near-end-1.c.err ├── long-comment-near-end-1.c.out ├── long-ident.c ├── long-ident.c.err ├── long-ident.c.out ├── long-ident2.c ├── long-ident2.c.err ├── long-ident2.c.out ├── mulit-line-comments.c ├── mulit-line-comments.c.err ├── mulit-line-comments.c.out ├── operators.c ├── operators.c.err ├── operators.c.out ├── short-comment-in-same-buf.c ├── short-comment-in-same-buf.c.err ├── short-comment-in-same-buf.c.out ├── short-comment-in-same-buf2.c ├── short-comment-in-same-buf2.c.err ├── short-comment-in-same-buf2.c.out ├── short-comment-near-end-1.c ├── short-comment-near-end-1.c.err ├── short-comment-near-end-1.c.out ├── small.c ├── small.c.err ├── small.c.out ├── stray-characters.c ├── stray-characters.c.err ├── stray-characters.c.out ├── stray-characters2.c ├── stray-characters2.c.err ├── stray-characters2.c.out ├── string-near-end-1.c ├── string-near-end-1.c.err ├── string-near-end-1.c.out ├── unescaped-newline-in-string.c ├── unescaped-newline-in-string.c.err ├── unescaped-newline-in-string.c.out ├── unterminated-long-comment-near-end-1.c ├── unterminated-long-comment-near-end-1.c.err ├── unterminated-long-comment-near-end-1.c.out ├── unterminated-long-comment-near-end-2.c ├── unterminated-long-comment-near-end-2.c.err ├── unterminated-long-comment-near-end-2.c.out ├── unterminated-short-comment-near-end-1.c ├── unterminated-short-comment-near-end-1.c.err ├── unterminated-short-comment-near-end-1.c.out ├── unterminated-short-comment-near-end-2.c ├── unterminated-short-comment-near-end-2.c.err ├── unterminated-short-comment-near-end-2.c.out ├── unterminated-string-near-end-1.c ├── unterminated-string-near-end-1.c.err ├── unterminated-string-near-end-1.c.out ├── unterminated-string-near-end-2.c ├── unterminated-string-near-end-2.c.err └── unterminated-string-near-end-2.c.out /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | tests/dos* 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/Makefile -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/README -------------------------------------------------------------------------------- /etc/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/etc/Makefile -------------------------------------------------------------------------------- /etc/build.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/etc/build.bat -------------------------------------------------------------------------------- /etc/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/etc/main.c -------------------------------------------------------------------------------- /etc/run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/etc/run.sh -------------------------------------------------------------------------------- /etc/timer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/etc/timer.h -------------------------------------------------------------------------------- /etc/validate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/etc/validate.sh -------------------------------------------------------------------------------- /example.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/example.c -------------------------------------------------------------------------------- /slex.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/slex.h -------------------------------------------------------------------------------- /test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/test.c -------------------------------------------------------------------------------- /tests/backslashes-in-short-comment-near-end.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-short-comment-near-end.c -------------------------------------------------------------------------------- /tests/backslashes-in-short-comment-near-end.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/backslashes-in-short-comment-near-end.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-short-comment-near-end.c.out -------------------------------------------------------------------------------- /tests/backslashes-in-string-1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-1.c -------------------------------------------------------------------------------- /tests/backslashes-in-string-1.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/backslashes-in-string-1.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-1.c.out -------------------------------------------------------------------------------- /tests/backslashes-in-string-2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-2.c -------------------------------------------------------------------------------- /tests/backslashes-in-string-2.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/backslashes-in-string-2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-2.c.out -------------------------------------------------------------------------------- /tests/backslashes-in-string-3.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-3.c -------------------------------------------------------------------------------- /tests/backslashes-in-string-3.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/backslashes-in-string-3.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-3.c.out -------------------------------------------------------------------------------- /tests/backslashes-in-string-4.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-4.c -------------------------------------------------------------------------------- /tests/backslashes-in-string-4.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-4.c.err -------------------------------------------------------------------------------- /tests/backslashes-in-string-4.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/backslashes-in-string-4.c.out -------------------------------------------------------------------------------- /tests/chars.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/chars.c -------------------------------------------------------------------------------- /tests/chars.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/chars.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/chars.c.out -------------------------------------------------------------------------------- /tests/empty.c: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/empty.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/empty.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/empty.c.out -------------------------------------------------------------------------------- /tests/float-at-the-end.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/float-at-the-end.c -------------------------------------------------------------------------------- /tests/float-at-the-end.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/float-at-the-end.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/float-at-the-end.c.out -------------------------------------------------------------------------------- /tests/float-near-end.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/float-near-end.c -------------------------------------------------------------------------------- /tests/float-near-end.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/float-near-end.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/float-near-end.c.out -------------------------------------------------------------------------------- /tests/invalid-chars-2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/invalid-chars-2.c -------------------------------------------------------------------------------- /tests/invalid-chars-2.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/invalid-chars-2.c.err -------------------------------------------------------------------------------- /tests/invalid-chars-2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/invalid-chars-2.c.out -------------------------------------------------------------------------------- /tests/invalid-chars.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/invalid-chars.c -------------------------------------------------------------------------------- /tests/invalid-chars.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/invalid-chars.c.err -------------------------------------------------------------------------------- /tests/invalid-chars.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/invalid-chars.c.out -------------------------------------------------------------------------------- /tests/long-comment-near-end-1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/long-comment-near-end-1.c -------------------------------------------------------------------------------- /tests/long-comment-near-end-1.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/long-comment-near-end-1.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/long-comment-near-end-1.c.out -------------------------------------------------------------------------------- /tests/long-ident.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/long-ident.c -------------------------------------------------------------------------------- /tests/long-ident.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/long-ident.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/long-ident.c.out -------------------------------------------------------------------------------- /tests/long-ident2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/long-ident2.c -------------------------------------------------------------------------------- /tests/long-ident2.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/long-ident2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/long-ident2.c.out -------------------------------------------------------------------------------- /tests/mulit-line-comments.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/mulit-line-comments.c -------------------------------------------------------------------------------- /tests/mulit-line-comments.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/mulit-line-comments.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/mulit-line-comments.c.out -------------------------------------------------------------------------------- /tests/operators.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/operators.c -------------------------------------------------------------------------------- /tests/operators.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/operators.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/operators.c.out -------------------------------------------------------------------------------- /tests/short-comment-in-same-buf.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/short-comment-in-same-buf.c -------------------------------------------------------------------------------- /tests/short-comment-in-same-buf.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/short-comment-in-same-buf.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/short-comment-in-same-buf.c.out -------------------------------------------------------------------------------- /tests/short-comment-in-same-buf2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/short-comment-in-same-buf2.c -------------------------------------------------------------------------------- /tests/short-comment-in-same-buf2.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/short-comment-in-same-buf2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/short-comment-in-same-buf2.c.out -------------------------------------------------------------------------------- /tests/short-comment-near-end-1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/short-comment-near-end-1.c -------------------------------------------------------------------------------- /tests/short-comment-near-end-1.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/short-comment-near-end-1.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/short-comment-near-end-1.c.out -------------------------------------------------------------------------------- /tests/small.c: -------------------------------------------------------------------------------- 1 | main(){} 2 | -------------------------------------------------------------------------------- /tests/small.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/small.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/small.c.out -------------------------------------------------------------------------------- /tests/stray-characters.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/stray-characters.c -------------------------------------------------------------------------------- /tests/stray-characters.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/stray-characters.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/stray-characters.c.out -------------------------------------------------------------------------------- /tests/stray-characters2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/stray-characters2.c -------------------------------------------------------------------------------- /tests/stray-characters2.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/stray-characters2.c.err -------------------------------------------------------------------------------- /tests/stray-characters2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/stray-characters2.c.out -------------------------------------------------------------------------------- /tests/string-near-end-1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/string-near-end-1.c -------------------------------------------------------------------------------- /tests/string-near-end-1.c.err: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/string-near-end-1.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/string-near-end-1.c.out -------------------------------------------------------------------------------- /tests/unescaped-newline-in-string.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unescaped-newline-in-string.c -------------------------------------------------------------------------------- /tests/unescaped-newline-in-string.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unescaped-newline-in-string.c.err -------------------------------------------------------------------------------- /tests/unescaped-newline-in-string.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unescaped-newline-in-string.c.out -------------------------------------------------------------------------------- /tests/unterminated-long-comment-near-end-1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-long-comment-near-end-1.c -------------------------------------------------------------------------------- /tests/unterminated-long-comment-near-end-1.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-long-comment-near-end-1.c.err -------------------------------------------------------------------------------- /tests/unterminated-long-comment-near-end-1.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-long-comment-near-end-1.c.out -------------------------------------------------------------------------------- /tests/unterminated-long-comment-near-end-2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-long-comment-near-end-2.c -------------------------------------------------------------------------------- /tests/unterminated-long-comment-near-end-2.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-long-comment-near-end-2.c.err -------------------------------------------------------------------------------- /tests/unterminated-long-comment-near-end-2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-long-comment-near-end-2.c.out -------------------------------------------------------------------------------- /tests/unterminated-short-comment-near-end-1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-short-comment-near-end-1.c -------------------------------------------------------------------------------- /tests/unterminated-short-comment-near-end-1.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-short-comment-near-end-1.c.err -------------------------------------------------------------------------------- /tests/unterminated-short-comment-near-end-1.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-short-comment-near-end-1.c.out -------------------------------------------------------------------------------- /tests/unterminated-short-comment-near-end-2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-short-comment-near-end-2.c -------------------------------------------------------------------------------- /tests/unterminated-short-comment-near-end-2.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-short-comment-near-end-2.c.err -------------------------------------------------------------------------------- /tests/unterminated-short-comment-near-end-2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-short-comment-near-end-2.c.out -------------------------------------------------------------------------------- /tests/unterminated-string-near-end-1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-string-near-end-1.c -------------------------------------------------------------------------------- /tests/unterminated-string-near-end-1.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-string-near-end-1.c.err -------------------------------------------------------------------------------- /tests/unterminated-string-near-end-1.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-string-near-end-1.c.out -------------------------------------------------------------------------------- /tests/unterminated-string-near-end-2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-string-near-end-2.c -------------------------------------------------------------------------------- /tests/unterminated-string-near-end-2.c.err: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-string-near-end-2.c.err -------------------------------------------------------------------------------- /tests/unterminated-string-near-end-2.c.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mateuszd6/simd-lexing/HEAD/tests/unterminated-string-near-end-2.c.out --------------------------------------------------------------------------------