Commit Graph

35 Commits

Author SHA1 Message Date
3e661c81c4 Simplify variables grabber 2024-01-12 20:52:30 +01:00
8a4dcde2a1 Call stack memory optimization 2024-01-12 20:52:30 +01:00
3e01978f22 Run tests with maximum optimization 2024-01-12 20:52:30 +01:00
66d86a1b6c Fix dead code elimination optimization removes assignment on shadowing module constants 2024-01-12 20:52:30 +01:00
1abcffda5d Fix optimization in use statement and match expression with _ matcher 2024-01-12 20:52:30 +01:00
94bbc05b93 Move optimization logic to OptimizationStage class, don't print summary 2024-01-12 20:52:30 +01:00
f0317c44c7 Use stages in programs test 2024-01-12 20:52:30 +01:00
ce14581bf4 Show linter results after validation 2024-01-12 20:52:30 +01:00
2578f0a6b4 Add parse errors formatter 2024-01-12 20:52:30 +01:00
0d820c8a91 Introduce stages for each main feature 2024-01-12 20:52:30 +01:00
ea38227b44 More informative parser errors with ranges, removed LexerException 2024-01-12 20:52:30 +01:00
923f0edbcb Introduce DECIMAL_NUMBER token, fix HEX numbers with 'E' incorrectly treated as decimal 2024-01-12 20:52:30 +01:00
f6c3f3fe17 Constants access priority 2024-01-12 20:52:30 +01:00
cdf0219ca1 Add base type for exceptions 2024-01-12 20:52:30 +01:00
312a05576c Use ranges in parser 2024-01-12 20:52:30 +01:00
da950f96c2 Better explaining parse errors 2024-01-12 20:52:30 +01:00
95d32a6c91 Use local variable for frequently used fields in Lexer 2024-01-12 20:52:30 +01:00
a87d5f7685 Added floating number scientific notation 2024-01-12 20:52:30 +01:00
2c0b19eb0a More strict lexer, fixed HEX numbers and quote escaping 2024-01-12 20:52:30 +01:00
15c277d145 Use immutable map, fast skip whitespaces in lexer 2024-01-12 20:52:30 +01:00
7baf9f6fc8 Fix incorrect token positions in lexer 2024-01-12 20:52:30 +01:00
fc73bce943 Add columns in position information 2024-01-12 20:52:30 +01:00
99bdd1c953 Separate constants and functions in module, don't load it twice 2024-01-12 20:52:30 +01:00
6d0886316c Fix use statement in programs 2024-01-12 20:52:30 +01:00
59f8c4109e Simplify use statement to take variable WORD only arguments 2024-01-12 20:52:30 +01:00
cce75927b8 Change list pattern matcher behavior for single element
match [1] {
  case [x]:
}
Before: x = [1]
After: x = 1

x will be the first (and single) value of an array
2024-01-12 20:52:30 +01:00
32bffaee86 Fix scope of foreach and match statements
v = 100
for v : [1] ..
v should be 1, not 100
2024-01-12 20:52:30 +01:00
b7c376f01f Deprecate old Variables/Functions methods 2024-01-12 20:52:30 +01:00
b726a226b9 Use new switch and pattern matching, fix deprecations 2024-01-12 20:52:30 +01:00
fe39c1ac00 Define functions and constants in root scope 2024-01-12 20:52:30 +01:00
16de63f720 Add JMH benchmark for programs 2024-01-12 20:52:30 +01:00
a2549c3afe Switch to Java11+ features where possible 2024-01-12 20:52:30 +01:00
0cdbbc1e8c Use separate dependency versions declaration 2024-01-12 20:52:30 +01:00
219d654fe5 Move classes to separate modules 2024-01-12 20:52:30 +01:00
3aedda0e93 Add multi-project structure 2024-01-12 20:52:30 +01:00