-
Notifications
You must be signed in to change notification settings - Fork 0
/
rel_notes.txt
1094 lines (840 loc) · 44.5 KB
/
rel_notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Interactive BASIC Compiler Project
File: rel_notes.txt - contains release notes for each version posted
Copyright (C) 2009-2013 Thunder422
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
For a copy of the GNU General Public License,
see <http://www.gnu.org/licenses/>.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Planned Roadmap (updated 2013-04-05):
Implement new translator scheme
Define internal program format
Implement initial Encoder (RPN list to internal code)
Implement Variable Dictionary (needed for Encoder)
Implement initial Decoder (internal code to RPN list)
Implement initial Recreator (RPN list to program text)
Integrate Recreator to GUI (update Edit Box)
Integrate Decoder/Recreator/GUI
Implement initial Run-time Module (for LET, PRINT and INPUT)
Implement Colon
Implement DIM command and arrays
Implement IF command
Implement FOR-NEXT commands
Implement DEF FN command
Implement DO-WHILE-UNTIL-LOOP commands
To be defined...
Release 0.4.4 (2013-08-18)
Project developmental release - implementation of the new
translator scheme continues with the translation of all INPUT
statements and some improvements were made to the core
translator routines.
- reorganized associated code processing
- new variable or define function reference type
Note: All tests succeed when using the old translator. Since
some of the expected results are now different (due to the
change in translations), the unmodified expected results files
are saved and the test scripts use these when present. There
are temporary scripts for testing the new translator routines.
All tests containing assignment, PRINT and INPUT statements work
correctly with the new translator routines. The regtestn.bat
batch does not currently work very well as the old translator
expected results files confuse it.
Release 0.4.3 (2013-08-15)
Project developmental release - implementation of the new
translator scheme continues with the translation of all PRINT
statements and some improvements were made to the core
translator routines.
- implemented token caching
- includes token leak and extra delete detection
- corrected minor issues in old translator routines
- many new parser error tests have been added
Note: All tests succeed when using the old translator. Since
some of the expected results are now different (due to the
change in translations), the unmodified expected results files
are saved and the test scripts use these when present. There
are temporary scripts for testing the new translator routines.
All tests containing assignment and PRINT statements work
correctly with the new translator routines. The regtestn.bat
batch does not currently work very well as the old translator
expected results files confuse it.
Release 0.4.2 (2013-08-01)
Project developmental release - implementation of the new
translator scheme continues with the translation of all LET
statements and some improvements were made to the core
translator routines.
- implemented more functional done stack class
- reformatted token status messages
- corrected issues with unary operators and parser errors
- corrected a dependency cmake issue with autoenums.h
- changed how token codes are checked
- corrected minor issues in old translator routines
- auto-generate memory error suppression file for Qt version
Note: Some issues in the old translator have been corrected and
now all tests succeed when using the old translator. Since some
of the expected results are now different (due to the change in
LET statement translations), the unmodified expected results
files are saved and the test scripts use these when present.
Temporary scripts were added for testing the new translator
routines. All tests containing assignments work correctly with
the new translator routines. The regtestn.bat batch does not
currently work very well as the old translator expected results
files confuse it.
Release 0.4.1 (2013-07-05)
Project developmental release - implementation of the new
translator scheme continues with the processing of expressions
containing parentheses (open/close parentheses, internal functions,
and arrays/function).
- corrected a dependency cmake issue with autoenums.h
- corrected an issue with unary operators
- changed how token codes are checked
- corrected minor issues in old translator routines
Note: Expression test #1 currently fails due to new expression
errors tests that were added. The new translator works
correctly with all four expression tests.
Release 0.4.0 (2013-06-30)
Project developmental release - implementation of the new
translator scheme has started with the processing of simple
expressions containing simple operands (constants and
identifiers with no parentheses), unary and binary operators.
- new temporary command line -n and -ne options added
- additional tests added to expression test #1
- temporary strings data type removed
- updated valgrind suppress errors file (was not complete)
Note: Expression test #1 currently fails due to new expression
errors tests that were added. The new translator works
correctly with the test only.
Release 0.3.5 (2013-06-15)
Project developmental release - the program model and translator
have now been integrated into the edit box, which will highlight
errors. Major changes include:
- Implemented REM command and operator with additional tests
- Program view now displays translater RPN list
- New ErrorList class for holding errors
- Corrected an undo/redo issue
- Edit box will highlight errors with message on status bar
- New go to next or previous error actions
- Line and column numbers now display on status bar
- Changed git naming convention
Release 0.3.4 (2013-03-23)
Project developmental release - the program model has been
integrated with the translator and now stores the translated RPN
(reverse polish notation) lists, which may contain an error, and
the program view displays the text representation of the RPN
list. Other major changes:
- New RpnList class the holds list of RPN items or an error
- Corrected the precedence of the Colon operator (not yet
implemented) to resolve an issue that occurred in lines with
a colon.
- Removed copyright and table initialization error from test
output so that the expected results files do not need to be
changed when the copyright year changes.
Release 0.3.3 (2013-03-23)
Project developmental release - the edit box now displays an '*'
on modified lines (though it may not actually be modified, but
will be reported once the cursor leaves the line) and a '+' with
no line number of a new line that has not yet been reported as
inserted, a data model was implemented to hold the program (just
the text of the program lines for now) along with a temporary
program view in a dock widget to monitor the internal program
during development, the position and size of the dock widget is
saved upon exit, many issues were corrected in the edit box with
detecting program lines, and some other minor issues were
corrected. New Classes:
ProgramModel - Holds internal program code
ProgramLineDelegate - Draws lines to ProgramView widget
Release 0.3.2 (2013-03-09)
Project developmental release - many edit box changes including
using a fixed font, special handling of the return key, adding a
context (right-click) menu, changed to the plain text edit
widget, capturing line changes (including insertion and
deletion) due to edit operations that change the document, and a
few other minor GUI tweaks.
Release 0.3.1 (2013-01-21)
Project developmental release - additional GUI elements have been
implemented including restoring the file that was last being edited,
option to load a file from the command line, an open recent file list
sub-menu with a clear list option, remembering the current working
directory, edit menu and tool bar edit actions for undo, redo, cut,
copy, paste, delete and select all.
Release 0.3.0 (2013-01-01)
Project developmental release - basic GUI elements have been
implemented including file and help menus with basic file operation
menu items, the tool bar with several file operations, an edit box for
editing the program and a status bar. For now the program only handles
text files. A resources file has also been added to support imbedded
icons.
Release 0.2.0 (2012-12-09)
Project developmental release - the project was transitioned to using
the Qt graphical development toolkit. This includes using the Qt tool
classes instead of the C standard library functions. Implementation
of the GUI was started, but only the about box is functional when the
program is started with no command line options. The following
additional major changes were made in this release:
- new tester, command line and main window classes
- class definitions put into their own header files
- translator token and command handlers in their own source files
- test functions put into new tester class
- list, stack and string classes replaced with Qt classes
- variable and function names renamed using camel casing
- main source file changed from ibcp.cpp to main.cpp
- header change commands were removed from source files
(see the git repository for details of changes)
- cmake now detects when version number mismatches with git repository
- new memory leak detection test script
- test programs and results removed (no longer applicable)
Release 0.1.16 (2011-03-25)
Project developmental release - the build system for project has
been put under the CMake build system replacing the previous Makefile.
The following additional changes were made:
- new enums.awk script (replaces codes.awk) generates autoenums.h,
which contains code_enum (generated from table.cpp)
and TokenStatus (generated from ibcp.cpp)
- removed parenthesis from identifiers
- added support for negative contants
- in addition to Windows XP 32-bit added support for 64-bit Linux
(Ubuntu based distributions) and 64-bit Windows 7 (through 32-bit
MinGW
- new test_names.awk script (replaces test_codes.awk) generates
test_names.h, which contains text name arrays for the code,
token type (new), and data type (new) enumerations for used in
the parser test code
- redesigned test code to read test inputs from text files instead
of containing the test inputs inside the source files
New (listed first) and updated files include (files updated for
copyright year only are not listed):
.gitignore - tells git which files to ignore
CMakeLists.txt - main file for CMake build system
enums.awk - generates autoenums.h header from source files
ibcp_config.h.in - file for generating ibcp_config.h by cmake
regtest.in - file for generating regtest script by cmake
expression*.dat - input text files for expression tests
parser*.dat - input text files for parser tests
translator*.dat - input text files for translator tests
test_names.awk - generates strings from enums header for test output
test/string.txt - expected result for test_string
ibcp.h - token status enum now auto-generated (autoenums.h)
ibcp.cpp - token status enum now auto-generated
- program info now auto-generated (ibcp_config.h)
- updated for changed in test routines
parser.cpp - modified to not store parentheses with identifier
- now treats '-' with constants as negative constants
- checks for maximum integer (to work on 64-bit)
regtest.in - used to configure regtest by cmake
- modified to automatically detect tests to run
regtest.bat - modified to automatically detect tests to run
table.cpp - corrected compiler warning
test_codes.awk - read from table.cpp instead of ibcp.h
test_ibcp.cpp - now reads test inputs from test file
translator.cpp - input command plus other changes
test/ sub-directory:
expression1-4.txt - renamed from translator1-4.txt
parser3.txt - modified for change in exponent digit output
translator01-13.txt - renamed from transltor5-17.txt
Files removed:
Makefile - automatically generated by cmake
codes.awk - replaced with enums.awk
regtest - automatically generated by cmake from regtest.in
test_codes.awk - replaced with test_names.awk that does more
Release 0.1.15 (2011-03-25)
Translator developmental release - the INPUT and INPUT PROMPT commands
have been implemented along with several updates
including:
- token codes and table entries indexes now the same
- corrected print function issues
- corrected sub-string assignment issues
- handling assignment token mode differently
- handling define function tokens correctly
- implementing end statement Translator state
- implementing reference token mode
New (listed first) and updated files include:
translator16.txt - contains INPUT command test inputs
codes.awk - read from table.cpp instead of ibcp.h
Makefile - awk script dependency changes
ibcp.h - numerous changes
ibcp.cpp - error message changes
parser.cpp - minor correction for define function tokens
parser1-5.txt - removed code numbers
regtest - added translator test 16
regtest.bat - added translator test 16
table.cpp - new input codes
test_codes.awk - read from table.cpp instead of ibcp.h
test_ibcp.cpp - new tests and sub-codes, parser output change
translator.cpp - input command plus other changes
translator2.txt - updated for error message changes
translator3.txt - updated define function translation
translator5.txt - updated for error message changes
translator6.txt - updated for error message changes
translator9.txt - updated for error message changes
translator10.txt - updated errors and added more PRINT tests
translator11.txt - updated for error message changes
translator12.txt - updated errors and added more error tests
Release 0.1.15-pre-1 (2011-02-08)
Translator preliminary developmental release - the comma and
semicolon token handlers have been restructured where command
related code was moved to the appropriate command handlers, the
command handlers now contain a switch statement to process the
token dependent on the code of the token. The Translator's
add_token() function, which was getting rather large, was
restructured into several more reasonable sized functions. The
"expected statement" error was changed to "expected command"
error. Updated files include:
ibcp.h - new translator functions
ibcp.cpp - error message change
translator.cpp - add_token() separated into several functions
translator5.txt - updated for error message change
translator11.txt - updated for error message change
translator13.txt - updated for error message change
Release 0.1.14 (2011-02-08)
Translator developmental release - full expression type handling
has been implemented in preparation for the implementation of
more commands. A summary of changes from Release 0.1.13:
- token status (error) messages put into an array
- multiple 'equal' assignments removed
- improved error reporting
- additional token and table initialization checking
- development moved to NetBeans (VIDE2 now abandoned)
- make file included for building (NetBeans not required)
- codes.txt and test_codes.h now automatically generated
- all files new in DOS format (CRLF terminated lines)
- corrected many token memory leaks
- added token memory leak detections
The current changes include full support for temporary strings
(which have different codes because at run-time temporary
strings need to be deleted when no longer used). Assignment
operators required additional changes to work correctly with
temporary strings.
All files were Cleaned up including the formatting of comments,
trailing whitespace at the end of lines removed, leading spaces
changed to tabs (which occurred upon first using NetBeans
editor), and many spelling errors in comments were corrected.
The new make file is used for building the project (assuming
MSYS, with awk and make, and MinGW, with GCC 4.4.0, are
installed; NetBeans not required). In the IBCP directory once
unzipped, the 'make' command builds the ibcp.exe program, the
'make tests' builds all the test programs in the test directory,
and 'make test_xxx' builds a specific test program (test_stack,
test_nums, test_cons, test_string, and test_strings). The
command 'make cleantests' removed all the test programs and
object files, and 'make clean' removes all programs and objects.
Updated files include (from Release 0.1.14-pre-4):
translator15.txt - added temporary string tests
Makefile - cleaned up, tests added
ibcp.h - leak detection, temporary string support
ibcp.cpp - fix memory leaks, add token leak detection
list.h - internal list class updates
regtest - added translator test 15
regtest.bat - added translator test 15
parser.cpp - corrected bug where constant '0' caused error
parserX.txt - updated for change in EOL code
stack.h - cleaned up formatting of comments
stack.txt - output from test stack program
string.h - cleaned up formatting of comments
table.cpp - temporary string support, multiple fixes
test_cons.cpp - updated (include DOS format)
test_nums.cpp - updated (include DOS format)
test_stack.cpp - updated (include DOS format)
test_stack2.cpp - updated (include DOS format)
test_string.cpp - updated (include DOS format)
test_ibcp.h - translator test 15, memory leak fixes
translator.cpp - memory leak fixes, temporary string support
translator1.txt - updated for temporary string changes
translator3.txt - updated for temporary string changes
translator4.txt - updated for temporary string changes
translator6.txt - updated for temporary string changes
translator7.txt - updated for temporary string changes
translator8.txt - updated for temporary string changes
translator9.txt - updated for temporary string changes
translator10.txt - updated for temporary string changes
translator12.txt - updated for temporary string changes
translator14.txt - updated for temporary string changes
Release 0.1.14-pre-4 (2011-01-26)
Translator preliminary developmental release - implemented the
saving of the first and last operands to operands (operators,
functions and array) that have been processed so that when
expression type errors are detected, the entire sub-expression
in error can be reported. All but test 12 are working
correctly, however, test 12 was modified for the expected
results for when arrays on the left side of assignments are
processed correctly. Updated files include:
ibcp.h - moved datatype from ExprInfo to TableEntry
parser.cpp - corrected bug where constant '0' caused error
stack.h - optimizations
translator.cpp - corrected numerous expression type issues
translator6.txt - updated for expression type changes
translator7.txt - updated for expression type changes
translator12.txt - updated for expression type changes
translator14.txt - added more test statements
Release 0.1.14-pre-3 (2011-01-09)
Translator preliminary developmental release - more expression
type issues have been resolved; all but test 12 are working
correctly. A summary of the other changes made:
- many corrections to Translator for expression type issues
- added new set of Translator tests
- development moved to NetBeans (VIDE2 abandoned)
- new make file for building program (NetBeans not required)
- codes.txt and test_codes.h removed (generated by makefile)
- all files now in DOS format (CRLF terminated lines)
New (listed first) and updated files include:
translator14.txt - contains expression error tests
ibcp.h - moved datatype from ExprInfo to TableEntry
ibcp.cpp - updated bug error messages
regtest - added translator test 14
regtest.bat - added translator test 14
table.cpp - moved datatype of all entries
test_ibcp.cpp - added translator test 14
translator.cpp - corrected numerous expression type issues
translator9.txt - updated for expression type changes
translator10.txt - updated for expression type changes
translator11.txt - updated for expression type changes
translator12.txt - updated for expression type changes
translator13.txt - updated for expression type changes
Release 0.1.14-pre-2 (2010-12-27)
Translator preliminary developmental release - first eight
translator tests are working correctly, the rest are not yet. A
summary of the other changes made:
- multiple equal assignments removed
- operand processing as each is processed
- addition of new data type specific associated codes
- no attachment of operands to sub-string functions
- functions with different number of arguments reordered
- additional table initialization including new checks
Multiple equal assignments were removed because the type of
type of variable being assigned can not be determined when the
expressions contain an identifier with parentheses as either an
array of function (multiple comma assignments remain).
The Translator was modified to process one operand of operators
and internal functions one at a time, removing each from the
done stack except string operands, which are left so they can be
attached to the operator or internal function tokens.
New associated codes were added for all the operators
that can take different data type arguments (for example double
or integer). Hidden conversion codes will no longer be
necessary for these.
For sub-string functions, no string operand is attached - the
operands will be left on the done stack and carried forward to
be attached to the next non-sub-string token. This is because
during run-time, the sub-string functions behave the same
whether the operand is a string or a temporary string.
Internal functions with different number of arguments (ASC,
INSTR, and MID$) were reordered in the table putting the form
with the least number arguments first. This was necessary
because operands are now processed one at a time instead of all
at the end.
To make sure the functions with different number of arguments
are entered into the table correctly (necessary for the
Translator to work properly), checks were added to the table
initialization to insure that these entries are correct. The
number of string arguments (non-temporary) was added to the
table entries where this value is automatically generated during
table initialization.
New (listed first) and updated files include:
test_codes.awk - new script to generate test_codes.h
test_codes.h - contains code names for test_ibcp.cpp
translator12.txt - contains more error tests
translator13.txt - contains semicolon error tests
codes.awk - only look for codes in Code enumeration
codes.txt - updated for token code changes
ibcp.cpp - outgoing development changes
ibcp.h - outgoing development changes
ibcp.vpj - removed -O2 option for easier debugging
regtest - added new tests
regtest.bat - added new tests
stack.h - optimizations
table.cpp - outgoing development changes
test_ibcp.cpp - updated tests
translator.cpp - outgoing development changes
parser5.txt - updated for token code changes
translatorXX.txt - updated for changes
Release 0.1.14-pre-1 (2010-06-26)
Translator preliminary developmental release - all known error
reporting issues are now being reported as desired. Other
changes include:
- token status (error) messages put into an array
- error template created for table and token status errors
Note: a CVS branch will be used for future development for each
subsequent developmental release. This will aid in development
where intra-day development can be committed to the CVS
repository without disturbing the main truck containing the last
release. The result of this can be seen from the CVS revision
tags in the source files in this and future preliminary
(formally called interim) releases. This should not show up in
formal developmental releases. New (listed first) and updated
files include:
ibcp.h - added error template (replaces table error)
ibcp.cpp - token status messages and initialization
table.cpp - minor updates due to new error template
test_ibcp.cpp - more error tests, removed error messages
translator.cpp - added checks to report desired errors
translator11.txt - changes to error messages, new tests
Release 0.1.13 (2010-06-15)
Translator developmental release - the PRINT command has been
implemented with the print functions along with several updates
including:
- command handler functions (PRINT, Assign and LET)
- command stack item flags (for used by commands)
- command support at end-of-line handling
- better error reporting (makes attempt to report when
is expected next when an error is detected)
There are still several errors that are not being reported as
desired. The new translator11.txt file contains what error
messages are expected and not what is actually output be the
current program (the error messages were modified to the desired
message from the actual output file). The regression tests will
report a failure with test #11. These errors will be corrected
in a future release. A release is being made because it has
been too long since the last release. New (listed first) and
updated files include:
regtest - updated for more tests
regtest.bat - updated for more tests
translator10.txt - contains PRINT command test inputs
translator11.txt - contains statement errors test inputs
ibcp.h - PRINT command support plus more
parser5.txt - updated for MID3$ code change
stack.h - renamed SimplyStack to Stack
table.cpp - added support for PRINT command and functions
test_ibcp.cpp - added PRINT and statement error tests
translator.cpp - PRINT command support/better error reporting
translator2.txt - updated for change of error messages
translator3.txt - updated for change of error messages
translator4.txt - updated for change of error messages
translator5.txt - updated for change of error messages
translator9.txt - updated, PRINT now valid command
Release 0.1.12 (2010-05-30)
Translator developmental release - the LET command has been
implemented along with several updates including:
- token handler functions
- token sub-code support to replace dummy tokens
- parser bug fix for single '0' constant
- parser test updates (long overdue)
- numeric constant correction in test output code
- regression test scripts (MSYS/bash and Windows batch file)
New (listed first) and updated files include:
regtest - bash script to run and compare all tests
regtest.bat - Windows batch file to run & compare all tests
translator9.txt - contains command test inputs (LET for now)
ibcp.cpp - fixed usage message/token table entry flags
ibcp.h - updated support for translation of commands
parser.cpp - corrected bug where constant '0' caused error
parser1.txt - updated for code/data type changes
parser2.txt - updated for code/data type changes
parser3.txt - updated for code/data type changes
parser4.txt - updated for code/data type changes
parser5.txt - updated for code/data type changes
table.cpp - updated table entries for command support
test_ibcp.cpp - added command tests/update parser test code
translator.cpp - sub-code flag support, command (LET) support
translator2.txt - updated for sub-code flag output
translator3.txt - updated for sub-code flag output
translator5.txt - updated for sub-code flag output
translator6.txt - updated for sub-code flag output
translator7.txt - updated for sub-code flag output
translator8.txt - updated for sub-code flag output
Release 0.1.11 (2010-05-22)
Translator developmental release - the string data type is now
fully implemented by the Translator including temporary string
handling, sub-string assignments, string list assignments, and
mixed string and sub-string assignments. Updated files include:
codes.txt - updated for mix-string assignment operator
ibcp.h - added sub-string support/new table errors
stack.h - added number of items on stack access function
table.cpp - sub-strings/new operator/max table checks
test_ibcp.cpp - added sub-string assignment test statements
translator.cpp - assign list: save all operands/mix strings
translator7.txt - updated for string list operand correction
translator8.txt - updated for additional string assignments
Release 0.1.11-dev-3 (2010-05-21)
Translator interim developmental release - added support for
sub-string assignments. Also added checks for the maximum
number of operands and associated codes constants against the
actual table entries during table initialization. New (listed
first) and updated files include:
translator8.txt - updated for correction of saved operands
codes.txt - updated for sub-string assignment operator
ibcp.cpp - added maximum operands/assoc codes errors
ibcp.h - added sub-string support/new table errors
table.cpp - sub-strings/new operator/max table checks
test_ibcp.cpp - added sub-string assignment test statements
translator.cpp - added sub-string plus assignment support
Release 0.1.11-dev-2 (2010-05-17)
Translator interim developmental release - corrected minor
problem with save operands pointing to inserted conversion code.
Updated files include:
translator.cpp - correct saved operands/cvt code problem
translator3.txt - updated for correction of saved operands
translator4.txt - updated for correction of saved operands
Release 0.1.11-dev-1 (2010-05-15)
Translator interim developmental release - support for temporary
strings has been implemented. Updated files include:
ibcp.h - updated for temporary string, saving operands
table.cpp - updated codes for temporary strings
test_ibcp.cpp - prints saved operands in output list
translator.cpp - temporary string, saves operands
translator1.txt - updated for output of saved operands
translator3.txt - updated for output of saved operands
translator4.txt - updated for output of saved operands
translator5.txt - updated for output of saved operands
translator6.txt - updated for output of saved operands
translator7.txt - updated for output of saved operands
Release 0.1.10 (2010-05-09)
Translator developmental release - Data type handling has been
implemented for assignment operators. Expression related
information has been moved from the table entries to a
structure. New (listed first) and updated files include:
translator7.txt - output for assignment operator data type tests
codes.txt - updated for data type specific assign codes
ibcp.h - updated for expr info struct/data type assigns
table.cpp - updated for expr info struct/data type assigns
test_ibcp.cpp - added data type assignment test statements
translator.cpp - added data type handling for assignments
translator5.txt - updated for assignment data type handling
translator6.txt - updated for assignment data type handling
Release 0.1.9 (2010-04-28)
Translator developmental release - Data type handling has been
implemented for expressions, but not assignment operators. Now
that all the files are under CVS control, the entire source tree
including the test directory files are included in this release
(the source files contain a CVS ID tag, the text files do not).
However, only future major releases will contain the entire
source tree. All of the test output files are now located in
the test subdirectory. New (listed first) and updated files
include:
translator6.txt - output for assignment operator tests
codes.awk - updated to allow multiple codes per line
codes.txt - updated for new data type specific codes
ibcp.cpp - corrected command line program name bug
ibcp.h - updated for data type handling
ibcp.vpj - added -static-libgcc for command line bug
stack.h - made minor improvements
string.cpp - renamed str memory to less confusing ptr
string.h - renamed str memory to less confusing ptr
table.cpp - updated for data type handling
test_ibcp.cpp - added data type test statements
translator.cpp - added data type handling
test/:
test_parser.cpp - (obsolete) made to compile with ibcp.h
test_string.cpp - updated to compile in test subdirectory
translator1.txt - updated for data type handling changes
translator2.txt - updated for data type handling changes
translator3.txt - updated for data type handling changes
translator4.txt - updated for data type handling changes
translator5.txt - updated for data type handling changes
Release 0.1.8 (2010-04-17)
Translator developmental release - Assignment operators have
been implemented. New (listed first) and updated files include:
translator5.txt - output for assignment operator tests
codes.txt - updated for new assign codes
ibcp.h - updated for assignments and references
parser.cpp - removed some errors that are valid statements
table.cpp - added assignment operator table entries
test_ibcp.cpp - added assignment operator test expressions
translator.cpp - added references and assignment operator support
translator3.txt - updated for references flags in output
Release 0.1.7 (2010-04-04)
Translator developmental release - The number of arguments are
checked for internal functions. New (listed first) and updated
files include:
translator4.txt - output for number of arguments tests
codes.awk - updated to allow digits is code names
codes.txt - updated for new function codes
ibcp.h - updated for number of arguments checking
table.cpp - updated number of arguments checking
test_ibcp.cpp - added number of arguments test expressions
translator.cpp - updated for number of arguments check support
translator3.txt - updated for new function codes
Release 0.1.6 (2010-04-02)
Translator developmental release - Array and function support
has been implemented, debugged and tested. This includes
support for the comma operator. New (listed first) and updated
files include:
stack.h - contains simple stack class
translator3.txt - output for array/function tests
ibcp.cpp - precedence for non-table entry token types
ibcp.h - updated for array and function support
table.cpp - changed precedence of the comma operator
test_ibcp.cpp - added array/function test expressions
translator.cpp - updated for array and function support
test/test_stack2.cpp - small program to test simple stacks
Release 0.1.5 (2010-03-26)
Translator developmental release - Parentheses support has been
implemented, debugged and tested. Updated files include:
ibcp.h - added new function to Translator
test_ibcp.cpp - added some more test parentheses expressions
translator.cpp - corrected problems with pending parentheses
translator2.txt - updated for correct output, added new tests
Release 0.1.5-dev-1 (2010-03-25)
Translator developmental release - Parentheses support has been
implemented, and is mostly functional but does not handle all
unnecessary parentheses correctly. New (listed first) and
updated files include:
translator2.txt - test output for parentheses expressions
ibcp.h - changes to support parentheses
table.h - modified parentheses table entries
test_ibcp.cpp - added test parentheses expressions
translator.cpp - changes to support parentheses
Release 0.1.4 (2010-03-21)
Translator developmental release - Simple expressions have been
implemented, debugged and tested in the Translator. New (listed
first) and updated files include:
codes.awk - script to automatically generate codes.txt
translator1.txt - test output for simple expressions
codes.txt - updated for current codes
ibcp.h - minor updates to Token, Table and Translator
parser.cpp - temporarily removed a immediate command check
test_ibcp.cpp - minor corrections, added test inputs
translator.cpp - pop final result, EOL check, unary op checks
Release 0.1.4-dev-2 (2010-03-20)
Interim developmental release - Simple expressions has been
implementation in the Translator and it is partially working but
does not terminate correctly (must stopped program manually).
Updated files include (test stack code has been removed):
ibcp.cpp - minor updates for test translator code
ibcp.h - updated Table and Translator
parser.cpp - set length for token for non-string tokens
test_ibcp.cpp - updates to translator test code
translator.cpp - implementation for simple expressions
Release 0.1.4-dev-1 (2010-03-18)
Interim developmental release - Translator implementation is
underway. The main purpose of this release is to make sure
changes compile. The test_stack program was updated to test
list of pointers (of structures allocated and deallocated
outside of List class). The parser test output files have been
removed. New (listed first) and updated files include:
translator.cpp - initial implementation (incomplete)
ibcp.cpp - added support for test translator code
ibcp.h - added Translator class, set_token() to Table
parser.cpp - replace some code with call to set_token()
test_ibcp.cpp - added translator test functions
test/stack.txt - output of test_stack program
test/test_stack.cpp - added pointer list test
test/test_stack.vpj - modified for test subdirectory
Release 0.1.3 (2010-03-17)
Contains files from Release 0.1.2, changed for incremental
Translator development, plus command line option handling
changed to allow additional test routines. Note the 0.1.1
release was missing the test_parser.cpp file. New (listed
first) and updated files include:
test_ibcp.cpp - renamed from test_parser.cpp, few changes
ibcp.cpp - allowance for additional test routines
ibcp.h - new codes, changes Token and TableEntry
parser.cpp - changed to return EOL instead of null pointer
parser1-5.txt - files updated for new EOL Token
table.cpp - added unary_code field, added new entries
Release 0.1.2 (2010-03-13)
Contains files from Release 0.1.1, where Translator development
initiated. Only contains minor changes, but now the new ibcp.cpp
contains the main function and for now calls test_parser(). New
(listed first) and updated files include:
ibcp.cpp - contains main(), calls test_parser()
ibcp.vpj - project file for ibcp
ibcp.h - new Token static member functions
parser1-5.txt - files updated for new Token static functions
table.cpp - updated internal function entry's token type
test_parser.cpp - changed from being main file, ibcp updates
Release 0.1.1 (2010-03-11)
Contains files from Release 0.1.0 updated for new command line
-i option to test_parser program to allow interactive input (so
compiling the program is unnecessary to test the parser code).
Updated files include:
parser.cpp - modified to allow tab character as whitespace
test_parser.cpp - new command line option for interactive input
Release 0.1.0 (2010-03-10)
Contains files from Release 0.0.8 updated after testing the
parser operator routines. The Parser is fully implemented and
tested. New (listed first) and updated files include:
parser5.txt - string output from the test_parser program
parser.cpp - rewrote operator parser code
table.cpp - corrected 2 character operator table entries
test_parser.cpp - added operators tests
Release 0.0.8 (2010-03-08)
Contains files from Release 0.0.7 updated after testing the
parser string routines. New (listed first) and updated
files include:
parser4.txt - string output from the test_parser program
parser.cpp - removed no closing quote check
test_parser.cpp - added string tests
Release 0.0.7 (2010-03-07)
Contains files from Release 0.0.6 updated after testing the
parser number routines. New (listed first) and updated
files include:
parser3.txt - number output from the test_parser program
ibcp.h - added token error length
parser.cpp - added token error length
parser1.txt - updated for change in error output
test_parser.cpp - changed error output, added number tests
Release 0.0.6 (2010-03-06)