Commit Graph

82 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
68dc7ea1a1
Make Parser::parseVector a function template
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
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
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
a45902c9b2
Add an "at" function to ParseTree
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
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
f33aec687a
Parse Calls/ParseTrees
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
2022-02-14 14:12:00 +01:00
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
ae2a661427
Remove the useless nested structure in StandardComponents::Class 2022-02-14 14:12:00 +01:00
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
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
08661d83a3
Add an explicit return type to the nextAre function 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
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
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
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
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
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
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
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
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
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
a3cdf22000
Inline the << operator in ParseComponents.hpp 2021-08-14 10:45:13 +02:00