Bay Six Software Forum Index Bay Six Software
Beyond the Basics
 FAQFAQ   SearchSearch   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Change log for 2022

Post new topic   Reply to topic    Bay Six Software Forum Index -> ViviFire language
View previous topic :: View next topic  
Author Message
Site Admin

Joined: 01 Jul 2005
Posts: 799

PostPosted: Jan 9th, 2022, 6:50pm    Post subject: Change log for 2022 Reply with quote

2022-01-08 'EnclosedArgumentList': Make empty arguments possible. This makes 'UnenclosedArgument' unnecessary.
2022-01-08 'EnclosedArgumentList': Make empty arguments possible

2022-01-11 'RequireStatement': Add 'As alias' syntax
2022-01-17 Fix 'option.Parse()' to consume bad tokens and give correct position in error messages. Update copyright.

2022-01-24 Comment out unused resolvers.
2022-01-26 'PrimaryExpression': Give appropriate error when nondecimal integer follows primary.
2022-01-31 Remove recent addition to 'PrimaryExpression'. Add similar code to 'Argument' and 'ConcatenationExpression' that show warnings.
2022-02-09 'TypeParameter', 'TypeParameterList': Add 'parent' parameter. Add argument to all calls to these to do tests for 'In' and 'Out' modifiers.

2022-02-10 'TypeParameter': Add test for parent of 'Event' or 'Trait'
2022-02-11 Add '@Option Select Else String'
2022-02-12 Refactor 'Constraint': Combine 'ConstructorConstraint', 'DoesConstraint', 'IsConstraint', and 'SelfConstraint'.
2022-02-13 Add missing 'Where' clause to 'StructStatement'
2022-02-13 'Rename enum 'opt_sce' to 'select_type' and all its constants
2022-02-13 Change enum constants to all caps
2022-02-13 'WhenStatement': Show an error if more than one 'When Else'
2022-02-13 'IsPropertySelf': Change three comparisons to a call to 'wcschr'
2022-02-13 'UnitStatement': Add TODO. Minor housekeeping.
2022-02-14 'Constraint': Add test for 'Trait ... Where Self ...'. Reformat code to reduce line lengths.
2022-02-14 In 'separate_console', major rewrite makes it simpler. Add several '#if defined ...' to start to make the code more portable.

2022-02-19 Move block statements from 'Statement' to 'BlockStatement'. Add 'SimpleStatementError'. Change names: 'CompoundIfStatement' to 'IfBlock...', 'CompoundNewStatement' to 'NewBlock...'.
2022-02-22 'WhereClause': Add parameter and test for generic element. 'FunctionSignature': Add test for return type. 'SubSignature': Add test for return type with 'Handles'. 'TraitStatement': Change 'Name' to 'identifier'.
2022-02-24 'NewMember': Add 'Newline', 'IdentifierStatement' (property call), and 'ObjectStatement'. Change 'ObjectStatement' to take a 'Modif' pointer. Change how vars are init'd by other similar functions.

2022-02-27 Fix several error messages. Change calls to 'Err' to 'SemErr'. Capitalize keywords.
2022-03-05 'DeclaratorList': Make comma a weak separator, follow it with line break. 'StructState': Change 'Declarator' to 'DeclaratorList'.
2022-03-05 'StructState': Add 'Const', 'Enum', 'Event', and 'Struct' as members
2022-03-05 'StructProcedure': Add 'Function', 'Method', 'Property', and 'Sub' as members
2022-03-05 'ClassOrObjectMember': Add 'Const', 'Enum', 'Event', and 'Struct' as members. 'StructState': Show error for 'Class' as member.

2022-03-10 Add sigil '@' for 'Fixed64' data type
2022-03-14 'UnitAlias': Add optional integer for grammatical number, error messages
2022-03-14 'UnitAlias': Permit '0' before aliases with plurals

2022-03-18 'FunctionStatement': Permit modifier '@Iterator'
2022-03-21 'CCEval': Add test that directive starts line
2022-03-21 'Constraint': Permit class to use Self constraint. 'StructStatement': Fix incorrect argument in call to 'WhereClause'.
2022-03-24 'ClassOrObjectMember': Add 'NewStatement'. 'NewStatement': Add parameter 'mods'.

2022-03-29 Refactor construction/destruction to permit hot-swappable scanners
2022-03-31 'LoopBody', 'WhenStatement': 'When Each' is equivalent to 'When Else'. Make sure no two When statements are the same with a 'set'.
2022-04-02 'option.Parse': Add support for '@Option When ...', refactor code to make it more consistent, move repetitive code into helper functions.
2022-04-04 'WhenStatement': Add test that Begin label agrees with When label
2022-04-09 'LoopBody', 'WhenStatement': Change to use a std::map for labels

2022-04-13 'Module': Change library module to permit qualified name
2022-04-14 Change names of several tokens to make them more general
2022-04-16 Add support for '@Option String {Slash|Backslash}'. Fix some error handling.
2022-04-18 'ViviFire': Add 'ConstantValueError' to catch when a statement starts with a literal
2022-04-18 Add 'option.test' and 'ParseInlineComment' to permit '@Option Test' in conjunction with semantic comments 'expect-error' and 'expect-warning'. Partial implementation.
2022-04-18 'ConstantDeclarator': Change identifier to 'Name'

2022-04-22 Fix namespace issues
2022-04-22 Add variable 'module' to hold AST. Group related code. Add some comments.
2022-04-25 Move 'option.match' to 'Parser::Match', add 'Matches'. 'NewBlockStatement': Add tests for 'End'. 'DeclareStatement': Add tests for flags.
2022-04-29 Move part of 'InitializationExpression' into 'CollectionInitializer'. Change 'NewBlockStatement' to make 'Call' name optional and use 'CollectionInitializer'.
2022-04-30 'DoStatement': Add test for 'Loop While' or 'Loop Until' in loops that start with 'Do While' or 'Do Until'

2022-05-04 'UnenclosedArgumentList': Remove implicit line continuation after comma. Add 'OptionalNewline' to better mark implicit line continuations.
2022-05-04 Add 'DeclarationStatement' which gets added to 'Statement' and other places
2022-05-06 Add modifier '@MustUse'
2022-05-06 Add 'Deprecated' to avoid code duplication

2022-05-10 Replace 'AST::Program' and 'AST::Library' with 'AST::Module'
2022-05-14 Change destructors to use bare 'delete' for strings
2022-05-14 'StringExpression': Add out parameter to return combined substrings, which uses new 'StringValue', which uses new 'NamedString' (partially implemented)
2022-05-16 Add new method 'has' to return if a given modifier is present
2022-05-16 Methods and Subs: Add modifier '@Const' to specify that a procedure can be evaluated at compile-time. Add error messages if procedures with '@Const' or '@MustUse' have no return type.
2022-05-17 'ViviFire': Add test for invalid directives and modifiers
2022-05-18 Add 'DeclareStatement' as member of more constructs
2022-05-18 Remove standard block comments. Make /' ... '/ mid-line comment.
2022-05-18 'StringValue': Add missing decimal constant
2022-05-19 'Modifier': Change modifiers from individual tokens to composite tokens made from at-sign + identifier

2022-05-21 Add 'LambdaExpression'
2022-05-24 Copy declaration statements to 'ModuleMember' to fix conflict with '@'
2022-05-25 'separate_console': Re-instate Win32 APIs on Windows, since the POSIX code did not work correctly
2022-05-26 Make new macro 'S_PATH_SEP' and use it in 'NamedString' and 'StringExpression'
2022-05-27 Add call to '_setmode'. Change calls that use 'char' to use 'wchar_t' equivalents.
2022-05-27 'LambdaExpression': Add back 'Sub' and 'Function' address operators. Refactor duplicate code into 'LambdaFunction' and 'LambdaSub'.

2022-05-29 Change non-decimal integer literals: '&B' to '%B', '&O' to '%O', and '&H' to '%X'
2022-05-29 'StringValue': Change hex constant from '$H' to '$X'
2022-06-18 Start changes to directives. Add colon to MidlineComment.

2022-06-18 'BitFieldType': Add optional type argument
2022-06-18 Add (to all block statements) error messages of the form '<block> without END'
2022-06-22 Change 'integer_constant' and 'integer_literal' to make them more user-friendly
2022-06-26 'UnenclosedArgumentList': Make error messages more STE. Remove some commented out code.
2022-06-26 'UnenclosedArgumentList': Fix implicit line continuation
2022-06-29 'ViviFire': Add 'Begin' to block construct errors
2022-06-29 Catch misplaced 'Require' and 'Where'

2022-07-09 Comment out 'Namespace' statement
2022-07-20 Add operator and function 'Div' to deal with division by zero
2022-07-20 Fix 'DivFunction': Change expressions to 'EnclosedExpression'

2022-08-26 'option.Parse': Add 'ArgByName'. Add test for length before string matches.
2022-09-10 Add timer for run time
2022-10-29 Add context tests and error messages

2022-11-06 'Expression': Cannot have expression after TOL clause
2022-11-17 Newline or inline comment must come after line continuation

2022-11-25 'IfStatement': Change 'SyncNewline' to 'Newline' to prevent errors when the parser got out of sync after 'IF without END'
2022-11-26 'SyncNewline': Add test to stop errors after the first, which caused the parser to get out of sync
2022-12-07 Cannot use METHOD in PROGRAM module


Last edited by Brent on Feb 1st, 2023, 6:27pm; edited 19 times in total
Back to top
View user's profile Send private message Send e-mail
Site Admin

Joined: 01 Jul 2005
Posts: 799

PostPosted: Dec 8th, 2022, 7:23pm    Post subject: Re: Change log for 2022 Reply with quote

Go to to download the latest demo and source code.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    Bay Six Software Forum Index -> ViviFire language All times are GMT
Page 1 of 1
Jump to:  
Quick Reply
   Shortcut keys: Alt+Q to activate, Alt+P to preview, Alt+S to submit
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

Lo-Fi Version
Powered by phpBB © 2001, 2005 phpBB Group