Commit Graph

193 Commits

Author SHA1 Message Date
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
c5d33fd480
Add support for multiple input files 2021-06-10 16:29:54 +02:00
a75cbeb129
Remove useless inlined functions in ParseComponents.hpp 2021-06-10 13:47:07 +02:00
76e168fe58
Add a namespace to ParseComponents.hpp. 2021-04-25 16:13:17 +02:00
937d393aa5
Remove StandardComponents.hpp. 2021-04-25 16:02:28 +02:00
Username404
85c155fc3b
Remove a parameter from the setOutputFileContent function and remove a variable in the main function. 2021-04-24 17:58:12 +02:00
829e53080c
Add a default constructor to a struct in StandardComponents.hpp. 2021-04-01 19:22:18 +02:00
9ade88b6aa
Make the lex function return a value instead of a reference. 2021-04-01 16:20:14 +02:00
c190e308f8
Remove separator tokens, and move a boolean variable. 2021-04-01 15:32:31 +02:00
Username404
32a9c2b0d1
Make the "<<" operator call the right function in the ParseTree class. 2021-03-27 11:13:11 +01:00
810c94752f
Remove a useless "this" in ParseComponents.hpp. 2021-03-25 21:18:48 +01:00
9869f73e35
Use a reference as the parseString function's parameter instead of a unuseful pointer. 2021-03-25 21:15:21 +01:00
1413124530
Rename the comp namespace to StdComponents. 2021-03-20 10:38:33 +01:00
60f88896a4
Replace an #include directive in src/headers/lex.hpp. 2021-03-19 13:53:53 +01:00
c362f422cd
Don't return a reference in the getCompCount method. 2021-03-19 13:16:35 +01:00
Username404
38eea2c73d
Complete the addAll method. 2021-03-18 21:22:41 +01:00
29f0fafe31
Make the subComponents vector mutable, make some functions const and add private methods to ParseTree to make creation of const objects possible. 2021-03-18 14:07:23 +01:00
28175f2d96
Add a new constructor to ParseTree, and make the compCount variable mutable. 2021-03-18 14:04:57 +01:00
f32f8abc5c
Remove useless comments in the beginning of each C++ file. 2021-03-17 13:00:22 +01:00
80510909f1
Add a StandardComponents.hpp file. 2021-03-06 22:00:07 +01:00
11b92f7346
Make the argument of parseString a const reference. 2021-03-05 14:41:46 +01:00
2fe59c9c43
Update ParseCompnents.hpp. 2021-03-05 11:34:02 +01:00
24195f9a6c
Return a reference with the ParseTree::getComponents() method. 2021-03-04 15:59:06 +01:00
5972f0ef4c
Add a (definetly incomplete) ParseComponents.hpp file and move the extern declarations of main.cpp to misc.hpp. 2021-03-04 11:18:11 +01:00
6d2c23bb39
Add a misc.hpp file. 2021-03-03 19:47:25 +01:00
45cbe5b9e2
Lex the entire strings. 2021-02-22 19:42:20 +01:00
34c3cfb041
Hidden git history due to a license change. 2021-02-12 15:07:03 +01:00