Commit Graph

50 Commits

Author SHA1 Message Date
3e00f750ef Make Lexer use constant Tokens
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-13 18:49:38 +02:00
5910cbbfa9 Make parsed statements constant during binding 2019-06-13 18:14:59 +02:00
601c4a3f89 Always pass the script string around by reference 2019-06-13 17:37:23 +02:00
c022c91777 Implements complex tables
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-12 15:19:28 +02:00
ba4fe888fa Pass parsed block statements as reference instead of value 2019-06-11 14:58:43 +02:00
081def0be0 Implements basic numerical tables
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-09 20:15:09 +02:00
ec2419bc7d Minor cleanup of Parser 2019-06-09 12:48:14 +02:00
d385a9e3ee Fix parametered functions skipping a token 2019-06-08 16:30:23 +02:00
7ed53193de Make functions be able to call themselves
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-08 16:02:21 +02:00
7d75131822 Implemented comparison equality operators 2019-06-08 15:38:08 +02:00
fc66c15c2f Fixed issue where function declarations without parameters would cause errors
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-08 14:42:23 +02:00
a2263535d9 Fixed issue where function parser keeps consuming tokens and causes out of range exceptions 2019-06-08 14:40:21 +02:00
ed6fbdbef0 Fix wrong block statements consuming EOF token, causing a nullptr exception 2019-06-08 14:27:24 +02:00
e233616b8e Implements if, elseif and else statements
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-08 14:25:15 +02:00
f4a3918947 Implements return statement
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-07 15:23:13 +02:00
7f73bf07d2 Create new string in Lexer when not passed by reference
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-06 20:07:55 +02:00
cb5d9e2f62 Implements indexing, currently can only be used with strings 2019-06-06 17:35:51 +02:00
b275e1fbd6 Added basics for lexing index expressions 2019-06-05 21:01:59 +02:00
d49692a17e Minor optimizations in lexer 2019-06-05 19:11:56 +02:00
6206fef4c5 Rework evaluation to use shared pointers, fix bugs 2019-06-01 21:38:39 +02:00
4408cf00cd Large overhaul of pointers to shared_ptrs, implemented function evaluation 2019-06-01 19:20:31 +02:00
8b70eed516 Implements parsing of function calling 2019-06-01 14:56:28 +02:00
1231a77761 Fixes and changes for function declarations, using shared_ptr instead of raw pointers 2019-06-01 13:43:25 +02:00
c407ba2f50 Implements parsing function declarations 2019-05-31 15:00:14 +02:00
6fad5a0a7d Implements variable usage, tweaks and fixes for variable assignment 2019-05-30 15:23:48 +02:00
5d1c3ac9ba Implements assignment binding 2019-05-28 17:49:03 +02:00
dbd7dfdd73 Implements assignment parsing 2019-05-26 14:20:40 +02:00
9131fbfee7 Implements inequality token 2019-05-25 14:17:52 +02:00
b2fa857c9b Fix memory leak related to lexer skipping whitespace. 2019-05-24 19:18:03 +02:00
57cd3efec9 Parse and bind strings 2019-05-22 13:29:35 +02:00
6eb005ab3f Lex Strings 2019-05-22 13:24:28 +02:00
23991ab2ea Improved performance for lexing identifiers/keywords 2019-05-22 12:41:08 +02:00
2fe6f570ec Properly clear up memory of parsed results 2019-05-21 18:36:31 +02:00
1e5cd010a1 Initial layout for binder 2019-05-21 18:09:08 +02:00
2df4a71ed8 Reorganized tests 2019-05-21 17:23:56 +02:00
aec07bd29a Adds support for parenthesized expressions 2019-05-21 17:16:53 +02:00
ae25598864 Expanded on diagnostics, make whitespace completely ignored 2019-05-21 15:11:00 +02:00
8f2f122215 Make Diagnostics usage a pointer 2019-05-21 14:15:39 +02:00
99f50b6471 Add support for diagnostics to parser 2019-05-21 14:06:35 +02:00
2b35da3a7b Add support for diagnostics 2019-05-21 13:56:08 +02:00
ad3e61128c Creates base of script class 2019-05-21 12:59:15 +02:00
37e770f1cb Implements expression parsing 2019-05-20 17:45:03 +02:00
7edd51d5e3 Save position and length of tokens 2019-05-19 16:11:16 +02:00
608a579f19 Adds \v and \f as whitespace characters 2019-05-19 15:28:45 +02:00
96943bad7e Remove gitmodule for Catch2, replaced it with header file 2019-05-19 14:42:45 +02:00
01e8075958 Fix tests being broken 2019-05-19 14:32:10 +02:00
06fe0e7c4c Added lexing support for identifiers and keywords 2019-05-19 14:26:21 +02:00
8285811fb7 Add a couple more characters to lex 2019-05-19 12:49:26 +02:00
600315d401 Dont consume the character immediately following a number 2019-05-19 12:20:08 +02:00
22e450e7e7 Initial commit, adds very basic Lexing 2019-05-18 20:35:51 +02:00