Commit Graph

288 Commits

Author SHA1 Message Date
Username404 ca4e773fca
Add an alternative "make_task_noR" macro to avoid making unused references in Target.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 f33aec687a
Parse Calls/ParseTrees
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 b5ff43e109
Remove a useless constructor in the ParseTree class
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 63b3d727a6
Add a newline to the output in Target.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
Username404 ae2a661427
Remove the useless nested structure in StandardComponents::Class 2022-02-14 14:12:00 +01:00
Username404 905222f61d
Don't output an extra new line in the stringInterpolation() function 2022-02-14 14:12:00 +01:00
Username404 04923f03a5
Revert "Remove a useless #include directive in lex.hpp"
This reverts commit 41e33e30ba5faef9bd841777eae8701718bf8f69.
2022-02-14 14:12:00 +01:00
Username404 4f40fdaed7
Add a "=" operator and a default constructor to tok 2022-02-14 14:12:00 +01:00
Username404 070189e4a0
Check whether failbit or badbit are set in filefuncs.cpp 2022-02-14 14:12:00 +01:00
Username404 afeeaa260f
Actually flush cout before displaying errors 2022-02-14 14:12:00 +01:00
Username404 eb709e60b0
Remove the (now useless) parallel parameter in the getFileContent() function from filefuncs.cpp 2022-02-14 14:12:00 +01:00
Username404 96dd67b69a
Remove a useless #include directive in lex.hpp 2022-02-14 14:12:00 +01:00
Username404 cf4ea8a1f8
Improve the tok constructors 2022-02-14 14:12:00 +01:00
Username404 19f76c405c
Remove a useless constructor in lex.hpp 2022-02-14 14:12:00 +01:00
Username404-59 4253d5b922
Remove redundant usage of endl in main.cpp 2022-02-14 14:12:00 +01:00
Username404-59 18daa6495c
Use cerr instead of clog to make sure cout has been flushed before errors get displayed 2022-02-14 14:12:00 +01:00
Username404 a078fcd07b
Output errors to clog instead of cout 2022-02-14 14:12:00 +01:00
Username404 f90514ba4b
Remove the <optional> include directive in Target.hpp since it is now useless 2022-02-14 14:12:00 +01:00
Username404 5580b8f204
Remove redundant optional usage in Target.hpp 2022-02-14 14:12:00 +01:00
Username404 1082bcf58f
Allow "_" characters in identifiers 2022-02-14 14:12:00 +01:00
Username404 f44cceb11a
Ignore ';' characters 2022-02-14 14:12:00 +01:00
Username404 106a2f0be9
Remove a useless semicolon in Target.hpp 2022-02-14 14:12:00 +01:00
Username404 cb8e818956
Add shared tasks to Target.hpp 2022-02-14 14:12:00 +01:00
Username404 609567cfd1
Add a "unit" alias to main.cpp 2022-02-14 14:12:00 +01:00
Username404 b16f974eac
Use the system-wide locale 2022-02-14 14:12:00 +01:00
Username404 eb586a2899
Use generic_category::message() instead of strerror() in filefuncs.cpp 2022-02-14 14:12:00 +01:00
Username404-59 e720ff0f2d
Add an error message when an exception is thrown from the getFileContent() function & --parallel is not in use, and support MSVC 2022-02-14 14:12:00 +01:00
Username404-59 d2c0ef185f
Add the C++ standard to the getBuildInfo() function by adding two new macros: "token_expansion" and "make_string" 2022-02-14 14:12:00 +01:00
Username404-59 f266c35954
Use the size_t type instead of "unsigned long" for variables that hold the result of a find() call 2022-02-14 14:12:00 +01:00
Username404 158021cf68
Fix the indentation of a line modified by the previous commit 2022-02-14 14:12:00 +01:00
Username404-59 173ed5d6c3
Add a parsingError() function to Parser.hpp 2022-02-14 14:12:00 +01:00
Username404 a098973023
Throw an exception when a final variable is being redefined, and use types instead of auto in the ParseTree::findReferenceByName() method and when calling it in Parser.hpp 2022-02-14 14:12:00 +01:00
Username404 c9a6a6c918
Remove a useless condition and two unnecessary parentheses in lexer.cpp 2022-02-14 14:12:00 +01:00
Username404-59 3c4586cc70
Add "ASTERISK" and "DIVIDE" token types to lex.hpp, and implement comments 2022-02-14 14:12:00 +01:00
Username404 458d272088
Only reassign exit_code when it is meant to be EXIT_FAILURE 2022-02-14 14:12:00 +01:00
Username404 30ae9d7369
Remove a useless space in main.cpp 2022-02-14 14:12:00 +01:00
Username404 08661d83a3
Add an explicit return type to the nextAre function 2022-02-14 14:12:00 +01:00
Username404 70466cdb80
Demangle the name of components when a GNU/Clang compiler is being used 2022-02-14 14:12:00 +01:00
Username404 1b9b281dec
Heavily modify Target.hpp, add a pointerAs function, and add an overload to Yerbacon::exit 2022-02-14 14:11:20 +01:00
Username404-59 2cf523bf17
Replace "--newlinesoff" with an assignable argument ("--newlines=on/off") 2021-10-20 17:11:14 +02:00
Username404-59 88d22e6183
Add a "--buildInfo" argument to print the compiler and optimization options used when building 2021-10-20 17:08:41 +02:00
Username404-59 0ce02ea77f
Remove a useless semicolon in ParseComponents.hpp 2021-10-20 13:21:35 +02:00
Username404-59 d9b399881d
Use the derived_from concept in the template of the IS(X) macro 2021-10-20 13:16:54 +02:00
Username404-59 ec2af24be3
Add a [] operator to the ParseTree class 2021-10-20 13:16:40 +02:00
Username404-59 7b8b8addd6
Remove the isNPOS boolean and assign lastSlash to position1 when it isn't equal to string_view::npos 2021-10-15 13:02:46 +02:00
Username404-59 cd8b14e00b
Add a missing semicolon in the definition of isNPOS in main.cpp 2021-10-14 23:28:58 +02:00
Username404-59 0b20c24eba
Make position1 and position2 constant variables in main.cpp 2021-10-14 23:25:55 +02:00
Username404-59 b351280b5b
Always verify that position1 is not equal to string_view::npos in main.cpp 2021-10-14 23:16:17 +02:00
Username404-59 cf6e5cfaf8
Don't ignore '\' characters when '/' isn't present in file names 2021-10-14 22:52:44 +02:00
Username404-59 1b91a2a761
Do not output compilation results that are made of whitespace characters 2021-10-08 17:46:14 +02:00
Username404-59 2458c7bb6c
Return EXIT_FAILURE if one of the compilation units failed 2021-10-08 17:37:24 +02:00
Username404-59 a2b67298a4
Use filesystem::path::preferred_separator at compile time to remove a few preprocessor directives in main.cpp 2021-10-08 16:32:41 +02:00
Username404-59 429ed02483
Don't output useless new lines in main.cpp 2021-10-08 13:29:46 +02:00
Username404 dc21af192b
Make Yerbacon::exit a static function 2021-10-07 22:01:23 +02:00
Username404 8ab826bf68
Move a condition from Target.hpp to main.cpp and add a new Yerbacon::exit function 2021-10-07 21:39:48 +02:00
Username404 7b1987f81b
Throw an exception when instead of calling exit when the "--newlinesoff" argument is used with incompatible targets 2021-10-07 21:11:45 +02:00
Username404-59 aac3085e94
Make currentCharType a constant variable in lexer.cpp 2021-10-06 14:37:13 +02:00
Username404 a64805bd35
Use the constant iterators from the files set in main.cpp 2021-10-05 20:11:07 +02:00
Username404-59 20eff1d7b5
Set the initial size of Units to the number of files instead of allocating memory and using a back_inserter 2021-10-05 09:28:43 +02:00
Username404-59 e04fc67aae
Reserve memory for the Units vector 2021-10-05 09:15:46 +02:00
Username404-59 70f93b9200
Use std::transform on the files set to output the results to the Units vector 2021-10-05 09:13:31 +02:00
Username404-59 24d934caf2
Use any_of instead of a range-based loop in the Argument::is function 2021-10-05 08:45:38 +02:00
Username404-59 58f2d9cba7
Remove an extra space in arguments.hpp 2021-10-05 08:43:34 +02:00
Username404-59 1e7da048d4
Call std::for_each in main.cpp instead of using range-based loops, to allow the use of the parallel mode 2021-10-05 08:38:25 +02:00
Username404 a3d6c5d3bc
Rename the exceptions caught in main.cpp 2021-10-03 21:20:21 +02:00
Username404 7c9716c45e
Don't include <variant> in main.cpp since it's not being used 2021-10-03 19:20:51 +02:00
Username404-59 014680ec95
Remove a useless "public" keyword use in arguments.hpp 2021-10-03 19:13:48 +02:00
Username404 ff8bf6d1de
Remove a newline and use a multi-variable declaration for the local booleans in main.cpp 2021-10-03 15:28:24 +02:00
Username404 613e2f7019
Initialize the fileStream local variable instead of calling ifstream::open in filefuncs.cpp 2021-10-03 15:21:18 +02:00
Username404 5cea9251bd
Return a string_view instead of a string in the ArgumentAssignable::getValueFor function 2021-10-03 12:20:59 +02:00
Username404 57a01e6c32
Remove a redundant public section in Yerbacon::Exception and make the second constructor call the first one 2021-10-02 13:33:50 +02:00
Username404 f0aeda7c8a
Check for missing standard library definitions in Yerbacon.hpp 2021-10-02 12:59:33 +02:00
Username404-59 525aa0db88
Make a few members of ParseTree private, and make the internal methods protected 2021-10-01 18:15:59 +02:00
Username404 54aa4105b8
Append new lines to the lineinput string instead of doing concatenation in filefuncs.cpp 2021-09-29 18:33:47 +02:00
Username404 f227182713
Remove a condition that is useless because of 29a6eb3e 2021-09-29 18:18:37 +02:00
Username404 80118d29a7
Start iterating on arguments at 1 since argv[0] is the executable's path 2021-09-28 21:51:51 +02:00
Username404 8f60e7052f
Remove the (argc > 0) condition since argc is always 1 or higher 2021-09-28 21:42:13 +02:00
Username404 02e8de7243
Show an error when an invalid argument is provided 2021-09-28 21:34:22 +02:00
Username404-59 9a27c0c9c7
Don't use the public keyword in NamedIdentifier since it is a structure 2021-09-28 07:10:21 +02:00
Username404 c7981b9948
Throw an exception in filefuncs.cpp when a file is not found 2021-09-26 12:42:01 +02:00
Username404 43b4629a6d
Fix the pairs returned by the futures of the Units set 2021-09-26 12:38:33 +02:00
Username404 700ab109d2
Make a set of files directly instead of adding them to a vector in main.cpp 2021-09-26 12:37:46 +02:00
Username404 477337f96b
Remove a condition which has been useless since the e6334ad8 commit in main.cpp 2021-09-25 22:08:55 +02:00
Username404 c696b440e7
Fix a memory leak caused by the constness of the exceptionCause string in Yerbacon::Exception 2021-09-25 17:37:12 +02:00
Username404 659cdf4e80
Make tok::LexerException and Parser::ParserException type definitions instead of extending the Yerbacon::Exception class 2021-09-25 17:33:28 +02:00
Username404 facf460923
Improve the lambda used to return the compilation result in main.cpp 2021-09-25 17:26:45 +02:00
Username404 66e1926783
Use the max function in main.cpp 2021-09-25 17:03:55 +02:00
Username404 3cddc7907e
Decrement the line number before creating an EOF token 2021-09-25 16:28:03 +02:00
Username404 c6ee98e76b
Accept the use of "structure" as an alternative to the "class" keyword 2021-09-25 16:11:02 +02:00
Username404 471a588d37
Use a goto statement in the Argument::is function 2021-09-23 19:35:55 +02:00
Username404 2de8ce3e43
Make sure the "==" operator is inline in arguments.hpp 2021-09-23 19:03:44 +02:00
Username404-59 fa9dacc23c
Fix a memory leak when iterating on characters in lexer.cpp 2021-09-23 17:53:05 +02:00
Username404-59 6af6c04d5f
Remove the unlikely attribute from the '\r' case, and add an EOF token type 2021-09-23 13:21:47 +02:00
Username404 82520e63ba
Handle the "--version" argument when iterating on argc 2021-09-21 21:45:31 +02:00
Username404 6ce13be4ca
Don't append CMAKE_CXX_COMPILER_ARCHITECTURE_ID to CPACK_SYSTEM_NAME + CPACK_TOPLEVEL_TAG, and remove a few newlines in ParseComponents.hpp 2021-09-19 21:37:53 +02:00
Username404 1371457a1f
Reserve memory before adding elements to parse trees 2021-09-19 20:48:08 +02:00
Username404 beea9bfadf
Make const parse trees actually constant, fix formatting in Target.hpp and classes derived from Target 2021-09-19 20:45:57 +02:00
Username404 82d733af54
Edit the use of convertible_to in Parser.hpp 2021-09-18 16:34:01 +02:00
Username404 8cb72a9baa
Remove a useless condition in Parser.hpp 2021-09-18 16:26:29 +02:00
Username404 fefa7b05c7
Take an initializer_list instead of variadic arguments in the nextAre lambda function 2021-09-18 15:32:31 +02:00