Username404
|
ce8e21ee25
|
Include cmath in Parser.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-22 15:37:13 +01:00 |
Username404
|
8a97def6b2
|
Add integer parsing
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-22 13:40:18 +01:00 |
Username404
|
adbe98ec00
|
Increment i after finding the end iterator when parsing variables
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-22 13:40:03 +01:00 |
Username404
|
01abadc1fa
|
Use cmp_less instead of cmp_greater in Parser.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-19 16:28:59 +01:00 |
Username404
|
3a75531664
|
Transpile arguments correctly in Target.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-19 13:09:51 +01:00 |
Username404
|
ba14e95d50
|
Add a separate_transpileTree overload and transpile function parameters correctly
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-19 12:40:52 +01:00 |
Username404
|
5f3c8d785d
|
Use to_address instead of the unique_ptr::get function in ParseTree::findById
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-17 16:44:04 +01:00 |
Username404
|
bee9917947
|
Use LPAR instead of a character in a condition of Parser.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-17 15:49:03 +01:00 |
Username404
|
272323d091
|
Add two local variables to Parser.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-17 15:47:03 +01:00 |
Username404
|
513c9a44a0
|
Re-add a variable to hold the current target in main.cpp, and capture it by value in the compile function
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-16 14:01:19 +01:00 |
Username404
|
1f819bc136
|
When parsing a function call, invoke parse without specialization since the "=" operator needs a ParseTree
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-13 22:35:18 +01:00 |
Username404
|
f21a79fb29
|
Include Yerbacon.hpp in filefuncs.cpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-13 15:39:40 +01:00 |
Username404
|
f3d03adead
|
Add functions, indentation, better variables parsing and more
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-13 15:15:29 +01:00 |
Username404
|
74c5904d21
|
Add a character cast operator to tok in lex.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-12 11:16:36 +01:00 |
Username404
|
2425d19f9f
|
Add a Parser::parse overload which takes input iterators as arguments
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-09 20:48:57 +01:00 |
Username404
|
8e7aaadbd0
|
Rename parseVector to parse in Parser.hpp, and make the parameter a span instead of a vector
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-09 19:31:30 +01:00 |
Username404
|
cca696b27a
|
Fix the line number of next in Parser.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-04 19:31:28 +01:00 |
Username404
|
26d88c2f91
|
Set line to 1 by default in the tok structure
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-04 19:25:29 +01:00 |
Username404
|
9d7300ce89
|
Fix errors by removing the isNotBlank boolean and using hasNext instead
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-04 19:19:13 +01:00 |
Username404
|
33e29ccb8e
|
Remove the tok default constructor in lex.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-01 20:16:29 +01:00 |
Username404
|
6955c5cb4d
|
Remove tok::type::EOF_ because it is useless, and fix the `next` local constant reference in Parser.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-03-01 20:14:47 +01:00 |
Username404
|
ec4121de1c
|
Fix parsing of parentheses by searching after the current index
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 16:03:34 +01:00 |
Username404
|
56e1db5fcc
|
Add a transpileTree function to Target.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
3c130529a4
|
Make the newLine constructor parameter a reference & add a "separator" member and a "uniqueLineSeparator" virtual method to Target.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
63b24752d6
|
Make the members of the tok structure non-const to avoid undefined behaviour when the "=" operator is called
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
beb28ef4ad
|
Rename the Yerbacon::exit function to Yerbacon::fail
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
de2259b6ed
|
Add a "inverseLCharacter" static function to tok
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
7cbb424416
|
Add a "unit_result" type alias to main.cpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
de2d936e19
|
Use dynamic_cast instead of reinterpret_cast in Target.hpp and ParseComponents.hpp, and extend the ParseComponent class virtually in the ParseTree and NamedIdentifier classes
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
68dc7ea1a1
|
Make Parser::parseVector a function template
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
c4f75a3b04
|
Make the constexpr ParseTree constructors inline instead
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
0b3109c989
|
Add a move assignment operator to ParseTree
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
a45902c9b2
|
Add an "at" function to ParseTree
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
Username404
|
1a37e35228
|
Add a component_ptr type definition to ParseComponents.hpp
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
|
2022-02-14 14:12:00 +01:00 |
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 |