Brent Site Admin
Joined: 01 Jul 2005 Posts: 799
|
Posted: Jan 10th, 2024, 3:02am Post subject: Change log for ViviFire/src |
|
|
2023-12-24 'MultiplicativeOperator': Warn if `Mod` and `Rem` are used although they are the same operation
2024-01-09 Add support for the most common newline characters
2024-01-09 Can use semicolon to put many simple statements together on one line
2024-01-09 Give a better error message when there is more than one statement after `Then` or `Else`
2024-01-12 Change `@Option Type Each [ Param | Var ]` to `... Type { Each | Param | Var }`
2024-01-12 Fix some error messages
2024-01-12 Add the start of support for interpolated strings
2024-01-28 `StringValue` can parse interpolated strings with the help of new method `ParseInterpolated`
2024-02-06 Add home page and more whitespace to help screen. Change `getchar()` to `wscanf()` to keep console window open.
2024-02-07 Add line and column delta calculations to `class Errors`. `StringValue` gives correct line/column numbers for interpolation errors. Some interpolation errors no longer report `EOF expected`. Add modded Coco/R *.frame files.
]2024-02-08 Add new function `wchar_to_UTF8()` called by `StringValue()`. Change some uses of `*pChar` to a char literal when the given char is obvious.
2024-02-11 `MultiplicativeOperator`: Fix incorrect line/column in warnings when MOD and/or REM is interpolated. Add accessors `ColDelta` and `LineDelta` to class `Errors` to help with that.
2024-02-11 Move `UnaryOperator` into `UnaryExpression`. Add warnings for whitespace after plus and minus.
2024-02-13 Change `wsprintf` to `swprintf` for `%f` support
2024-02-13 Add `OptionalArgList`. Add some support for `@Option Args Enclosed` with procedure calls.
2024-02-14 `CallOrNew`: Refactor heuristics for `Call` to reduce duplicated tests; Add two heuristics for `New`.
2024-02-15 Main.cpp: Change elapsed time from seconds to milliseconds
2024-02-17 Add char set `notAfterStr` and use it in token `malformed_string_literal`
2024-02-18 `PrimaryExpression`: Change error messages for malformed tokens, especially malformed string
2024-02-18 `ConstantValueError`, `PrimaryExpression`: Give better error messages, especially when a line starts with a malformed token
2024-02-19 `NewBlockStatement`, `NewMember`: Change syntax of the construct with `Begin Call` from collection initializer to semicolon-separated argument lists
2024-02-24 Add minimal support for Rust-style literal suffixes (eg, `123i8`, `123r64`, `123u128`). Let hex literals end with underscore. Fix a bug in line continuation. Reduce some verbosity of subtokens.
2024-03-05 Full re-write of modifier handling to use RTTI and polymorphic classes. Makes it much more type-safe.
2024-03-08 Let `Begin` come after a comma+EOL at the end of an argument list. Change `NewBlockStatement` to `NewBeginStatement`.
2024-03-11 `ParseInterpolated`: Change function call from `Expression` to `TolExpression`
2024-03-12 Remove token `nullable_identifier` and replace it with `hash` ('#') used in `Name` and `ObjectName`
2024-03-12 `IsPropertySelf()`: Refactor to remove a redundant test. `typed_identifier` will always contain a sigil.
2024-03-18 `EnclosedArgumentList`: Add null-conditional element/index access operator `(?)`
2024-03-19 Make `@Const If` an alternative to `Const If`
2024-03-20 Try to improve performance when source code contains many modifiers
2024-03-20 Put limits on unnecessary calls to `Modifiers::Let()` at 4+ calls
2024-03-30 Change how modifiers are stored, again. Use a vector of pair's. Add helper `Modifiers::find()`.
2024-03-30 Wrap most calls to `std::find` into new method `in_context`
2024-03-30 Change `Block()` to `ExitBlock()`. Move functionality of `Exit_block_with_block()` and one test from `ExitStatement()` into `ExitBlock` and remove the first.
2024-04-06 Change the syntax of `Does` used to apply traits.
2024-04-12 Fix 2 bugs: `IsPropertySelf` was true for any name that started with 'self'. `ArrayDimensionList`: change `Expression` to `EnclosedExpression`.
2024-04-19 Change syntax of default property to `Property [Self] ! name (...)`. Remove `IsPropertySelf()`.
2024-04-19 Change syntax of property to allow the line `Get = expr`
2024-04-24 `PropertyStatement`: Better tests for correct numbers of parameters for default property and `Set`
2024-04-25 Fix and/or clean up many error messages
2024-05-01 `main` returns 2 to indicate a programming error
2024-05-06 'Expression': Catch errors 'Possibly missing operator [after type character]'
2024-05-08 Major refactor: Remove productions with one caller to their parent.
2024-05-23 Major refactor continued. Move one-time productions to their parent productions.
2024-06-01 `ModuleWhere::normalize`: Ignore fourth group with only zeros, eg '01.02.03.00' becomes '1.2.3'. Fix bug in call to `wcscpy_s`.
2024-06-01 Major refactor completed
2024-06-10 'UnitStatement': Add assignment checking with block `When`. Change 'CaseExpression' to 'ComparisonClause'.
2024-06-21 'ConstStatement': Permit `@Shared`, but warn that it has no effect
2024-06-21 Move `ConstIfStatement` into `ConstStatement`. Add check for no modifiers. Add comments for other lines that do the same.
2024-06-27 Modifiers can use `unique_ptr` as an alternative to `shared_ptr`. Also makes the exe smaller.
2024-07-02 `CallOrNew`: Fix bug in heuristic
2024-07-07 Give a better error message if the logical operators `And Then` and `Or Else` are mistyped as single words, eg `AndThen`
2024-07-09 Change `UnitOfMeasure` to `UnitOrSuffix`. Add checks for correct data type suffixes.
2024-07-19 'UnitOrSuffix': Prevent possible overflow for bad literal suffixes _________________ Brent
Last edited by Brent on Jul 26th, 2024, 5:39pm; edited 16 times in total |
|