Skip to content

Commit

Permalink
prepare for release 0.2.0
Browse files Browse the repository at this point in the history
changed version number, update release notes and readme
also removed the remaining header change comments
  • Loading branch information
thunder422 committed Dec 9, 2012
1 parent 6eab343 commit 85d28cd
Show file tree
Hide file tree
Showing 14 changed files with 50 additions and 790 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Expand Up @@ -49,7 +49,7 @@ set(ibcp_COPYRIGHT_YEAR 2012)

set(ibcp_RELEASE_MAJOR 0)
set(ibcp_RELEASE_MINOR 2)
set(ibcp_RELEASE_PATCH -6)
set(ibcp_RELEASE_PATCH 0)

set(ibcp_RELEASE_STRING release${ibcp_RELEASE_MAJOR}.${ibcp_RELEASE_MINOR})
if (ibcp_RELEASE_PATCH LESS 0)
Expand Down
16 changes: 13 additions & 3 deletions README
Expand Up @@ -16,6 +16,7 @@ generated by 'cmake' cross-platform, open-source make system. This
project is currently being developed on Linux (Ubuntu based Mint 13) but
is also be tested on 32-bit Windows XP and 64-bit Windows 7. On the
Windows system, the MinGW Minimal GNU for Windows is used for building.
The Qt toolkit is being used for development of the GUI.

Information for this project can be found at the project's blog located
at http://interactivebasiccompilerproject.blogspot.com, which contains
Expand All @@ -32,7 +33,8 @@ converts text input into BASIC language tokens. The translator is
currently being developed and currently supports the translation of
BASIC expressions along a few BASIC commands (LET, PRINT, and INPUT)
into a reverse polish notation format that will be used for fast
execution of the BASIC program.
execution of the BASIC program. The GUI implementation has been
started but currently only displays an about box.


Building The Program
Expand All @@ -54,9 +56,17 @@ zip or tar file, the project is build with a few short commands:

Running Regression Tests
------------------------
To run the include regression tests, run the regtest script that was
To run the included regression tests, run the regtest script that was
copied into the ibcp/build directory. The test will report whether the
tests pass or fail.
tests pass or fail. The memtest script (Linux only) will run all the
tests but also look for memory leaks (requires the valgrind program).


Command Line Options
--------------------
The -v option will output the version string and exit. The -h or -?
option will output the usage message and exit. No options will start
the GUI, which currently only displays the about box and then exits.


Running Interactively
Expand Down
26 changes: 1 addition & 25 deletions enums.awk
Expand Up @@ -20,31 +20,7 @@
#
# Change History:
#
# 2010-03-20 initial release
#
# 2010-04-04 added comment header with GPL, change history and usage
# modified script to handle digits in code names
#
# 2010-04-28 added code to allow for multiple codes on a line
# allow for Invalid_Code = -1
# added -d to sort command to ignore "_" in codes names
#
# 2010-09-06 modified to only look for codes in the Code enumeration
#
# 2011-02-26 rewrote script to generate codes.h and codes.txt directly from
# the table.cpp source file (all code performed in BEGIN block)
#
# 2011-03-26 renamed from codes.awk to enums.awk
# updated to write autoenums.h that includes enum Code and
# enum TokenStatus (which comes from ibcp.cpp)
# added exit code upon failure to terminate build
# 2011-06-12 for use with cmake, added an optional path to the source files
# as the first argument on the awk command line
# 2012-10-06 modified to remove the CR at the end of the lines in DOS format
# files, but do nothing with Unix format files
#
# 2012-11-01 changed 'const char *' to 'QString' for message_array[]
# 2012-11-03 changed ibcp.cpp to token.cpp
# 2010-03-20 initial version
#
#
# Usage: awk -f enums.awk [source path]
Expand Down
287 changes: 1 addition & 286 deletions ibcp.h
Expand Up @@ -20,292 +20,7 @@
//
// Change History:
//
// 2010-02-18 initial release
//
// 2010-03-01 support for Parser class added, which includes:
// Token and CmdArgs structures; Parser class
// new CmdArgs_DataType and Error_Flag
// renamed ImCommand_TokenType to ImmCmd_TokenType
//
// 2010-03-06 replaced DefFunc_TokenType with DefFuncN_TokenType and
// DefFuncP_TokenType so that it can be determined if the define
// function name has a parentheses or not
//
// 2010-03-07 added length of token with error to Token along with two new
// set_error() functions
//
// 2010-03-11 support for Translator class initiated, which includes:
// replaced IntFunc_TokenType With IntFuncN_TokenType and
// IntFuncP_TokenType; and added new static members to Token
//
// 2010-03-17 added codes Null_Code, Neq_Code, and EOL_Code
// added unary_code to TableEntry
// renamed code to index in Token to avoid confusion
//
// 2010-03-18 added Translator class;
// added default to Token constructor
// added set_token() function to Table class
//
// 2010-03-20 added precedence to TableEntry
// added more access functions to Table
// made numerous changes to Translator class
//
// 2010-03-21 initialized length field in Token to 1
// added is_unary_operator() to Table
// added additional diagnostic errors to Translator
//
// 2010-03-25 added variables to Table and Translator to support parentheses,
// added Highest_Precedence constant
//
// 2010-03-26 added do_pending_paren() to Translator class
//
// 2010-04-02 add support to Token and Table to get precedence values for
// token types that don't have table entries (DefFuncP and Paren)
// added count_stack of new type SimpleStack to Translator to
// support commas (for subscripts in arrays and arguments in
// functions)
// added more errors to Translator
//
// 2010-04-04 added support for number of argument checking for internal
// functions including added codes for functions with different
// number of arguments; adding Multiple_Flag
// added nargs to TableEntry; new Table access function and search
// function
// added new error to Translator
// made token argument a reference in Translator::add_token()
// added debug_name() to Table
//
// 2010-04-11 added assignment operator codes
// added mode with enumerator to Translator
// added more error codes to Translator
// 2010-04-12 added reference flag to Token
// 2010-04-13 made token argument a reference in Translator::add_operator()
// 2010-04-16 added more error codes to Translator
// added expression mode flag option to Translator for testing
// 2010-04-17 added another error code to Translator
//
// 2010-04-24 added the associated codes for the specific data types codes for
// all the operators and internal functions where applicable
// add new Frac_Code
// rearranged DataType enumeration names so that the actual data
// types are listed at the beginning with Double (the default)
// listed first; added number_DataType for actual number of data
// types
// renamed nargs to noperands in TableEntry and Table (now
// applicable operators in addition to internal functions)
// added Max_Operands and Max_Assoc_Codes definitions; added
// operand_datatype[] and assoc_codes[] arrays to TableEntry;
// added related access functions to Table
// 2010-04-25 added Invalid_Code set to -1
// updated Translator for data type handling:
// added exptected data type errors
// renamed BUG_StackEmpty to BUG_HoldStackEmpty
// added BUG_DoneStackEmpty
// added set_default_datatype() to set the data type for
// operands that didn't have a specific data type
// added find_code() and match_code() with Match enum
//
// 2010-05-03 added ExprInfo to hold expression related information for the
// table entries; replaced these members with ExprInto pointer in
// TableEntry; modified the access functions in Table
// 2010-05-05 added Reference_Flag and AssignList_Flag
// 2010-05-07 added associated codes for Assign and AssignList
// 2010-05-08 added check for null exprinfo in datatype() and unary_code()
// access functions of Table
// added last_operand argument to Table::find_code()
//
// 2010-05-15 added TmpStr_DataType
// added RpnItem structure, changed done_stack and output list from
// holding Token* to RpnItem*
// moved operand[] array from find_code() to Translator as member,
// removed operand argument from Translator::match_code()
// added logic to Translator::set_default_datatype() to set data
// type to TmpStr for token types DefFuncN/DefFuncP when the data
// type is String
//
// 2010-05-19 added new SubStr_DataType
// added new associated code AssignSubStr_Code to Assign_Code
// 2010-05-20 increased Max_Assoc_Codes from 2 to 3 because of
// AssignSubStr_Code
// added new maximum table errors
//
// 2010-05-20 added new associated code AssignListMixStr_Code to
// AssignList_Code
// added RpnItem::set() to set rpn item members without allocating
// a new array and copying to the array
//
// 2010-05-27 added SubCode enumeration and subcode member to Token
// 2010-05-28 changed hold_stack and done_stack from List to SimpleStack in
// Translator (a linked list is unnecessary for these stacks)
// moved/renamed Translator::Status to TokenStatus
// added CmdItem struct and cmd_stack to Translator
// moved/renamed Translator::Mode to TokenMode along with
// token_mode to TableEntry (next token mode for command) and
// access function to Table
// added TokenHandler typedef along with token_handler to
// TableEntry and access function to Table, added friend
// definitions for new translator token handler functions and
// extern definitions for actual functions
// 2010-05-29 added static token has table entry flag (table) to Token along
// with access function (used by Table access functions)
// added Hidden_Flag to mark table entry of hidden codes
// added new flags Table access function with token pointer
// argument - returns no flags (0) for non-table entrytokens
// changed argument to Translator::do_pending_paren() from index
// to token pointer so that it will work with tokens that don't
// have a table entry (arrays and functions)
//
// 2010-06-01 added support for print-only functions
// added generic flag member to CmdItem that can be used by
// commands (for PRINT it will be used to determine if a PRINT
// token should be added at the end of a translated print
// statement, i.e. advance to a new line)
// 2010-06-02 added support for semicolon with token handler
// added Table::new_token() for allocating a new token and setting
// it up for a specific code
// 2010-06-03 added Translator::expression_end() for checking if expression
// was ended correctly
// 2010-06-04 added Translator::add_print_code() for adding new data type
// specific print codes that were also added
// 2010-06-05 added support for command handler function pointers
// (was necessary to move CmdItem structure outside Translator)
// 2010-06-06 added EndExpr_Flag for token codes that can end an expression
// corrected issue with special Translator expression only mode
// 2010-06-08 added PrintFunc_CmdFlag and SemiColon_SubCode
// 2010-06-09 changed count_stack from <char> to new <CountItem>, which
// contains the old count and expected number of arguments
// 2010-06-10 added new FirstOperand translator state - used for identifying
// if any tokens for expression have been received yet
// 2010-06-13 added token pointer argument to command handlers so that
// command handlers have accessed to calling token
// 2010-06-14 added Translator::paren_status() for checking if there is an
// outstanding token with parentheses on the hold stack and if
// there is, to return the appropriate error
// 2010-06-14 removed AssignList_Flag because it is unnecessary (the code can
// be checked for AssignList_Code)
// 2010-06-01/14 added, renamed and deleted many TokenStatus enumeration
// values for matching error messages that were changed for
// better clarity
//
// 2010-06-24 added another TokenStatus
// 2010-06-25 replaced TableErrType enum and TableError struct with
// ErrorType enum and Error struct template so that this can also
// be used for TokenStatus
// TableSearch renamed to SearchType
// 2010-06-26 added EndStatement_Flag
// 2010-06-29 added new ExprType enumeration
// added expr_type member to Translator (initialize for expr mode)
// added expr_type member to TableEntry (with access function)
// updated expected expression related token statuses
// 2010-06-30 updated expected expression related token statuses
// 2010-07-01 added AssignList_CmdFlag back
// removed last_operand argument from Table::find_code(), which was
// needed for assign list operators, but assign list is no
// handled by comma, semicolor and Assign handlers
// added new check_assignlist_token() and set_assign_command()
// to Translator
// 2010-07-02 updated TokenStatus
// added new search and match functions to Table
// 2010-07-04 updated TokenStatus
//
// 2010-08-01 removed support for multiple equal assignments (now only commas
// used for multiple assignments)
// 2010-07-18 added second associated index to ExprInfo for support of
// checking each operand when processed instead of processing
// all operands at the end
// 2010-08-10 added several multiple error types used for additional table
// checking during initialization
// 2010-09-03 added new Translator::process_final_operand(),
// modified Translator::find_code(),
// removed Translator::match_code()
// 2010-12-13 added number of string arguments to ExprInfo for Table entries
//
// 2011-01-02 added Translator::get_expr_datatype()
// 2011-01-05 put datatype back into TableEntry, removed expr_type
// modified datatype access function to get main datatype if there
// is not exprinfo (this may be temporary)
// 2011-01-07 removed datatype from ExprInfo
//
// 2011-01-11 moved length from union in Token so it can be used for all types
// 2011-01-13 implemented new Translator::HoldStackItem and changed hold_stack
// added argument to Translator:: add_operator()
// and process_final_operand() for handling first/last operands
// 2011-01-15 implemented new Translator::DoneStackItem and changed done_stack
// added argument to Translator::find_code() for handling
// first/last operands
// implemented new Translator:: process_first_operand() and
// delete_close_paren()
// 2011-01-16 added Token::include() for reporting range of tokens for errors
// 2011-01-22 added last and used sub-code flags for close paren tokens so
// they don't get deleted until they are not used anymore
// added Translator::delete_open_paren()
// 2011-01-29 added list element pointer to Token for memory leak detection
// added new and delete operator Token functions for memory leaks
// added static list and del_list to Token for memory leaks
// moved all static members of Token to the end so that it is
// easier to see the regular members when debugging
// 2011-01-30 reset string pointer to NULL in Token deconstructor
// made Translator::delete_open_paren() public to be accessible
// by caller of Translator (to correct a memory leak)
// 2011-02-04 added associated codes for temporary strings
//
// 2011-02-10 added Translator::call_command_handler()
// added BUG_CmdStackEmptyCmd token status
// 2011-02-11 added BUG_UnexpToken token status
// 2011-02-12 renamed ExpStatement_TokenStatus to ExpCommand
// 2011-02-20 renamed SimpleStack to Stack
//
// 2011-02-26 removed Code enumeration (now auto gen'd in codes.h)
// changed Token::index back to code
// moved Table::index_code[], code() and index()
// removed TableEntry::code (index now same as code)
// added new ImmCmd search type
// added Code operator overload functions
// 2011-03-01 started INPUT command handler implementation
// added Question_SubCode
// 2011-03-04 added non-IntFunc check to Translator::set_default_datatype()
// 2011-03-05 removed PrintOnlyIntFunc, added ExpSemiCommaOrEnd_TokenStatus
// added "_State" to enum Translator::State values
// added Translator::EndExpr_State
// 2011-03-10 renamed ExpCommand_TokenStatus to ExpCmd_TokenStatus
// 2011-03-13 removed ExpAssignRef_TokenStatus, UnExpCommand_TokenStatus,
// UnexpAssignComma_TokenStatus, UnexpParenInComma_TokenStatus
// 2011-03-19 renamed EndStatement_Flag to EndStmt_Flag
// added Keep_SubCode (for INPUT), ExpEndStmt_TokenStatus
// renamed EndStatment_Flag to EndStmt_Flag
// added Translator::EndStmt_State
// added ExpEndStmt_TokenStatus
// implemented Translator::assoc2_code() access function
// 2011-03-20 added End_SubCode (for INPUT), added input command flags
// 2011-03-22 renamed Translator::FirstOperand_State to OperandOrEnd_State
// 2011-03-24 added ExpOpSemiOrComma_TokenStatus
//
// 2011-03-26 enum TokenStatus is now automatically generated from the
// ibcp.cpp source file by the enums.awk script so it was
// removed,
// The automatic codes.h was renamed autoenums.h
// removed Duplicate and Missing error types (no longer used)
// changed several shorts (index values) to type T in Error
// changed Token::message_array[] to simply string pointer array
// 2011-03-27 added operand_state flag to Parser with set access function
// added get operand state access function to Translator
//
// 2012-10-25 added new function Token::isNull() to properly check for the
// null token (not all token types have a valid code)
// 2012-10-27 converted translator output rpn list from List class to QList
// also required changes to done_stack (element list pointer to
// rpn item pointer), cmd_stack (element list pointer to index
// into output rpn list), and RpnItem.operands[] (element list
// pointer array to RpnItem pointer array)
// 2012-10-28 removed token lists and new/delete overload functions
// 2012-10-28 removed Error Template (no longer needed)
// changed Table class (constructor and new initialize() function)
// 2012-10-29 converted translator stacks from Stack class to QStack
// 2012-10-31 added 'const' to 'char *' variables in Parser
// 2012-11-01 removed support for immediate commands
// changed all String to QString
// renamed Parser functions and variables to Qt Style naming
// 2012-11-03 separated classes to individual header files
// 2010-02-18 initial version

#ifndef IBCP_H
#define IBCP_H
Expand Down
3 changes: 0 additions & 3 deletions ibcp_config.h.in
Expand Up @@ -21,9 +21,6 @@
// Change History:
//
// 2011-06-11 initial version
//
// 2012-10-23 renamed variables from VERSION to RELEASE
// added new ibcp_RELEASE_STRING

// the configured options and settings for ibcp
// (for passing values from cmake to ibcp source files)
Expand Down
3 changes: 1 addition & 2 deletions memtest.in
Expand Up @@ -20,8 +20,7 @@
#
# Change History:
#
# 2012-10-25 initial release (started from regtest)
# 2012-10-29 added version output
# 2012-10-25 initial version (started from regtest)
#
#
# Usage:
Expand Down

0 comments on commit 85d28cd

Please sign in to comment.