factor/extra/peg/peg-tests.factor

96 lines
2.2 KiB
Factor
Raw Normal View History

2007-11-19 22:36:38 -05:00
! Copyright (C) 2007 Chris Double.
! See http://factorcode.org/license.txt for BSD license.
!
2007-11-20 21:01:44 -05:00
USING: kernel tools.test strings namespaces arrays sequences peg ;
2007-11-19 22:36:38 -05:00
IN: temporary
{ 0 1 2 } [
0 next-id set-global get-next-id get-next-id get-next-id
] unit-test
{ "0123456789" } [
"0123456789" 0 <parse-state> 0 state-tail parse-state-input >string
] unit-test
{ "56789" } [
"0123456789" 5 <parse-state> 0 state-tail parse-state-input >string
] unit-test
{ "789" } [
"0123456789" 5 <parse-state> 2 state-tail parse-state-input >string
] unit-test
{ f } [
"endbegin" 0 <parse-state> "begin" token parse
] unit-test
2007-11-20 21:31:23 -05:00
{ "begin" "end" } [
2007-11-19 22:36:38 -05:00
"beginend" 0 <parse-state> "begin" token parse
2007-11-20 21:31:23 -05:00
{ parse-result-ast parse-result-remaining } get-slots
2007-11-19 22:36:38 -05:00
parse-state-input >string
] unit-test
{ f } [
"" 0 <parse-state> CHAR: a CHAR: z range parse
] unit-test
{ f } [
"1bcd" 0 <parse-state> CHAR: a CHAR: z range parse
] unit-test
{ CHAR: a } [
"abcd" 0 <parse-state> CHAR: a CHAR: z range parse parse-result-ast
] unit-test
{ CHAR: z } [
"zbcd" 0 <parse-state> CHAR: a CHAR: z range parse parse-result-ast
] unit-test
{ f } [
"bad" 0 <parse-state> "a" token "b" token 2array seq parse
] unit-test
2007-11-20 21:31:23 -05:00
{ V{ "g" "o" } } [
"good" 0 <parse-state> "g" token "o" token 2array seq parse parse-result-ast
2007-11-19 22:36:38 -05:00
] unit-test
2007-11-19 23:58:11 -05:00
{ "a" } [
2007-11-20 21:31:23 -05:00
"abcd" 0 <parse-state> "a" token "b" token 2array choice parse parse-result-ast
2007-11-19 23:58:11 -05:00
] unit-test
{ "b" } [
2007-11-20 21:31:23 -05:00
"bbcd" 0 <parse-state> "a" token "b" token 2array choice parse parse-result-ast
2007-11-19 23:58:11 -05:00
] unit-test
{ f } [
"cbcd" 0 <parse-state> "a" token "b" token 2array choice parse
] unit-test
{ f } [
"" 0 <parse-state> "a" token "b" token 2array choice parse
2007-11-20 21:01:44 -05:00
] unit-test
{ 0 } [
"" 0 <parse-state> "a" token repeat0 parse parse-result-ast length
] unit-test
{ 0 } [
"b" 0 <parse-state> "a" token repeat0 parse parse-result-ast length
] unit-test
2007-11-20 21:31:23 -05:00
{ V{ "a" "a" "a" } } [
"aaab" 0 <parse-state> "a" token repeat0 parse parse-result-ast
2007-11-20 21:01:44 -05:00
] unit-test
{ f } [
"" 0 <parse-state> "a" token repeat1 parse
] unit-test
{ f } [
"b" 0 <parse-state> "a" token repeat1 parse
] unit-test
2007-11-20 21:31:23 -05:00
{ V{ "a" "a" "a" } } [
"aaab" 0 <parse-state> "a" token repeat1 parse parse-result-ast
2007-11-20 21:01:44 -05:00
] unit-test