Releases: ClueLang/Clue
Releases · ClueLang/Clue
Version 2.4
- Fixed code parsing sometime not working properly
- Added floor division (
/_
) - Added
struct
,constructor
andextern
keyword, they will be used in future versions and thus should not be used for variables - Continue tokens can now be parsed in 3 different modes:
default
,luajit
andmoonscript
- Fixed
luajit
continue mode putting::continue::
even in loops that did not use continue - Added raw strings (
`Hello World!`
) - Slightly optimized string scanning and parsing
Version 2.3.2
- Fixed
loop until
loops taking the next token after the loop condition ended, making the next line invalid - Fixed
return
not being considered valid if it was at the end of a code block without any returning value and without ;
Version 2.3.1
- Fixed table elements that are valid in Lua being invalid in Clue because they are a keyword (example:
string.match
was not valid asmatch
is a keyword in Clue) - Fixed
?.
and?[
causing errors when calling functions (a = b?.c()
was valid butb?.c()
alone wasn't)
Version 2.3
- Renamed TREDOTS token to THREEDOTS
- Expressions should now figure out when a
match
block is part of the expression or not - Fix variables alteration crashing Clue if there were more values than variables (#18)
- Added
meta with
syntax to use external tables as metatables - Added
macro
keyword - Added inline macros
- Fixed the Lua reserved keywords errors using an extra
{
/}
in the error message
Version 2.2.1
- Fixed compilation of multiple files in Linux (by Enn3Developer)
- Fixed the file output name when compiling a folder (by Enn3Developer)
- Fixed Lua's reserved keywords not used in Clue being able to be used in Clue as variables, which would cause an invalid Lua output
- Reversed the
--nodebugcomments
flag, and renamed it to--debugcomments
, debug comments will no longer be added in the output by default and will instead only be added when the--debugcomments
flag is enabled --dontsave
's short version is now-D
and--debugcomments
's is now-d
Version 2.2
- Fixed match blocks indentating too many times in the output
- Reversed the
--continue
flag, now you have to enable it to use tags and goto (if in the previous versions you usedcontinue
with the flag you now have to disable it, and enable it if you instead usedcontinue
without the flag) - Anonymous functions without arguments can now omit the ()
- Default cases for match blocks must now be last and not the only case in the block
- Match blocks' cases can now have extra if conditions
- Match blocks can now be inside expressions, but every case will correspond to another expression, not a code block
- Fix two minuses next to each others beaing compiled as a comment (they would have been compiled into
--
, which is how a comment starts in Lua, they are now compiled into- -
) - Error messages and debug comments should now be more precise
Version 2.1
- Fixed
foo[x]bar
being treated as valid syntax - Fixed repository link in help message
- Strings are no longer literal and will instead ignore new lines and tabs
- Added
match
blocks that work sorta like Rust'smatch
and C'sswitch
- Added
=>
token, currently only used bymatch
Version 2.0
;
is no longer required (but can still be used and is sometimes necessary)- Rewrote important parts of the parser
- Very slightly improved compiling speed
- Static variables can now be declared and defined at the same time
- Static variables now have debug comments that say in what file they are defined
- Fix
catch
blocks not indenting when compiling - EOF tokens now have
<end>
as their lexeme - Clue can now read and compile more complex numbers (
10e3
,0b10110
, ecc)
Version 1.1.2
- Fix Clue calling
require
instead ofimport
when compiling a directory
Another bug that should have definitively been noticed WAY before.
Hopefully this is the last time.
Version 1.1.1
- Fixed variable altering
- Multiple values can now be returned
Honestly these issues should have been noticed and fixed long ago, my bad.