Commit Graph

65 Commits

Author SHA1 Message Date
Deukhoofd 3367e60ae5
Support break statements
continuous-integration/drone/push Build is passing Details
2019-06-27 15:55:46 +02:00
Deukhoofd d86e9ba8ae
Implemented generic for loops
continuous-integration/drone/push Build is passing Details
2019-06-26 16:19:34 +02:00
Deukhoofd 48224afe45
Reduce amount of copies for HashedString for improved performance
continuous-integration/drone/push Build is passing Details
Signed-off-by: Deukhoofd <deukhoofd@gmail.com>
2019-06-25 15:18:36 +02:00
Deukhoofd 021750a135 Fix all valgrind leak issues in tests
continuous-integration/drone/push Build is failing Details
Signed-off-by: Deukhoofd <deukhoofd@gmail.com>
2019-06-24 13:38:41 +02:00
Deukhoofd e472dcec1c
Implements numeric for loops
continuous-integration/drone/push Build is passing Details
2019-06-22 17:35:33 +02:00
Deukhoofd 6f7d319148
Don't parse expression on different line from return keyword
continuous-integration/drone/push Build is passing Details
2019-06-19 16:21:21 +02:00
Deukhoofd 6bcedaf743
Add backslash to invalid control character error, made pretty error messages use 1-based line index
continuous-integration/drone/push Build is passing Details
2019-06-19 13:33:01 +02:00
Deukhoofd 8541085b27
Added support for full error messages
continuous-integration/drone/push Build is passing Details
2019-06-18 19:56:47 +02:00
Deukhoofd e07d5cb7cb
Move Diagnostics to separate namespace 2019-06-18 16:39:36 +02:00
Deukhoofd fde102d954
Added namespaces to most classes, general cleanup
continuous-integration/drone/push Build is failing Details
2019-06-17 18:35:12 +02:00
Deukhoofd d91caa7f32
Implements indexing with period identifier style (``foo.bar``)
continuous-integration/drone/push Build is passing Details
2019-06-17 15:45:33 +02:00
Deukhoofd 90ec4766c3
Support unicode as variables
continuous-integration/drone/push Build is passing Details
2019-06-15 17:51:10 +02:00
Deukhoofd 3dc67ec8a0
Move Lexer to u16string handling, for unicode support
continuous-integration/drone/push Build is passing Details
2019-06-15 17:20:27 +02:00
Deukhoofd a9def6c539
Implements setting table values
continuous-integration/drone/push Build is failing Details
2019-06-14 17:12:27 +02:00
Deukhoofd eb57a46b0b
Fix tests
continuous-integration/drone/push Build is failing Details
2019-06-13 19:10:22 +02:00
Deukhoofd 3e00f750ef
Make Lexer use constant Tokens
continuous-integration/drone/push Build is failing Details
2019-06-13 18:49:38 +02:00
Deukhoofd 5910cbbfa9
Make parsed statements constant during binding 2019-06-13 18:14:59 +02:00
Deukhoofd 601c4a3f89
Always pass the script string around by reference 2019-06-13 17:37:23 +02:00
Deukhoofd c022c91777
Implements complex tables
continuous-integration/drone/push Build is passing Details
2019-06-12 15:19:28 +02:00
Deukhoofd ba4fe888fa
Pass parsed block statements as reference instead of value 2019-06-11 14:58:43 +02:00
Deukhoofd 081def0be0
Implements basic numerical tables
continuous-integration/drone/push Build is passing Details
2019-06-09 20:15:09 +02:00
Deukhoofd ec2419bc7d
Minor cleanup of Parser 2019-06-09 12:48:14 +02:00
Deukhoofd d385a9e3ee
Fix parametered functions skipping a token 2019-06-08 16:30:23 +02:00
Deukhoofd 7ed53193de
Make functions be able to call themselves
continuous-integration/drone/push Build is failing Details
2019-06-08 16:02:21 +02:00
Deukhoofd 7d75131822
Implemented comparison equality operators 2019-06-08 15:38:08 +02:00
Deukhoofd fc66c15c2f
Fixed issue where function declarations without parameters would cause errors
continuous-integration/drone/push Build is passing Details
2019-06-08 14:42:23 +02:00
Deukhoofd a2263535d9
Fixed issue where function parser keeps consuming tokens and causes out of range exceptions 2019-06-08 14:40:21 +02:00
Deukhoofd ed6fbdbef0
Fix wrong block statements consuming EOF token, causing a nullptr exception 2019-06-08 14:27:24 +02:00
Deukhoofd e233616b8e
Implements if, elseif and else statements
continuous-integration/drone/push Build is passing Details
2019-06-08 14:25:15 +02:00
Deukhoofd f4a3918947
Implements return statement
continuous-integration/drone/push Build is passing Details
2019-06-07 15:23:13 +02:00
Deukhoofd 7f73bf07d2
Create new string in Lexer when not passed by reference
continuous-integration/drone/push Build is failing Details
2019-06-06 20:07:55 +02:00
Deukhoofd cb5d9e2f62
Implements indexing, currently can only be used with strings 2019-06-06 17:35:51 +02:00
Deukhoofd b275e1fbd6
Added basics for lexing index expressions 2019-06-05 21:01:59 +02:00
Deukhoofd d49692a17e
Minor optimizations in lexer 2019-06-05 19:11:56 +02:00
Deukhoofd 6206fef4c5
Rework evaluation to use shared pointers, fix bugs 2019-06-01 21:38:39 +02:00
Deukhoofd 4408cf00cd
Large overhaul of pointers to shared_ptrs, implemented function evaluation 2019-06-01 19:20:31 +02:00
Deukhoofd 8b70eed516
Implements parsing of function calling 2019-06-01 14:56:28 +02:00
Deukhoofd 1231a77761
Fixes and changes for function declarations, using shared_ptr instead of raw pointers 2019-06-01 13:43:25 +02:00
Deukhoofd c407ba2f50
Implements parsing function declarations 2019-05-31 15:00:14 +02:00
Deukhoofd 6fad5a0a7d
Implements variable usage, tweaks and fixes for variable assignment 2019-05-30 15:23:48 +02:00
Deukhoofd 5d1c3ac9ba
Implements assignment binding 2019-05-28 17:49:03 +02:00
Deukhoofd dbd7dfdd73
Implements assignment parsing 2019-05-26 14:20:40 +02:00
Deukhoofd 9131fbfee7
Implements inequality token 2019-05-25 14:17:52 +02:00
Deukhoofd b2fa857c9b
Fix memory leak related to lexer skipping whitespace. 2019-05-24 19:18:03 +02:00
Deukhoofd 57cd3efec9
Parse and bind strings 2019-05-22 13:29:35 +02:00
Deukhoofd 6eb005ab3f
Lex Strings 2019-05-22 13:24:28 +02:00
Deukhoofd 23991ab2ea
Improved performance for lexing identifiers/keywords 2019-05-22 12:41:08 +02:00
Deukhoofd 2fe6f570ec
Properly clear up memory of parsed results 2019-05-21 18:36:31 +02:00
Deukhoofd 1e5cd010a1
Initial layout for binder 2019-05-21 18:09:08 +02:00
Deukhoofd 2df4a71ed8
Reorganized tests 2019-05-21 17:23:56 +02:00