diff options
author | Olivier Chafik <ochafik@users.noreply.github.com> | 2024-06-11 01:00:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-11 01:00:30 +0100 |
commit | 396b18dfec2c56846e80362db70af09b9e1d70ba (patch) | |
tree | 2081089863e80e93a906424c8fa15ac4e3fa091f /tests | |
parent | 864a99e7a01d9422d2f55618dbe62c8099a2175c (diff) |
`json`: document schema conversion in GBNF readme, align manual grammar examples & converters (#7841)
* json: fix char pattern in grammar converters
* json: prevent number precision & whitespace runaways in example grammars
* json: add doc to grammar readme
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test-json-schema-to-grammar.cpp | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/tests/test-json-schema-to-grammar.cpp b/tests/test-json-schema-to-grammar.cpp index 052c0807..bea876bd 100755 --- a/tests/test-json-schema-to-grammar.cpp +++ b/tests/test-json-schema-to-grammar.cpp @@ -105,7 +105,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase R"""( array ::= "[" space ( value ("," space value)* )? "]" space boolean ::= ("true" | "false") space - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} null ::= "null" space @@ -152,7 +152,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase "type": "string" })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "\"" char* "\"" space space ::= " "? )""" @@ -166,7 +166,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase "minLength": 1 })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "\"" char+ "\"" space space ::= " "? )""" @@ -180,7 +180,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase "minLength": 3 })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "\"" char{3,} "\"" space space ::= " "? )""" @@ -194,7 +194,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase "maxLength": 3 })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "\"" char{0,3} "\"" space space ::= " "? )""" @@ -209,7 +209,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase "maxLength": 4 })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "\"" char{1,4} "\"" space space ::= " "? )""" @@ -283,7 +283,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase "prefixItems": [{ "type": "string" }] })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "[" space string "]" space space ::= " "? string ::= "\"" char* "\"" space @@ -297,7 +297,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase "prefixItems": [{ "type": "string" }, { "type": "number" }] })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} number ::= ("-"? integral-part) ("." decimal-part)? ([eE] [-+]? integral-part)? space @@ -466,7 +466,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase a-kv ::= "\"a\"" space ":" space string b-kv ::= "\"b\"" space ":" space string c-kv ::= "\"c\"" space ":" space string - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "{" space b-kv "," space c-kv "," space a-kv "}" space space ::= " "? string ::= "\"" char* "\"" space @@ -486,7 +486,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase })""", R"""( a-kv ::= "\"a\"" space ":" space string - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "{" space (a-kv )? "}" space space ::= " "? string ::= "\"" char* "\"" space @@ -510,7 +510,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase b-kv ::= "\"b\"" space ":" space string b-rest ::= ( "," space c-kv )? c-kv ::= "\"c\"" space ":" space string - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) root ::= "{" space (a-kv a-rest | b-kv b-rest | c-kv )? "}" space space ::= " "? string ::= "\"" char* "\"" space @@ -534,7 +534,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase a-kv ::= "\"a\"" space ":" space string b-kv ::= "\"b\"" space ":" space string c-kv ::= "\"c\"" space ":" space string - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) d-kv ::= "\"d\"" space ":" space string d-rest ::= ( "," space c-kv )? root ::= "{" space b-kv "," space a-kv ( "," space ( d-kv d-rest | c-kv ) )? "}" space @@ -554,7 +554,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase additional-kv ::= string ":" space additional-value additional-kvs ::= additional-kv ( "," space additional-kv )* additional-value ::= "[" space (number ("," space number)*)? "]" space - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} number ::= ("-"? integral-part) ("." decimal-part)? ([eE] [-+]? integral-part)? space @@ -574,7 +574,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase R"""( array ::= "[" space ( value ("," space value)* )? "]" space boolean ::= ("true" | "false") space - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} null ::= "null" space @@ -596,7 +596,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase R"""( array ::= "[" space ( value ("," space value)* )? "]" space boolean ::= ("true" | "false") space - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} null ::= "null" space @@ -637,7 +637,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase a-kv ::= "\"a\"" space ":" space number additional-kv ::= string ":" space string additional-kvs ::= additional-kv ( "," space additional-kv )* - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} number ::= ("-"? integral-part) ("." decimal-part)? ([eE] [-+]? integral-part)? space @@ -662,7 +662,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase a-rest ::= additional-kvs additional-kv ::= string ":" space number additional-kvs ::= additional-kv ( "," space additional-kv )* - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} number ::= ("-"? integral-part) ("." decimal-part)? ([eE] [-+]? integral-part)? space @@ -690,7 +690,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase additional-kvs ::= additional-kv ( "," space additional-kv )* b-kv ::= "\"b\"" space ":" space number b-rest ::= additional-kvs - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) decimal-part ::= [0-9]{1,16} integral-part ::= [0] | [1-9] [0-9]{0,15} number ::= ("-"? integral-part) ("." decimal-part)? ([eE] [-+]? integral-part)? space @@ -721,7 +721,7 @@ static void test_all(const std::string & lang, std::function<void(const TestCase } })""", R"""( - char ::= [^"\\] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F]{4}) + char ::= [^"\\\x7F\x00-\x1F] | [\\] (["\\bfnrt] | "u" [0-9a-fA-F]{4}) foo ::= "{" space foo-a-kv "}" space foo-a-kv ::= "\"a\"" space ":" space string root ::= foo |