Riyyi
a818c4489c
Util: Add missing getter to Object
2022-06-30 20:45:33 +02:00
Riyyi
8800ff4f7a
Util: Move literal validation logic to Parser
2022-06-30 20:45:33 +02:00
Riyyi
6161d577c6
Util: Change Object map unused value to uint8_t
2022-06-30 20:45:33 +02:00
Riyyi
ddf0a2858b
Util: Move number validation logic to Parser
2022-06-30 20:45:26 +02:00
Riyyi
8c08b8a594
Util: Add error report to Lexer default case
2022-06-29 14:14:09 +02:00
Riyyi
4a7ed92519
Util: Add constructor Value(Type)
2022-06-28 16:25:19 +02:00
Riyyi
95e0ddf49a
Util: Fix return Value when an error has occurred
2022-06-28 16:24:13 +02:00
Riyyi
fdeba07fd4
Util: Improve JSON parsing and add error messages
2022-06-28 16:24:13 +02:00
Riyyi
a14cd1e0a5
Util: Change Parser switch cases to if-else
2022-06-28 16:11:33 +02:00
Riyyi
061ed74d4f
Util: Check strings for double quotes in Lexer
2022-06-28 16:03:43 +02:00
Riyyi
8fb1a1a8e9
Util: Move vector<Token> ownership to Job class
2022-06-26 23:13:25 +02:00
Riyyi
bc01b34e58
Util: Calculate JSON line number before lexing
2022-06-25 14:05:45 +02:00
Riyyi
68bc95fdf1
Util: Implement new JSON Job class
2022-06-24 14:56:37 +02:00
Riyyi
13d020a351
Util: Add JSON Job class
...
This class holds the to parse string and has a helper for printing error
messages.
2022-06-24 14:46:21 +02:00
Riyyi
af678374bc
Util: Add emplace() to Json::Value
2022-06-23 14:54:29 +02:00
Riyyi
e5978310bf
Util: Fix Parser Json::Value construction
2022-06-23 14:19:06 +02:00
Riyyi
8bfae9b483
Util: Add more ways of accessing and creating Json::Value objects
2022-06-23 13:47:07 +02:00
Riyyi
9f7fe81ef6
Util: Add parse() and dump() to Json::Value
2022-06-23 13:45:07 +02:00
Riyyi
aad95de5fd
Util: Add a JSON stringifier
2022-06-22 14:23:29 +02:00
Riyyi
c385432bb0
Util: Add JSON accessors
2022-06-16 11:38:22 +02:00
Riyyi
5188d57d19
Util: Add JSON parser
2022-06-07 12:46:13 +02:00
Riyyi
0880d98fe0
Util: Add JSON Array/Object/Value types
2022-06-07 12:46:13 +02:00
Riyyi
1c676f9548
Util: Add JSON lexical analyzer
2022-06-07 12:46:13 +02:00
Riyyi
592ee124cb
Manager: Do not print debugging output on release mode
2022-01-31 20:42:17 +01:00
Riyyi
54dc515def
Util: Make file append const reference
2022-01-24 00:29:50 +01:00
Riyyi
a8e73063ee
Util: Add file create function
2022-01-24 00:29:50 +01:00
Riyyi
abbf764a3e
Manager: Add feature to selectively comment and uncomment
2022-01-24 00:29:50 +01:00
Riyyi
a04b5232f4
Util: Add delimiter support to the cut function
2021-10-02 12:14:14 +02:00
Riyyi
22082a515b
Util: Add convenience functions to save external process creation
2021-09-26 00:14:43 +02:00
Riyyi
418b453507
Util: Add file class
2021-09-25 16:55:37 +02:00
Riyyi
ee451671cd
Util: Fix reading of file descriptors longer than 4096 bytes
2021-09-25 11:29:49 +02:00
Riyyi
12dd000f0b
Util: Pass string by const reference
2021-09-19 11:46:19 +02:00
Riyyi
cc7252f94d
Util: Change operators to the evaluated order
2021-09-17 19:13:57 +02:00
Riyyi
26ceceeba5
Util: Change System to direct-list-initialization
2021-09-17 13:02:29 +02:00
Riyyi
9926849640
Util: Add class Shell for executing more basic OS shell commands
2021-09-17 12:52:36 +02:00
Riyyi
496e3e4c88
Util: Do not modify the output result
2021-09-17 01:41:21 +02:00
Riyyi
06367a05b8
Util: Add additional System operator support
2021-09-17 01:13:07 +02:00
Riyyi
2fca315557
Util: Add support for stdin and | piping
...
In order to accomplish this, the arguments have to be stored in the
object. Because () evaluation order is not defined in the spec.
Because arguments have to be stored now, char pointers no longer work
and std::strings are stored instead. Systems object also cant be
returned as a reference anymore because you need to be able to know
which is the lhs and which is the rhs in the operator overloads.
2021-09-16 18:11:47 +02:00
Riyyi
70ccdee8c2
Util: Add class System for executing OS shell commands
2021-09-15 12:22:04 +02:00
Riyyi
3efe74582f
Util: Add ArgParser missing argument error message
2021-09-13 19:54:59 +02:00
Riyyi
bb29919f02
Util: Simplify the logic of the long option parsing function
2021-09-13 17:42:34 +02:00
Riyyi
2ac6d24520
Util: Add type error messages to ArgParser option arguments
2021-09-13 16:19:49 +02:00
Riyyi
648c0f8c85
Util: Rename ArgParser error types
2021-09-13 15:22:12 +02:00
Riyyi
35e2c2de48
Util: Rename printOptionError -> printError
2021-09-13 15:17:37 +02:00
Riyyi
ffcde408e1
Util: Add invalid argument type error message to ArgParser
2021-09-13 12:04:44 +02:00
Riyyi
9c918c6555
Util: Add ArgParser unhandled argument error type and messages
2021-09-13 04:04:02 +02:00
Riyyi
a5d5d2ea6d
Util: Fix nullptr derefencing
...
In order to compare strings, the STL has to dereference the data
pointer. So check if its not a nullptr first.
2021-09-13 03:59:51 +02:00
Riyyi
7759821b13
Util: Fix string_view substring selection
...
Unlike std::basic_string::data() and string literals, data() may return
a pointer to a buffer that is not null-terminated. Therefore it is
typically a mistake to pass data() to a routine that takes just a const
CharT* and expects a null-terminated string.
The bug was calling string_view .data() after calling substr() that ends
before the null terminator, as it will just return the entire
string_view.
2021-09-13 00:58:51 +02:00
Riyyi
a217475d42
Util: Avoid assigning variable by passing to the initialization list
...
When an object of a class is created, the constructors of all member
variables are called consecutively in the order the variables are
declared, even if you don't explicitly write them to the initialization
list.
2021-09-13 00:20:38 +02:00
Riyyi
b6bfcbdc33
Util: Support for optional arguments in ArgParser
2021-09-09 15:14:17 +02:00