Commit Graph

241 Commits

Author SHA1 Message Date
ToruNiina
4e57c5f5df improve error message for invalid line
like a = 12 = true, newline is expected after 12
2018-12-10 21:43:02 +09:00
ToruNiina
ff83a6a477 remove redundant part of error messages 2018-12-10 21:42:56 +09:00
ToruNiina
3f991c4759 improve power of get 2018-12-10 15:58:20 +09:00
ToruNiina
bf2158ae98 add map from exact toml type -> toml::value_t 2018-12-10 15:57:44 +09:00
ToruNiina
ff19c9f492 add corresponding region to each value 2018-12-10 15:57:17 +09:00
ToruNiina
28ba2713ee fix initialization of region in value 2018-12-10 15:25:27 +09:00
ToruNiina
129ea81f66 remove redundant words in error message 2018-12-10 15:23:46 +09:00
ToruNiina
8dfe187d59 add a function to show a better error message 2018-12-10 15:06:28 +09:00
ToruNiina
8078c719fe remove old code 2018-12-10 00:15:41 +09:00
ToruNiina
8e18aa9b16 add toml::parse 2018-12-10 00:14:46 +09:00
ToruNiina
ed155a5040 remove help msgs in parse_value
because the error message becomes too long
2018-12-09 21:54:47 +09:00
ToruNiina
cf03a08632 re-write parser using result and new value
wip.
2018-12-09 19:32:30 +09:00
ToruNiina
34c3d33936 use vector instead of initializer_list 2018-12-09 19:30:46 +09:00
ToruNiina
c04b75b2e3 consider LF in the range when writing error msg 2018-12-09 18:08:04 +09:00
ToruNiina
e24039f4ef update toml::value and improve test_value
- enable to store new types
- store source string if possible
- refactoring
2018-12-09 18:03:20 +09:00
ToruNiina
dc8ccdc458 construct much more tmp variables
std::chrono::seconds -= std::chrono::milliseconds cannot be done bc
it represents the duration as integer value and milliseconds are less
than seconds. it causes compilation error when we pass a duration to
toml::local_time. to avoid this, we need to type-cast the values to
smaller duration, like sec -> msec
2018-12-09 18:00:46 +09:00
ToruNiina
2696e4e6ba split storage from value
also, quit inheritance in storage class
2018-12-09 16:41:45 +09:00
ToruNiina
d1d5ca6bf8 add toml::string to have basic/literal flag 2018-12-09 16:40:57 +09:00
ToruNiina
80eafd1424 add datetime variants and rearrange type-related functions 2018-12-09 16:34:47 +09:00
ToruNiina
9fadf71a10 add constructor from duration to local_time 2018-12-09 16:27:47 +09:00
ToruNiina
ac3025d92f change default return value of region_base 2018-12-09 13:39:13 +09:00
ToruNiina
b0e7efa1e0 make some constructors explicit 2018-12-09 13:38:57 +09:00
ToruNiina
84676eab0b improve quality of error message 2018-12-09 13:05:09 +09:00
ToruNiina
2b3a4d49a5 add region_base to contain it in toml::value
to make toml::get and toml::value::cast return better error messages
2018-12-09 12:41:38 +09:00
ToruNiina
f834e0d142 cosmetic: sort value_t in types.h 2018-12-09 11:06:19 +09:00
ToruNiina
a1aa780a60 Merge branch 'toml-v050' of github.com 2018-12-09 11:05:26 +09:00
ToruNiina
48f3b73b91 add ctor(local_datetime, time_offset) to offset_datetime 2018-12-09 00:11:07 +09:00
ToruNiina
04854f9d21 stop having begin/end iterator in region/location 2018-12-09 00:00:15 +09:00
ToruNiina
8388664fc6 add map_err_or_else to result 2018-12-08 22:44:15 +09:00
ToruNiina
bb215836dc add missing header files 2018-12-08 20:39:37 +09:00
ToruNiina
2b2a05148e add from_string to utility 2018-12-08 20:21:15 +09:00
ToruNiina
66807d19d1 add specializations 2018-12-08 19:40:58 +09:00
ToruNiina
25789d1450 set Datetime as offset_datetime
prepare for TOML v0.5.0
2018-12-08 19:23:09 +09:00
ToruNiina
366f72bbdd Merge branch 'datetime' into combinator 2018-12-08 19:06:19 +09:00
ToruNiina
3ef33c1637 change almost everything about datetime 2018-12-08 19:04:41 +09:00
ToruNiina
e05d0bdb84 stop using distance(next(iter), last)
under some condition, it causes serious error.
2018-12-06 20:13:06 +09:00
ToruNiina
5dbbc1fb1a add escaped newline to lexer for multiline string
to use it in parse_ml_basic_string
2018-12-06 19:53:49 +09:00
ToruNiina
b3b5682cc0 add message to bad_unwrap 2018-12-06 17:15:19 +09:00
ToruNiina
df314da751 change error message considering context
combinators are used with other parser-combinators. in such cases, empty
input means `not enough character`.
2018-12-06 17:03:57 +09:00
ToruNiina
3d1783e12a Merge 'types' into combinator 2018-12-06 16:06:25 +09:00
ToruNiina
f8aa604959 Merge branch 'result' into combinator
- fix some of the constructors of result
- add some utility member functions to boost
2018-12-06 12:57:58 +09:00
ToruNiina
e3f6805629 add conversion members to result 2018-12-06 12:47:14 +09:00
ToruNiina
1dddc6e26c add missing std::move for ctors 2018-12-06 12:46:32 +09:00
ToruNiina
5e052237ba add alias for snake_case types 2018-12-06 01:20:11 +09:00
ToruNiina
a995bd515b Merge branch 'master' into combinator
split typedefs from value.hpp
2018-12-05 21:42:14 +09:00
ToruNiina
532457345c split type definitions from value.hpp 2018-12-05 20:55:25 +09:00
ToruNiina
aa05858de3 add source_name to location/region to show filename
now error message prints the filename
2018-12-05 16:55:31 +09:00
ToruNiina
2b3c8887d6 add comment to confusing implementation 2018-12-04 22:17:20 +09:00
ToruNiina
932a0646ce force clamping character code in [0,256) 2018-12-04 21:58:47 +09:00
ToruNiina
17f3d96766 add lexers 2018-12-04 20:29:59 +09:00
ToruNiina
1f564ec047 add combinators to scan content 2018-12-04 20:29:39 +09:00
ToruNiina
679e282e23 make variables in region/location read-only
to avoid modifying mistakenly
2018-12-03 00:10:26 +09:00
ToruNiina
59588e3a10 add static_assert and useful member funcs 2018-12-02 23:22:27 +09:00
ToruNiina
f83a8b450e add concat_to_string to utility for error messges 2018-12-02 23:05:15 +09:00
ToruNiina
8bf97d8a00 add constructors that receive range to region 2018-12-02 23:04:49 +09:00
ToruNiina
2ee8ffab21 add begin/end to region 2018-12-02 21:54:39 +09:00
ToruNiina
9c1bfbd5eb make region::source immutable 2018-12-02 21:03:08 +09:00
ToruNiina
c38b9b7dc7 add region and location to represent tokens
location is almost same as an Iterator, but having shared_ptr that points
the content. region is almost same as a range. by adding pointer to the
content source, utility function to show the error message can be
implemented easier. it is expected that this also makes easy to show
error messages after parse (e.g., in the case of bad_get)
2018-12-02 20:52:04 +09:00
ToruNiina
6c0a12148b add result<T, E> struct to handle errors
aiming later updates and refactoring of parsers
2018-12-02 18:01:37 +09:00
ToruNiina
f326334147 add definition of constexpr static value to avoid linker error 2018-07-08 18:58:38 +09:00
ToruNiina
b1a55b1331 simplify SFINAE in to_toml 2018-05-05 13:09:40 +09:00
ToruNiina
170b0d6b3f use constexpr value instead of call constexpr func directory 2018-05-05 12:06:06 +09:00
ToruNiina
433636a06f simplify the implementation of from_toml 2018-05-05 11:59:34 +09:00
ToruNiina
9555817901 add get<pair>, get<tuple> 2018-05-05 11:46:09 +09:00
ToruNiina
e54deacf1a simplify SFINAE expressions in toml::get 2018-05-05 11:42:11 +09:00
ToruNiina
f953a9cf23 add conjunction, disjunction, negation, index_seq 2018-05-05 11:37:18 +09:00
ToruNiina
117549bf70 change is_(map|container) and remove needless trait 2018-05-05 11:36:47 +09:00
ToruNiina
5aeb6f24df change exception type #8; iterator may be invalid 2017-12-24 11:02:32 +09:00
ToruNiina
3f1b431ee2 add missing inline specifier #7 2017-12-15 21:39:38 +09:00
ToruNiina
3083f65493 add get_or 2017-12-11 12:04:57 +09:00
ToruNiina
d1fd42ff7e output line number if error occured 2017-06-17 19:05:24 +09:00
Guillaume Fraux
57cc7f77c1 Allow to build with intel c++ compiler 2017-06-13 16:05:55 +02:00
ToruNiina
8a98ce8e35 permit tie with non-match types in from_toml 2017-05-19 14:44:05 +09:00
ToruNiina
80adda8184 open file with binary mode 2017-05-17 14:12:19 +09:00
ToruNiina
2c92142d5c restore parser and test 2017-05-17 14:07:34 +09:00
ToruNiina
d77ec7dc88 restore old parse function 2017-05-17 13:21:32 +09:00
ToruNiina
430940f766 fix typos 2017-05-17 13:12:21 +09:00
ToruNiina
1fc58095fa use wstring_convert (but is deprecated in c++17) 2017-05-17 13:08:24 +09:00
ToruNiina
5ffc51a99d experimentally use wchar and wstring in parser.hpp 2017-05-17 13:04:36 +09:00
ToruNiina
1265952b97 split parsing unicode file 2017-05-17 12:54:13 +09:00
ToruNiina
89c1094a69 set binary flag.. 2017-05-17 12:15:39 +09:00
ToruNiina
d65642ddf6 add locale settings 2017-05-17 11:45:27 +09:00
ToruNiina
9e9a5a7253 fix typo 2017-05-17 10:55:22 +09:00
ToruNiina
81b08c924b remove check from function not dereferencing iter 2017-05-17 08:06:17 +09:00
ToruNiina
74b618c412 fix is_chain_of_impl 2017-05-16 22:29:31 +09:00
ToruNiina
fe6a38737d add Iterator pointing to the end of a range 2017-05-16 22:12:32 +09:00
Luthaf
40da3f54d5 Fix missing include 2017-05-16 14:09:46 +02:00
Guillaume Fraux
612119fa1e Do not use the macro shortcut for not
It is not required by the standard
2017-05-15 14:05:54 +02:00
ToruNiina
eb9f4dce1e remove static and indent 2017-05-13 15:00:02 +09:00
ToruNiina
95e48744d1 impl format<string> 2017-05-13 11:28:11 +09:00
ToruNiina
f52b78010c fix array_of_table assignments 2017-05-12 22:28:49 +09:00
ToruNiina
1c26ffe3ae add parse() function 2017-05-12 20:49:47 +09:00
ToruNiina
fd58cc507f add parse_data 2017-05-11 19:36:12 +09:00
ToruNiina
6ab05a8594 change impl of parser of values 2017-05-11 15:09:11 +09:00
ToruNiina
855cbe5aff add operator= and ctor for result 2017-05-11 15:08:38 +09:00
ToruNiina
f5d301016f add parser impl for integer, float, boolean 2017-05-11 00:14:22 +09:00
ToruNiina
88e2c3fe48 change impl of parser: optional based 2017-05-10 23:56:09 +09:00
ToruNiina
acfc706e0c fix some small mistakes 2017-05-10 11:16:22 +09:00
ToruNiina
1392c2f3b9 add stream manipulators 2017-05-10 00:43:13 +09:00
ToruNiina
70f85ec818 add format 2017-05-09 22:09:03 +09:00
ToruNiina
c706a54121 add namespace specifier 2017-05-09 22:07:28 +09:00
ToruNiina
6878abdca1 define charactor type 2017-05-08 19:17:14 +09:00
ToruNiina
bf7461f7b4 fix parsing order of toml::value 2017-05-08 19:16:54 +09:00
ToruNiina
bdc7fbdf08 fix fundamental_type checking order 2017-05-08 19:16:26 +09:00
ToruNiina
29fe377438 add parser for tables 2017-05-08 19:08:49 +09:00
ToruNiina
d1814d3922 fix arguments 2017-05-08 19:08:30 +09:00
ToruNiina
bae25322f8 add acceptor for overall data 2017-05-08 19:07:50 +09:00
ToruNiina
567b69d050 fix orders of call 2017-05-08 19:07:29 +09:00
ToruNiina
98d1d88f60 add parse_array/inline table 2017-05-07 15:04:40 +09:00
ToruNiina
414fc4d0fa change key acceptor 2017-05-07 15:04:18 +09:00
ToruNiina
2d27c94506 fix missing semicolon 2017-05-07 14:09:13 +09:00
ToruNiina
77f59a2e94 split is_array to fixed_type_array and array_of_some_type 2017-05-07 14:08:42 +09:00
ToruNiina
7355c76ed0 add parse_string and parse_datetime 2017-05-07 13:51:25 +09:00
ToruNiina
a1218b266a add restriction to datetime offset size 2017-05-07 13:50:53 +09:00
ToruNiina
00e4c94766 add is_string and is_datetime 2017-05-07 12:29:54 +09:00
ToruNiina
726a70cd8f enable toml::from_toml to get static array (like std::array) 2017-05-07 10:40:47 +09:00
ToruNiina
3203d39dad enable toml::get to make static array (like std::array) 2017-05-07 10:40:17 +09:00
ToruNiina
58c12a69be add toml::resize func that resize only resizable container 2017-05-06 23:40:57 +09:00
ToruNiina
a506dfd3c1 add has_resize_method 2017-05-06 23:40:28 +09:00
ToruNiina
7c63bc438c remove needless typedef 2017-05-06 18:46:07 +09:00
ToruNiina
7dde4f3039 add parser of fundamental types 2017-05-06 18:44:19 +09:00
ToruNiina
bbb9388d3a add typedefs to basic_datetiem 2017-05-06 18:43:55 +09:00
ToruNiina
864840d11c add table definition acceptor 2017-05-05 19:33:45 +09:00
ToruNiina
e35e620812 add acceptor for array and inline table 2017-05-05 18:54:09 +09:00
ToruNiina
9a627b44fb add some test 2017-05-05 17:17:03 +09:00
ToruNiina
50d00a840f add acceptors for toml values 2017-05-05 16:48:54 +09:00
ToruNiina
3e016be668 add simple acceptors 2017-05-05 10:54:47 +09:00
ToruNiina
833c69628a fix datetime::ctor and stream operator for datetime 2017-04-21 15:54:48 +09:00
ToruNiina
78f25dd66d split files 2017-04-21 13:14:53 +09:00
ToruNiina
337a671f0c split datetime definition from toml.hpp 2017-04-21 12:56:39 +09:00
ToruNiina
7918894e6b add decl of basic_datetime 2017-04-20 22:07:43 +09:00
ToruNiina
f4afaa7509 add from_toml(std::tie, value) and test for it 2017-04-20 16:13:06 +09:00
ToruNiina
85ea77043a add missing default 2017-04-20 14:37:51 +09:00
ToruNiina
24b759b827 add operator for toml::value 2017-04-20 14:23:01 +09:00
ToruNiina
c6f38967df change message in exception 2017-04-20 13:30:01 +09:00
ToruNiina
1b2b422ea1 add from_toml and get function 2017-04-20 12:49:36 +09:00
ToruNiina
fd8753612a add to_toml(initializer_list) 2017-04-20 12:05:10 +09:00
ToruNiina
4a5f4a4bf5 add ctor for initializer_list 2017-04-20 10:44:11 +09:00
ToruNiina
df3602f347 add to_toml func 2017-04-20 00:13:58 +09:00
ToruNiina
34b0176083 remove is_castable 2017-04-19 23:10:29 +09:00
ToruNiina
0260a13f1c make tests/ and toml/ dir and move codes 2017-04-19 22:47:24 +09:00