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 |
Username404
|
500662f5c5
|
Add the isFinalDefine boolean to 1 in Parser.hpp
|
2021-09-15 20:05:23 +02:00 |
Username404
|
08a038cf82
|
Set the ParsingException cause to another string when no identifier is given to a class, and pass the component's line to the exception
|
2021-09-14 20:43:09 +02:00 |
Username404
|
95d6b2239a
|
Append characters directly instead of creating a new string in the default case of lexer.cpp
|
2021-09-14 20:22:42 +02:00 |
Username404
|
44e160ebf9
|
Don't throw an exception when "isTypeString" is false in lexer.cpp
|
2021-09-14 20:20:34 +02:00 |
Username404
|
02bde3b106
|
Make the "languages" array a constant variable
|
2021-09-13 18:24:01 +02:00 |
Username404
|
33ee011aed
|
Fix the findById() and findReferenceByName() methods in ParseComponents.hpp since the filter function doesn't actually exist
|
2021-09-12 16:45:30 +02:00 |
Username404
|
d9913d0c9f
|
Use a type definition in Target.hpp
|
2021-09-12 13:48:34 +02:00 |
Username404
|
2b84262ea0
|
Use std::filter and std::transform instead of the std::ranges library and make the destructor of the Target class virtual
|
2021-09-12 12:00:21 +02:00 |
Username404
|
e79a7415de
|
Add an overload to reuse the same characters for the two parameters of Target::stringInterpolation and use an escaped character sequence
|
2021-09-11 13:42:22 +02:00 |
Username404
|
26421597f2
|
Prohibit the use of --newlinesoff with targets that do not support putting a whole script on one line
|
2021-09-11 13:19:43 +02:00 |
Username404
|
96bd6bf708
|
Re-add the newlinesoff argument
|
2021-09-11 11:49:57 +02:00 |
Username404
|
bfa8f50ad9
|
Revert "Add a "SEPARATOR" token type"
This reverts commit 47478173
|
2021-09-11 11:35:22 +02:00 |
Username404
|
84b9f9de73
|
Add the [[unlikely]] attribute to the '\r' case in lexer.cpp
|
2021-09-10 22:20:41 +02:00 |
Username404
|
6de05633d9
|
Add a "SEPARATOR" token type
|
2021-09-10 22:15:05 +02:00 |
Username404
|
37a6c0e047
|
Remove the oldClosingBraceIsFar boolean in Target.hpp
|
2021-09-02 10:35:53 +02:00 |
Username404
|
76c8975e27
|
Use a reference in the Argument "==" operator, and move the currentArg variable of main.cpp into the loop used for arguments
|
2021-09-02 10:34:00 +02:00 |
Username404
|
d6642f9ae5
|
Make getId() a constexpr function and use arrow syntax to call it in Target.hpp instead of dereferencing a pointer
|
2021-09-02 10:08:10 +02:00 |
Username404
|
b5697bf0a8
|
Take the remaining characters of a string instead of taking none in a condition of the stringInterpolation() function from Target.hpp
|
2021-09-01 19:31:04 +02:00 |
Username404
|
afc59c7a22
|
Don't find occurrences when closing characters are not found in Target.hpp, make the interpolation strings static const variables and fix typos
|
2021-08-31 15:19:44 +02:00 |
Username404
|
bc2f6938e3
|
Use negation in the multiline boolean of Target.hpp
|
2021-08-31 14:47:13 +02:00 |
Username404
|
e92b3cf12f
|
Fix an extra space being added in the stringInterpolation() function of Target.hpp
|
2021-08-28 23:25:16 +02:00 |
Username404
|
c186f30eef
|
Merge the noMultiline boolean into multiline in Target.hpp
|
2021-08-28 11:14:08 +02:00 |
Username404
|
2dba7fbda6
|
Add experimental string transpilation with interpolation
|
2021-08-28 10:59:24 +02:00 |
Username404-59
|
1992e1d42b
|
Add transpilation of strings to lua-compatible ones, and fix a comment
|
2021-08-24 17:23:31 +02:00 |
Username404
|
5d4be1039d
|
Add a new variadic lambda in Parser.hpp to check the types of tokens
|
2021-08-23 14:58:46 +02:00 |
Username404
|
079d99e08a
|
Remove the parameter of Target.get(), add it to Target as a property and rename Target.get() to Target.on()
|
2021-08-23 12:49:22 +02:00 |
Username404
|
664a6a92be
|
Begin adding transpilation of basic elements
|
2021-08-22 23:57:18 +02:00 |
Username404
|
8c63f1ae8b
|
Capture fileName by reference since it is now one, and give a type to currentFuture
|
2021-08-20 10:41:09 +02:00 |
Username404-59
|
fdb8579941
|
Fix a typo from the previous commit
|
2021-08-20 01:42:43 +02:00 |
Username404-59
|
845794a922
|
Prevent the compilation output from being printed when printResult is false
|
2021-08-20 01:34:29 +02:00 |
Username404
|
729e04161f
|
Make fileName a reference in a loop of main.cpp, and use findReferencesById() instead of findById() in ParseComponents.hpp
|
2021-08-20 00:08:51 +02:00 |
Username404
|
2e9e063d71
|
Use smart pointers instead of raw pointers in ParseComponents.hpp, remove an unused dependency in main.cpp and capture fileName by value in main.cpp to avoid using its reference after the current scope
|
2021-08-19 23:55:55 +02:00 |
Username404
|
66af9b9e2b
|
Update a multi-line comment in lexer.cpp
|
2021-08-18 19:36:30 +02:00 |
Username404
|
fd6ce35291
|
Add line numbers to Yerbacon::Exception
|
2021-08-18 19:31:02 +02:00 |
Username404
|
989650dba6
|
Catch exceptions in the main function
|
2021-08-18 18:59:46 +02:00 |
Username404
|
a3cdf22000
|
Inline the `<<` operator in ParseComponents.hpp
|
2021-08-14 10:45:13 +02:00 |
Username404
|
5c3eecd560
|
Undefine YBCON_VERSION in Yerbacon.hpp
|
2021-08-10 15:48:26 +02:00 |
Username404
|
e8916cf40f
|
Move the UNEXPECTED case in lexer.cpp
|
2021-08-10 14:55:28 +02:00 |
Username404
|
f4297fe851
|
Use STRING directly in the getIdentifierCharType() function.
|
2021-08-10 14:01:20 +02:00 |
Username404
|
e9ce6362af
|
Add a DOT token to lex.hpp, and only use the enum characters.
|
2021-08-10 13:54:50 +02:00 |
Username404
|
3b991da962
|
Require Clang 13.0+ in the CMakeLists.txt file, import the tok::type enumeration in lexer.cpp + Parser.hpp, and add [[likely]] attributes to 2 branches of the switch case in lexer.cpp.
|
2021-08-09 10:58:11 +02:00 |
Username404
|
3c703e55b5
|
Rename the findByName method to findReferenceByName, and add a findReferencesById method.
|
2021-08-08 23:44:42 +02:00 |
Username404
|
9871cc66c7
|
Add a Reference structure to the StandardComponents namespace.
|
2021-08-08 22:53:29 +02:00 |
Username404
|
43136672bd
|
Remove the ParseComponents constructor declaration and make NamedIdentifier.name a const variable again
|
2021-08-08 22:51:49 +02:00 |
Username404
|
e8b2f90263
|
Return pointers in PareTree.findById() and return references in ParseTree.findByName().
|
2021-08-08 16:23:46 +02:00 |
Username404
|
dd223026a0
|
Fix the findByName function.
|
2021-08-08 14:59:47 +02:00 |
Username404
|
fa546865a0
|
Use runtime type information in ParseComponents.hpp.
|
2021-08-08 14:38:21 +02:00 |
Username404
|
c23d88e0eb
|
Add a return type to the ParseTree "<<" operator.
|
2021-08-07 13:33:13 +02:00 |
Username404
|
2a5df0bb32
|
Put the #ifdef directives before the case statements in Target.hpp to avoid issues.
|
2021-08-07 11:41:04 +02:00 |
Username404
|
2f853fe797
|
Add unsigned short values to the tok::type enum and move the parseString function to misc.hpp.
|
2021-08-06 19:12:28 +02:00 |
Username404
|
fbe8e189d3
|
Reuse a lambda in main.cpp.
|
2021-08-06 11:58:43 +02:00 |
Username404
|
604532dc34
|
Make the Policy local variable a reference in main.cpp, remove a useless #include directive and include Yerbacon.hpp before future.
|
2021-08-06 11:45:16 +02:00 |
Username404
|
328a073d50
|
Add a "dollar sign" token to lex.hpp and use it in lexer.cpp
|
2021-08-05 00:03:50 +02:00 |
Username404
|
e3804aa342
|
Make the class names constant in ParseComponents.hpp.
|
2021-08-01 13:02:57 +02:00 |
Username404
|
34777acc74
|
Rename the variable containing the name of classes in StandardComponents::Class, nest the Constructor structure in it and remove StandardComponents::ClassBody.
|
2021-07-31 21:17:57 +02:00 |
Username404
|
4512909b23
|
Don't break in the ADDTARGET macro of Target.hpp, and define class names of Py.hpp, Lua.hpp and Js.hpp to use them in Target.hpp.
|
2021-07-31 18:56:17 +02:00 |
Username404
|
ac195d413b
|
Undefine the ADDTARGET macro after the switch statement in Target.hpp
|
2021-07-31 18:38:57 +02:00 |
Username404
|
bf5ca80c4d
|
Add a Macro to Target.hpp and check for a std::threads implementation in Yerbacon.hpp.
|
2021-07-31 16:47:00 +02:00 |
Username404
|
905e7e7e82
|
Add lexing and parsing exceptions and parse = and #=
|
2021-07-29 17:35:35 +02:00 |
Username404
|
8598509f0b
|
Revert "Handle duplicated --printresult arguments."
This reverts commit 25b50d1c
|
2021-07-11 15:44:30 +02:00 |
Username404
|
3265e5f374
|
Remove transpile() from the misc.hpp header
|
2021-07-10 11:05:14 +02:00 |
Username404
|
1bfb4cb54b
|
Add arguments.hpp, remove a few useless files, and add a library target to the CMakeLists.txt file.
|
2021-07-10 11:03:15 +02:00 |
Username404-59
|
6c62ee9f1a
|
Handle duplicated --printresult arguments.
|
2021-07-08 16:40:47 +02:00 |
Username404-59
|
db14d469bd
|
Ad a warning in Yerbacon.hpp that shows up when YBCON_VERSION isn't already defined.
|
2021-07-07 20:06:18 +02:00 |
Username404-59
|
b7eb32c636
|
Handle token vectors with less than 2 values in the Parser::parseVector() method.
|
2021-07-07 17:40:04 +02:00 |
Username404-59
|
de24219fca
|
Define the two reference variables in one line in the loop of Parser.hpp.
|
2021-07-06 20:57:20 +02:00 |
Username404-59
|
b82faeb399
|
Substract 1 to the lexed vector's size in Parser.hpp to avoid getting out of bounds because of the next reference.
|
2021-07-06 20:49:28 +02:00 |
Username404-59
|
07ca24c610
|
Move the YBCON_VERSION redefinition to Yerbacon.hpp.
|
2021-07-06 17:29:26 +02:00 |
Username404-59
|
3359dc7649
|
Add a Yerbacon header (+ namespace) and move the getVersion function into it.
|
2021-07-06 15:43:52 +02:00 |
Username404-59
|
a222e8a165
|
Fix the characters placed next to identifiers/numbers being skipped in lexer.cpp.
|
2021-07-06 14:44:09 +02:00 |
Username404-59
|
46a3964596
|
Don't include the thread header in main.cpp
|
2021-07-06 12:26:17 +02:00 |
Username404-59
|
87de5ca3f4
|
Use the deferred policy when --parallel isn't present.
|
2021-07-06 12:25:13 +02:00 |
Username404-59
|
61946b891f
|
Use futures instead of threads to get better console output
|
2021-07-06 12:07:35 +02:00 |