|
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 |
|
|
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 |
|
|
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 |
|
|
158021cf68
|
Fix the indentation of a line modified by the previous commit
|
2022-02-14 14:12:00 +01:00 |
|
|
173ed5d6c3
|
Add a parsingError() function to Parser.hpp
|
2022-02-14 14:12:00 +01:00 |
|
|
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 |
|
|
3c4586cc70
|
Add "ASTERISK" and "DIVIDE" token types to lex.hpp, and implement comments
|
2022-02-14 14:12:00 +01:00 |
|
|
08661d83a3
|
Add an explicit return type to the nextAre function
|
2022-02-14 14:12:00 +01:00 |
|
|
70466cdb80
|
Demangle the name of components when a GNU/Clang compiler is being used
|
2022-02-14 14:12:00 +01:00 |
|
|
1b9b281dec
|
Heavily modify Target.hpp, add a pointerAs function, and add an overload to Yerbacon::exit
|
2022-02-14 14:11:20 +01:00 |
|
|
88d22e6183
|
Add a "--buildInfo" argument to print the compiler and optimization options used when building
|
2021-10-20 17:08:41 +02:00 |
|
|
0ce02ea77f
|
Remove a useless semicolon in ParseComponents.hpp
|
2021-10-20 13:21:35 +02:00 |
|
|
d9b399881d
|
Use the derived_from concept in the template of the IS(X) macro
|
2021-10-20 13:16:54 +02:00 |
|
|
ec2af24be3
|
Add a [] operator to the ParseTree class
|
2021-10-20 13:16:40 +02:00 |
|
|
429ed02483
|
Don't output useless new lines in main.cpp
|
2021-10-08 13:29:46 +02:00 |
|
|
dc21af192b
|
Make Yerbacon::exit a static function
|
2021-10-07 22:01:23 +02:00 |
|
|
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 |
|
|
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 |
|
|
24d934caf2
|
Use any_of instead of a range-based loop in the Argument::is function
|
2021-10-05 08:45:38 +02:00 |
|
|
58f2d9cba7
|
Remove an extra space in arguments.hpp
|
2021-10-05 08:43:34 +02:00 |
|
|
014680ec95
|
Remove a useless "public" keyword use in arguments.hpp
|
2021-10-03 19:13:48 +02:00 |
|
|
5cea9251bd
|
Return a string_view instead of a string in the ArgumentAssignable::getValueFor function
|
2021-10-03 12:20:59 +02:00 |
|
|
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 |
|
|
f0aeda7c8a
|
Check for missing standard library definitions in Yerbacon.hpp
|
2021-10-02 12:59:33 +02:00 |
|
|
525aa0db88
|
Make a few members of ParseTree private, and make the internal methods protected
|
2021-10-01 18:15:59 +02:00 |
|
|
9a27c0c9c7
|
Don't use the public keyword in NamedIdentifier since it is a structure
|
2021-09-28 07:10:21 +02:00 |
|
|
c696b440e7
|
Fix a memory leak caused by the constness of the exceptionCause string in Yerbacon::Exception
|
2021-09-25 17:37:12 +02:00 |
|
|
659cdf4e80
|
Make tok::LexerException and Parser::ParserException type definitions instead of extending the Yerbacon::Exception class
|
2021-09-25 17:33:28 +02:00 |
|
|
c6ee98e76b
|
Accept the use of "structure" as an alternative to the "class" keyword
|
2021-09-25 16:11:02 +02:00 |
|
|
471a588d37
|
Use a goto statement in the Argument::is function
|
2021-09-23 19:35:55 +02:00 |
|
|
2de8ce3e43
|
Make sure the "==" operator is inline in arguments.hpp
|
2021-09-23 19:03:44 +02:00 |
|
|
6af6c04d5f
|
Remove the unlikely attribute from the '\r' case, and add an EOF token type
|
2021-09-23 13:21:47 +02:00 |
|
|
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 |
|
|
1371457a1f
|
Reserve memory before adding elements to parse trees
|
2021-09-19 20:48:08 +02:00 |
|
|
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 |
|
|
82d733af54
|
Edit the use of convertible_to in Parser.hpp
|
2021-09-18 16:34:01 +02:00 |
|
|
8cb72a9baa
|
Remove a useless condition in Parser.hpp
|
2021-09-18 16:26:29 +02:00 |
|
|
fefa7b05c7
|
Take an initializer_list instead of variadic arguments in the nextAre lambda function
|
2021-09-18 15:32:31 +02:00 |
|
|
500662f5c5
|
Add the isFinalDefine boolean to 1 in Parser.hpp
|
2021-09-15 20:05:23 +02:00 |
|
|
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 |
|
|
02bde3b106
|
Make the "languages" array a constant variable
|
2021-09-13 18:24:01 +02:00 |
|
|
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 |
|
|
d9913d0c9f
|
Use a type definition in Target.hpp
|
2021-09-12 13:48:34 +02:00 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
96bd6bf708
|
Re-add the newlinesoff argument
|
2021-09-11 11:49:57 +02:00 |
|
|
bfa8f50ad9
|
Revert "Add a "SEPARATOR" token type"
This reverts commit 47478173
|
2021-09-11 11:35:22 +02:00 |
|
|
6de05633d9
|
Add a "SEPARATOR" token type
|
2021-09-10 22:15:05 +02:00 |
|
|
37a6c0e047
|
Remove the oldClosingBraceIsFar boolean in Target.hpp
|
2021-09-02 10:35:53 +02:00 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
bc2f6938e3
|
Use negation in the multiline boolean of Target.hpp
|
2021-08-31 14:47:13 +02:00 |
|
|
e92b3cf12f
|
Fix an extra space being added in the stringInterpolation() function of Target.hpp
|
2021-08-28 23:25:16 +02:00 |
|
|
c186f30eef
|
Merge the noMultiline boolean into multiline in Target.hpp
|
2021-08-28 11:14:08 +02:00 |
|
|
2dba7fbda6
|
Add experimental string transpilation with interpolation
|
2021-08-28 10:59:24 +02:00 |
|
|
1992e1d42b
|
Add transpilation of strings to lua-compatible ones, and fix a comment
|
2021-08-24 17:23:31 +02:00 |
|
|
5d4be1039d
|
Add a new variadic lambda in Parser.hpp to check the types of tokens
|
2021-08-23 14:58:46 +02:00 |
|
|
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 |
|
|
664a6a92be
|
Begin adding transpilation of basic elements
|
2021-08-22 23:57:18 +02:00 |
|
|
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 |
|
|
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 |
|
|
fd6ce35291
|
Add line numbers to Yerbacon::Exception
|
2021-08-18 19:31:02 +02:00 |
|
|
989650dba6
|
Catch exceptions in the main function
|
2021-08-18 18:59:46 +02:00 |
|
|
a3cdf22000
|
Inline the << operator in ParseComponents.hpp
|
2021-08-14 10:45:13 +02:00 |
|
|
5c3eecd560
|
Undefine YBCON_VERSION in Yerbacon.hpp
|
2021-08-10 15:48:26 +02:00 |
|
|
e9ce6362af
|
Add a DOT token to lex.hpp, and only use the enum characters.
|
2021-08-10 13:54:50 +02:00 |
|
|
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 |
|
|
3c703e55b5
|
Rename the findByName method to findReferenceByName, and add a findReferencesById method.
|
2021-08-08 23:44:42 +02:00 |
|
|
9871cc66c7
|
Add a Reference structure to the StandardComponents namespace.
|
2021-08-08 22:53:29 +02:00 |
|
|
43136672bd
|
Remove the ParseComponents constructor declaration and make NamedIdentifier.name a const variable again
|
2021-08-08 22:51:49 +02:00 |
|
|
e8b2f90263
|
Return pointers in PareTree.findById() and return references in ParseTree.findByName().
|
2021-08-08 16:23:46 +02:00 |
|
|
dd223026a0
|
Fix the findByName function.
|
2021-08-08 14:59:47 +02:00 |
|
|
fa546865a0
|
Use runtime type information in ParseComponents.hpp.
|
2021-08-08 14:38:21 +02:00 |
|
|
c23d88e0eb
|
Add a return type to the ParseTree "<<" operator.
|
2021-08-07 13:33:13 +02:00 |
|
|
2a5df0bb32
|
Put the #ifdef directives before the case statements in Target.hpp to avoid issues.
|
2021-08-07 11:41:04 +02:00 |
|
|
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 |
|
|
328a073d50
|
Add a "dollar sign" token to lex.hpp and use it in lexer.cpp
|
2021-08-05 00:03:50 +02:00 |
|
|
e3804aa342
|
Make the class names constant in ParseComponents.hpp.
|
2021-08-01 13:02:57 +02:00 |
|
|
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 |
|
|
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 |
|
|
ac195d413b
|
Undefine the ADDTARGET macro after the switch statement in Target.hpp
|
2021-07-31 18:38:57 +02:00 |
|
|
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 |
|
|
905e7e7e82
|
Add lexing and parsing exceptions and parse = and #=
|
2021-07-29 17:35:35 +02:00 |
|
|
3265e5f374
|
Remove transpile() from the misc.hpp header
|
2021-07-10 11:05:14 +02:00 |
|
|
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 |
|
|
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 |
|
|
b7eb32c636
|
Handle token vectors with less than 2 values in the Parser::parseVector() method.
|
2021-07-07 17:40:04 +02:00 |
|
|
de24219fca
|
Define the two reference variables in one line in the loop of Parser.hpp.
|
2021-07-06 20:57:20 +02:00 |
|
|
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 |
|
|
07ca24c610
|
Move the YBCON_VERSION redefinition to Yerbacon.hpp.
|
2021-07-06 17:29:26 +02:00 |
|
|
3359dc7649
|
Add a Yerbacon header (+ namespace) and move the getVersion function into it.
|
2021-07-06 15:43:52 +02:00 |
|
|
9d36279f95
|
Remove the useless object copy in Parser.hpp.
|
2021-07-03 22:59:03 +02:00 |
|
|
f308ad9da0
|
Remove the "previous" reference in Parser.hpp and start the iteration on lexed tokens at 0 instead of 1.
|
2021-07-03 22:32:45 +02:00 |
|
|
3ce905d602
|
Remove a few useless newlines in header files
|
2021-07-03 21:57:02 +02:00 |
|
|
077f95b36b
|
Begin the parser
|
2021-07-03 21:54:12 +02:00 |
|
|
995684799d
|
Replace Targets.hpp with Target.hpp and add language-specific headers
|
2021-07-03 11:11:36 +02:00 |
|
|
5de2a28f93
|
Add a Targets.hpp file and shorten MainTranspile.cpp.
|
2021-06-25 20:58:23 +02:00 |
|