CONTENT
MAIN VERSIONS
Sending HTTP requests
since version 2.07
Handling of binary files
since version 2.04
CONTACT US
|
 |
The Sun Solaris version compiles under CC v8 correctly since version 3.5.
The Mac version compiles under Mac OS X 10.3 correctly since version 3.4.
The Linux version compiles under gcc 3.2 20020927.
CodeWorker runs under Cygwin correctly since version 2.09.
Under Linux/Unix, please read the Makefile before compiling.
|
Under Windows platform, you might have to download the DLLs below:
- From version 3.5 of the binary: runtime DLLs of VC++ 7.1 msvcp71.dll and msvcr71.dll in "SystemRoot/System32".
- Up to version version 3.4 of the binary: runtime DLL of VC++ 6.0 msvcp60.dll in "SystemRoot/System32".
|
Please do not hesitate to contact us for any trouble (source recompiling, binaries, constructive criticisms, suggestions, ...). |
To subscribe to new releases.
|
CodeWorker 4.5.2, 02aug2008
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
666203 |
CodeWorker_WIN4_5_2.zip |
CodeWorker_WIN4_5_2.zip.asc |
| Any platform (?) |
sources |
3530883 |
CodeWorker_SRC4_5_2.zip |
CodeWorker_SRC4_5_2.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 02aug2008 |
feature |
Franck Watteau |
Java API: add of an item into the array of a parse tree. |
| 31jul2008 |
bug_fix |
Franck Watteau |
Java API: the execution of a parse/template-based/translation script before compiling
the corresponding script now raises an exception rather than provoking a crash. |
|
|
CodeWorker 4.5.1, 28jul2008
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
665464 |
CodeWorker_WIN4_5_1.zip |
CodeWorker_WIN4_5_1.zip.asc |
| Any platform (?) |
sources |
3531944 |
CodeWorker_SRC4_5_1.zip |
CodeWorker_SRC4_5_1.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 27jul2008 |
improvement |
Lionel Auroux |
The syntax of a constant tree declaration has changed. It better describes arrays and subnodes. |
| 27jul2008 |
improvement |
Lionel Auroux |
The procedure saveProject() now saves a parse tree to a specific text format when the
file name ends with the extension ".txt". This format is the same as for a constant tree declaration. |
| 27jul2008 |
function |
Lionel Auroux |
- procedure loadProject(XMLorTXTFileName : string, nodeToLoad : tree)
| Parameter | Type | Description |
| XMLorTXTFileName | string | an input file whose content describes a node |
| nodeToLoad | tree | the node to populate from the file; if omitted, it is defaulted to the global variable \samp{project} |
Loads a parse tree previously saved thanks to saveProject().
|
| 27jul2008 |
bug_fix |
Thor |
#continue throwing their own syntax error messages now properly raise the error:
the call stack displays the most relevant syntax error message instead of the most general. |
| 27jul2008 |
improvement |
Thierry WILMOT |
During a debug session that executes a parse script, the current location in the parsed file (line/column)
is displayed after each progression (step in/out) in the controlling sequence. |
|
|
CodeWorker 4.5, 20jul2008
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
661894 |
CodeWorker_WIN4_5.zip |
CodeWorker_WIN4_5.zip.asc |
| Any platform (?) |
sources |
3521278 |
CodeWorker_SRC4_5.zip |
CodeWorker_SRC4_5.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 14jul2008 |
bug_fix |
- |
A segmentation fault was appearing when default values were assigned to some parameters of instantiated
template functions. |
| 13jul2008 |
function |
- |
- function existDirectory(path : string) : bool
| Parameter | Type | Description |
| path | string | path name of the directory |
The function checks the existence of a directory specified by the path argument.
|
| 05may2008 |
feature |
Hugo Beauzee-Luyssen |
#foreach is a new BNF directive directive in charge of iterating on a BNF sequence. |
| 04may2008 |
feature |
Hugo Beauzee-Luyssen |
#applyBNFRule is a directive to put into a piece of common script.
Its purpose consists of calling a BNF non-terminal from inside common script embedded into a BNF script. |
| 03may2008 |
feature |
David GIRON |
Syntax extension to express variable increment ($i++$; and decrement ($i--$; |
| 03may2008 |
feature |
- |
New family of insignificant characters (extended BNF script): spaces. #ignore(spaces)
consumes all space (ASCII 0x20) and tabulation characters encountered. |
| 15dec2007 |
bug_fix |
Thierry WILMOT |
In some cases under Window platform, the interpreter is unable to start, due to an unitialized memory read. |
|
|
CodeWorker 4.4, 21nov2007
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
-4 |
CodeWorker_WIN4_4.zip |
| Any platform (?) |
sources |
-4 |
CodeWorker_SRC4_4.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 18nov2007 |
improvement |
David GIRON |
#break is now able to leave a BNF repeating sequence conditionally. The condition follows the
directive name between parenthesis, exactly like a #check. |
| 18nov2007 |
improvement |
David GIRON |
#continue can describe a custom error message. This message will be thrown instead of the default
one ordinarly raised by the BNF engine as soon as a failure occurs in the rest of the BNF sequence. |
| 18nov2007 |
function |
Benjamin GUESNEAU |
- procedure extendExecutedScript(scriptContent : string)
| Parameter | Type | Description |
| scriptContent | string | A piece of CodeWorker's script to compile at the end of the currently executed script |
Extend the currently executed CodeWorker's script with new instructions.
The argument scriptContent is a piece of script to compile at the end of the executed script.
|
| 13oct2007 |
bug_fix |
Pierre Mitzrahi |
The call of equalTrees without declaring each tree parameter before caused a segmentation fault. |
| 13oct2007 |
bug_fix |
Sergey Sikorskiy |
CodeWorker won't compile NetSocket.cpp wiht gcc 4.1.2 on x86_64 platform. |
|
|
CodeWorker 4.3, 03aug2007
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
658669 |
CodeWorker_WIN4_3.zip |
CodeWorker_WIN4_3.zip.asc |
| Any platform (?) |
sources |
3185080 |
CodeWorker_SRC4_3.zip |
CodeWorker_SRC4_3.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 28jul2007 |
feature |
Pierre Mitzrahi |
New BNF directive: #EOL. It consumes an end of line. |
| 31jul2007 |
function |
- |
- function equalLastWrittenChars(text : string) : bool
| Parameter | Type | Description |
| text | string | string value to compare |
Compare the text argument with last characters written in the output file.
|
| 25jul2007 |
option |
Benoit Barraud |
Add of a new option on the command line: -stdout |
| 15jul2007 |
bug_fix |
Markus Marb |
A bug was fixed in hexadecimal conversion. |
| 25jun2007 |
bug_fix |
Lionel Auroux |
GCC 4.0 was refusing to compile a source file of CodeWorker: "GrfForeach.h". |
| 10jun2007 |
bug_fix |
Nicolas Marin |
CodeWorker didn't take into account UNC paths in MS-Windows properly. |
|
|
CodeWorker 4.1.2, 02apr2006
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
653536 |
CodeWorker_WIN4_1_2.zip |
CodeWorker_WIN4_1_2.zip.asc |
| Any platform (?) |
sources |
3171291 |
CodeWorker_SRC4_1_2.zip |
CodeWorker_SRC4_1_2.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 31mar2006 |
bug_fix |
- |
The loading policy of a dynamically-linked plugin was extremely restricted under
Windows NT4, 2000 and more recent versions. The DLL was necessarily at the
same place as CodeWorker's executable. Now, the interpreter also looks into
include path and current working directory. |
| 17mar2006 |
feature |
Mohamed Selim BEN ALI |
treeNode#root navigates directly to the root node
of the parse tree that contains treeNode. |
| 16mar2006 |
bug_fix |
- |
POST and GET HTTP requests (using cURL library) weren't working
properly. |
|
|
CodeWorker 4.1.1, 14mar2006
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
645305 |
CodeWorker_WIN4_1_1.zip |
CodeWorker_WIN4_1_1.zip.asc |
| Any platform (?) |
sources |
3035271 |
CodeWorker_SRC4_1_1.zip |
CodeWorker_SRC4_1_1.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 11mar2006 |
bug_fix |
Mohamed Selim BEN ALI |
During the execution of a BNF-extended script through the C++/Java/C# API
of CodeWorker, the use of BNF directives #insert and
#pushItem was causing a crash. |
| 31jan2006 |
bug_fix |
Justin CINJELJ |
Compile fix for Red Hat 9. |
| 03jan2006 |
bug_fix |
- |
A bug was fixed in creating a new parse file from Eclipse. |
|
|
CodeWorker 4.1, 07dec2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
645046 |
CodeWorker_WIN4_1.zip |
CodeWorker_WIN4_1.zip.asc |
| Any platform (?) |
sources |
3032127 |
CodeWorker_SRC4_1.zip |
CodeWorker_SRC4_1.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 07dec2005 |
improvement |
- |
New Eclipse plugin for CodeWorker (version 1.1.0). It can work with CodeWorker 4.0.4
or higher. User's manual about the plugin is accessible from the menu item
"Help/Help Contents". |
| 07dec2005 |
improvement |
- |
the extbf{-debug} switch now admits an optional parameter to ask for a remote
socket control of the debugging session. |
| 04dec2005 |
improvement |
- |
The coverage recording of output files wasn't working perfectly.
This process consists of keeping a trace of the generation: what piece of
the output file was generated by what instruction of the template-based script. |
| 03dec2005 |
bug_fix |
- |
On Windows, if may have arrived that a generated file was locked for writing. |
| 27nov2005 |
option |
- |
Add of a new option on the command line: -report |
|
|
CodeWorker 4.0.3, 21nov2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
637312 |
CodeWorker_WIN4_0_3.zip |
CodeWorker_WIN4_0_3.zip.asc |
| Any platform (?) |
sources |
3027365 |
CodeWorker_SRC4_0_3.zip |
CodeWorker_SRC4_0_3.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 20nov2005 |
feature |
- |
An Eclipse plugin now exists for CodeWorker's script. This first version is limited to
syntax highlighting, text hover over built-in functions, and integrated documentation.
The reference manual and a tutorial are accessible from the "Help Contents" menu topic. |
| 19nov2005 |
bug_fix |
- |
The UNIX/Linux makefile hadn't been updated: reference to 3 source files was lacking. |
| 19nov2005 |
bug_fix |
- |
"GrfExecutionContext.cpp" was unable to compile under UNIX. |
| 04nov2005 |
bug_fix |
- |
Trouble on #readNumeric, when the first character to parse starts with a plus symbol. |
|
|
CodeWorker 4.0.2, 28oct2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
636820 |
CodeWorker_WIN4_0_2.zip |
CodeWorker_WIN4_0_2.zip.asc |
| Any platform (?) |
sources |
2958365 |
CodeWorker_SRC4_0_2.zip |
CodeWorker_SRC4_0_2.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 13sep2005 |
feature |
Guillermo M. Zambrino |
Now, CodeWorker has a logo! Many thanks to its author: Guillermo M. Zambrino. |
| 28oct2005 |
feature |
DSM workshop/OOPSLA 2005 |
A functionality has been added to code generation, to know where the output comes from.
In CodeWorker, an output file is generated by a template-based script. The directive #coverage
asks for the recording of every script position giving rise to a piece of the output file.
This directive is located anywhere in the script to study, and requires a variable the code
generation engine will populate with coverage data.
The variable will be a list of sorted segments, entirely determined by their starting position
in the output and by the position of the corresponding script instruction.
These positions are respectively stored in attributes output and script.
An added information is assigned to the node representing the segment. It specifies the type of
script instruction, belonging to one of the following values:
- R: rough text,
- W: expression, variable or call to a writeText()-family procedure,
- I: call to a insertText()-family procedure,
- O: call to overwritePortion() procedure,
Example:
rough text @this.name@ EOL
@
#coverage(project.coverage)
Let say that this.name is worth "VARIABLE_CONTENT".
The script generates the following output file:
rough text VARIABLE_CONTENT EOL
The variable project.coverage is then worth the following list:
["0"] = "R"
|--+
script = 12
output = 0
["1"] = "W"
|--+
script = 21
output = 11
["2"] = "R"
|--+
script = 29
output = 27
|
|
|
CodeWorker 4.0.1, 19aug2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
628411 |
CodeWorker_WIN4_0_1.zip |
CodeWorker_WIN4_0_1.zip.asc |
| Any platform (?) |
sources |
2307422 |
CodeWorker_SRC4_0_1.zip |
CodeWorker_SRC4_0_1.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 18aug2005 |
bug_fix |
- |
The compilation of the scripting language failed on functions where the first argument
was optional and when the function was called without parameter. |
| 18aug2005 |
improvement |
- |
Now, the procedure incrementIndentLevel() and the function decrementIndentLevel()
accept both an optional argument, giving the indentation depth to add or remove. |
| 15aug2005 |
improvement |
- |
The native translation of CodeWorker scripts to C++ has been improved, to get ready for
the version 4.1, which will be the first release where scripts can substitute the CodeWorker
scripting language for Java (C++ intervenes here!). |
| 15aug2005 |
bug_fix |
- |
In extended-BNF scripts, the directive #matching wasn't recording properly the coverage
of parsed files by production rules. |
| 31jul2005 |
feature |
- |
New BNF statement modifier #debug: it opens a debug session, applied on the rest
of the BNF sequence. |
|
|
CodeWorker 4.0, 28jul2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
621344 |
CodeWorker_WIN4_0.zip |
CodeWorker_WIN4_0.zip.asc |
| Any platform (?) |
sources |
2223437 |
CodeWorker_SRC4_0.zip |
CodeWorker_SRC4_0.zip.asc |
| Changes |
| Major evolution of CodeWorker. It is now possible to integrate the CodeWorker's features
about parsing and code generation into C++, Java and .NET applications. |
| Date |
Type |
Caller |
Description |
| 27jul2005 |
feature |
Alan CYMENT |
Implementation of a .NET assembly for CodeWorker. |
| 24jul2005 |
feature |
- |
The native translation of CodeWorker scripts to C++ produces a C++ source code, which can be
optimized. The C++ optimizer is an external program-transformation script that the developer
can reuse to implement his own transformations. |
| 24jul2005 |
option |
- |
Add of a new option on the command line: -c++2target |
| 23jul2005 |
feature |
- |
Implementation of Java interface for CodeWorker (JNI library and org.codeworker.jni package). |
| 17jul2005 |
feature |
- |
Add of the new BNF directive #matching(variable):
this directive is put outside the production rules. It informs the BNF engine to record the coverage of
the input text by the production rules. Concretely, the BNF engine stores into a variable the list of all
production rules of the grammar and all areas they match in the input text, once the execution has finished.
The BNF engine populates the variable specified by the directive.
Tree structure of the variable populated by the BNF engine
for #matching(variable):
* variable
|
+- rules[]: list of production rules (signatures only),
|
+- areas[]: table of positions in the input text, the
| key is worth the position P; no item value
+- begin[]: (optional) table for every rule starting
| | at the position P, the key being worth the
| | ending position Pf (decreasing order)
| +- []: list of all rules matching [P, Pf] exactly,
|
+- end[]: (facultative) table for every rule ending at
| the position P, the key being worth the
| starting position Pi (increasing order)
+- []: list of all rules matching [Pi, P] exactly,
|
| 28jun2005 |
improvement |
Jon SCOBIE |
During a debugging session, break/watch points are numbered for an easy deletion. |
| 23jun2005 |
improvement |
Brian WELCH |
Now, the function traceObject() can display a tree up to a given depth (second optional parameter). |
|
|
CodeWorker 3.12, 24jun2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
604656 |
CodeWorker_WIN3_12.zip |
CodeWorker_WIN3_12.zip.asc |
| Any platform (?) |
sources |
2110946 |
CodeWorker_SRC3_12.zip |
CodeWorker_SRC3_12.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 23jun2005 |
feature |
Jon SCOBIE |
A debugger session now accepts conditional breakpoints and handles watchpoints
on variables, conditional or not. These new features are very efficient to
accelerate the debugging.
Conditions conform to the syntax of usual CodeWorker expressions.
When a break/watchpoint is activated, a block of instructions can be executed.
The block is a piece of CodeWorker script. |
|
|
CodeWorker 3.11, 03jun2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
600188 |
CodeWorker_WIN3_11.zip |
CodeWorker_WIN3_11.zip.asc |
| Any platform (?) |
sources |
1838717 |
CodeWorker_SRC3_11.zip |
CodeWorker_SRC3_11.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 03jun2005 |
deprecated |
- |
In precedent versions, a function prototype may accept the parameter type index
(rarely used). It is now obsolete and changed to iterator. |
| 03jun2005 |
function |
Jon SCOBIE |
- function duplicateIterator(oldIt : iterator, newIt : treeref) : bool
| Parameter | Type | Description |
| oldIt | iterator | the original iterator to duplicate |
| newIt | treeref | copy of the original iterator |
Duplicates an iterator or returns false if oldIt isn't an iterator.
- function createIterator(i : iterator, list : treeref) : bool
| Parameter | Type | Description |
| i | iterator | iterator to initialize |
| list | treeref | the iterator will point to the beginning of this list |
The variable i will become an iterator pointing to the first item of the list.
If the list is empty, there is no iterator created and the function returns false.
i must have been declared before.
- function createReverseIterator(i : iterator, list : treeref) : bool
| Parameter | Type | Description |
| i | iterator | iterator to initialize |
| list | treeref | the iterator will point to the end of this list |
The variable i will become an iterator pointing to the last item of the list
and will iterate in the reverse order.
If the list is empty, there is no iterator created and the function returns false.
i must have been declared before.
- function index(i : iterator) : int
| Parameter | Type | Description |
| i | iterator | iterator of a \samp{foreach} statement |
Returns the position of the item the iterator points to.
The position in the list begins counting at 0.
- function prec(i : iterator) : bool
| Parameter | Type | Description |
| i | iterator | iterator of a \samp{foreach} statement or pointing to items of a list |
The iterator will now point to the precedent item of the list and returns true if exists.
- function next(i : iterator) : bool
| Parameter | Type | Description |
| i | iterator | iterator of a \samp{foreach} statement or pointing to items of a list |
The iterator will now point to the next item of the list and returns true if exists.
|
|
|
CodeWorker 3.10.4, 27may2005
|
| Platform |
Type |
Size |
Archive |
GnuPG signature |
| WINDOWS 98/2000/NT/XP |
binaries |
597722 |
CodeWorker_WIN3_10_4.zip |
CodeWorker_WIN3_10_4.zip.asc |
| Any platform (?) |
sources |
1816779 |
CodeWorker_SRC3_10_4.zip |
CodeWorker_SRC3_10_4.zip.asc |
| Changes |
| Date |
Type |
Caller |
Description |
| 26may2005 |
improvement |
- |
The function saveProject() accepts a facultative parameter nodeToSave,
which is a subtree you wish to save to XML; by default, the saved node is the global tree
project. |
| 26may2005 |
improvement |
- |
The functions loadFile() and loadBinaryFile accept a facultative parameter
length indicating the number of bytes to read. |
| 26may2005 |
bug_fix |
- |
A template-based script using the automatic indent mode (function incrementIndentLevel)
for generating text, may badly copy rough text after a new line starting with more tabulations
than the current indent level. |
| 18may2005 |
bug_fix |
- |
A translation script, passed as a relative path in the function translateString,
may haven't been found. |
|
|
CodeWorker 3.10, 22apr2005
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
596988 |
CodeWorker_WIN3_10.zip |
| Any platform (?) |
sources |
1807000 |
CodeWorker_SRC3_10.zip |
| Changes |
| Until the version 3.9.1, the scripting language didn't oblige to declare the
variables before their use. From now, it is recommended and a warning message
appears otherwise, but the beheviour doesn't change yet. This warning is going
to mutate to an error message in future versions of the interpreter.
In front of a variable name never declared, the behaviour remains the same:
the variable is inserted to the this context automatically as a new
attribute.
The rationale is firstly for improving the reliability of scripts, detecting
bad variable names like spelling or foolish mistake in the name, and secondly
to prepare the introduction of Object-Oriented Programming into CodeWorker. |
| Date |
Type |
Caller |
Description |
| 20apr2005 |
improvement |
- |
As stipulated in the remarks heading, a warning occurs if a variable is used
whitout having been declared before. These warnings are going to become an
error message in the future, so it is strongly recommended to hunt them now,
by declaring these variables as local or global or as attributes belonging
to the this context tree (default behaviour). |
| 19apr2005 |
function |
- |
- function addToDate(date : string, format : string, shifting : string) : string
| Parameter | Type | Description |
| date | string | the date to change |
| format | string | the format to apply on the reading of the \samp{shifting} argument |
| shifting | string | the offset values to apply on the date, whose meanings are known by the \samp{offset} argument |
Change a date by applying offset values on its internal representation.
The internal representation holds the year / month / day and hour / minute / second
and millisecond fields. You choose what fields to shift, giving a date
format as the first argument, and an offset value for each fields seen in the
format as the second argument.
The field types have the same syntax as in the function formatDate, except
that the field values might be negative.
For instance, if the field type is "%m", the month must occupy 2 digits maximum for a
positive offset, and 3 characters for a negative offset, the first one being the sign.
The offsets are applied in the order they are read, from the left-hand side to the right.
The function returns the value of the date after applying the shift.
|
| 14apr2005 |
bug_fix |
- |
About the parsing: #nextStep had no effect on the jump operator
when put in a repeat regular expression. |
| 13apr2005 |
function |
- |
- procedure allFloatingLocations(list : tree)
| Parameter | Type | Description |
| list | tree | floating location names and their position |
Populates the argument list with all floating location registered
to the current output stream, such as the entry key is the floating location name and
the entry value is the position in the stream.
|
| 12apr2005 |
bug_fix |
- |
Correction of a bug introduced in the version 3.9: the BNF predefined non-terminal
#readNumeric wasn't returning the correct floating-point value after the reading
of a signed exponent. |
|
|
CodeWorker 3.9, 08apr2005
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
589051 |
CodeWorker_WIN3_9.zip |
| Any platform (?) |
sources |
1733461 |
CodeWorker_SRC3_9.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 07apr2005 |
function |
- |
- function removeFloatingLocation(key : string) : int
| Parameter | Type | Description |
| key | string | name of an existing floating position into the output stream |
Removes the floating location attached to key and returns its position.
If the floating location belongs to a parent output stream, it is removed from the parent.
The function returns a negative integer if the floating location doesn't exist.
|
| 06apr2005 |
behaviour |
- |
The predefined tree node null was added, and means a null pointer.
Used for writing plugins, for instance, passing a tree node as a null pointer to C++. |
| 10mar2005 |
bug_fix |
- |
The directive #nextStep should have been available in
a repeating regular expression ([...]*), but wasn't. |
| 17feb2005 |
function |
- |
- function sqrt(x : double) : double
| Parameter | Type | Description |
| x | double | the number we want to calculate the square root |
Calculates the square root of x.
An invalid number causes the function to throw an error.
|
| 16feb2005 |
function |
Laurent DOMINGOS |
- procedure sleep(millis : int)
| Parameter | Type | Description |
| millis | int | how many milliseconds the execution must be suspended |
The procedure suspends the execution for millis milliseconds.
|
| 10feb2005 |
bug_fix |
- |
Correction on the C++ native translation of BNF template non-terminals. |
| 10feb2005 |
bug_fix |
- |
In functions parseAsBNF() and translate() and expand() and generate(),
looking for the BNF-parsing script filename starts at the current directory of the callee. |
| 10feb2005 |
bug_fix |
- |
During the native translation of scripts to C++, the leader script might have
an empty C++ short file name in a rare use-case. |
| 27jan2005 |
function |
- |
- procedure incrementIndentLevel()
Increments the indentation level, used to indenting output files automatically while writing.
If first call, it enables the indent-mode: each time a text will have to be written at the
beginning of a line, the line will be indented, depending on the indentation level.
Call the function decrementIndentLevel() to decrease the indentation.
- function decrementIndentLevel() : bool
Decrements the indentation level, used to indenting output files automatically while writing.
If the function returns false, the indentation level is worth zero and it disables
the indent-mode.
Otherwise, each time a text will have to be written at the beginning of a line,
the line will be indented, depending on the indentation level.
Call the function incrementIndentLevel() to increase the indentation.
|
| 21jan2005 |
bug_fix |
Markus MARB |
The native C++ translation of a constant tree wasn't implemented yet.
A constant tree is, for instance:
{"a", {"yellow", "red"}, "submarine"}
|
| 20jan2005 |
function |
- |
- function isNumeric(number : string) : bool
| Parameter | Type | Description |
| number | string | a floating-point number in text representation |
This predicate checks whether the string passed by parameter is a floating-point
or not.
|
|
|
CodeWorker 3.8.4, 19jan2005
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
577662 |
CodeWorker_WIN3_8_4.zip |
| Any platform (?) |
sources |
1690184 |
CodeWorker_SRC3_8_4.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 19jan2005 |
bug_fix |
Lionel AUROUX |
The predefined BNF terminal #readCChar had the same behaviour as #readCString,
instead of consuming a C-like constant character. |
| 18jan2005 |
bug_fix |
- |
the assignment operator setall was causing a memory leak or a crash on attributes pointing to a reference, while freeing the memory. |
| 11jan2005 |
bug_fix |
- |
The BNF directive #skipIgnore wasn't applying correctly the implicit copy:
the scanned text was repeated twice. |
| 10jan2005 |
bug_fix |
- |
An ellipsis exception may have occured when a dynamic library module was compiled
with a too ancient version of CodeWorker ("CW4dl.h" or "CppParsingTree.h" or "CGRuntime.h" has changed). |
| 17dec2004 |
bug_fix |
- |
The and-or junction BNF operator (symbol &| was returning a failure when the
right-hand side member was unable to match the input. |
| 15dec2004 |
bug_fix |
- |
The interpreter crashed when an argument had the same name as the BNF rule.
Now, an explicit error message occurs. |
| 08dec2004 |
improvement |
- |
During the parsing of a floating-point number, the dot is consumed only if it doesn't exist a second dot just behind the first one:
- if you parse a double at the beginning of "2. is a floating point", 2. is consumed.
- if you parse a double at the beginning of "2..n", 2 only is consumed.
|
| 03dec2004 |
improvement |
Eric NICOLAS |
Now, the compiler detects an attempt to declare the reserved variables this or project as local or global. |
| 02dec2004 |
function |
- |
- procedure insertElementAt(list : treeref, key : string, position : int)
| Parameter | Type | Description |
| list | treeref | an array of nodes |
| key | string | the entry key of the element to insert |
| position | int | where to insert the new element, starting at 0 |
Insert a new element to list, at a position given by the argument position.
The argument key indicates the key of this element, which is built empty.
If the key is an empty string, then the key is supposed to be worth the size of the list automatically.
You can access the new element by writing either:
list#[position]
or
list[key]
|
| 29nov2004 |
feature |
- |
Add of #ignore(Ada) for eliminating Ada comments and whitespaces in a extended-BNF script. |
|
|
CodeWorker 3.8.3, 19nov2004
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
574602 |
CodeWorker_WIN3_8_3.zip |
| Any platform (?) |
sources |
1668657 |
CodeWorker_SRC3_8_3.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 19nov2004 |
bug_fix |
Laurent RIESTERER |
A temporary file, used during the code generation of a source file, was badly formed:
the path was containing anti-slashes, which may have caused some troubles on non-Windows platforms. |
| 14nov2004 |
bug_fix |
- |
About expressions embedded between tags @@ in a template-based script:
starting with a constant string was causing an unrelevant syntax error. |
| 04nov2004 |
bug_fix |
- |
the assignment operator setall wasn't copying attributes pointing to a reference correctly. |
| 26oct2004 |
improvement |
- |
Now, the binding to the dynamic library libcurl is resolved while using the cURL API.
So, the dynamic library doesn't need to be present if you don't use the cURL API. |
| 29oct2004 |
bug_fix |
- |
An imperative parse script (parseFree()) wasn't reentrant completely:
an ellipsis exceptions might have appeared in some cases. |
| 26oct2004 |
bug_fix |
- |
In the native C++ translation of scripts for building a standalone executable:
- aVariable#front ignored during the C++ translation in some cases,
- the keyword cascading wasn't taken into account while translating foreach and forfile,
- the return value of a BNF symbol (piece of text matched) wasn't concatenated correctly when needed
(functionality rarely required).
|
|
|
CodeWorker 3.8.2, 07oct2004
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
571481 |
CodeWorker_WIN3_8_2.zip |
| Any platform (?) |
sources |
1659058 |
CodeWorker_SRC3_8_2.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 03oct2004 |
improvement |
- |
Now, the local and localref and global statements accept more than one variable declaration, separated by commas.
Example:
// declaration of 3 local variables in one shot
local a = "1", b, c= 2;
|
| 03oct2004 |
feature |
- |
Now, the path of dynamic library plugins can end with a "_d" suffix for debug version.
Examples for a plugin named MyModule:
MyModulecw_d.dll
MyModulecw_d.so
|
| 03oct2004 |
feature |
- |
Add of setIntValue() and setDoubleValue() in the interpreter interface, as declared
in "CW4dl.h", used for building C++ dynamic library plugins intended to extend CodeWorker. |
| 26sep2004 |
bug_fix |
- |
Infinite loop in saveProject(), when the root graph project has a child referring to a node. |
| 19sep2004 |
bug_fix |
- |
Sometimes, the interpreted was detecting a syntax error on the extended-BNF directive #catch,
while the writing was correct. |
| 18sep2004 |
bug_fix |
Thierry WILMOT |
Now, the declaration of a local variable my-local-variable must be explicit, before calling
the BNF directives #insert(my-local-variable) or #pushItem(my-local-variable). |
| 07sep2004 |
bug_fix |
- |
the function composeHTMLLikeString() recognizes the apostrophe correctly, and doesn't invert this
character anymore. |
| 07sep2004 |
improvement |
- |
An error message raises if the BNF directive #nextStep is used outside of a jump or repeat regular expression. |
|
|
CodeWorker 3.8, 24aug2004
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
570036 |
CodeWorker_WIN3_8.zip |
| Any platform (?) |
sources |
1648999 |
CodeWorker_SRC3_8.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 22aug2004 |
improvement |
- |
Now, the function scanFiles() accepts a path in the short filename pattern.
Example:
scanFiles(dir, "project/examples", "src/*.cpp", true)
will filter:
"project/examples/airplanes/src/*.cpp"
"project/examples/boats/yacht/src/*.cpp"
"project/examples/bicycles/src/*.cpp"
|
| 15aug2004 |
bug_fix |
- |
The native C++ translation of CodeWorkers scripts has been corrected on some features:
- the BNF directive #skipIgnore,
- the BNF binary operator |>,
|
| 14aug2004 |
improvement |
- |
A new format type was added to the function completeDate: %|.
Once the date has been iterated up to the end, if the format wasnt applied on it completely,
an error occurs, except if %| stands at the current position in the format. |
| 14aug2004 |
feature |
- |
The statement exit was added, for exiting CodeWorker with an error code.
It expects an integer expression, for determining the value of the error code that
the interpreter will have to return to the system. |
| 14aug2004 |
feature |
- |
The new predefined BNF directive #readUptoIgnore was added. It reads all characters up to
encountering the first insignificant one. Insignificant characters are those to ignore between BNF
terminal matchings, and specified thanks to the directive #ignore. |
| 10aug2004 |
improvement |
- |
Now, the native C++ translation of CodeWorkers scripts generates a GNU makefile of the project. |
| 08aug2004 |
deprecated |
- |
The functions getInputLocation() and setInputLocation() replace the respective obsolete
getLocation() and setLocation() writings. |
| 07aug2004 |
bug_fix |
- |
The native C++ translation of CodeWorkers scripts has been corrected on some features:
- initialization of predefined global variables (_ARGS and _REQUEST),
- C++ writing of variable expressions in general,
- implicit copy in a translation script,
|
| 07aug2004 |
bug_fix |
- |
The date conversion of a two-digits year to a four-digit one was erroneous in the function formatDate(). |
|
|
CodeWorker 3.7, 04aug2004
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
562617 |
CodeWorker_WIN3_7.zip |
| Mac OS X 10.3 (Panther) |
binaries |
10162156 |
CodeWorker_MAC3_7.zip |
| Any platform (?) |
sources |
1640339 |
CodeWorker_SRC3_7.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 01aug2004 |
behaviour |
Thierry WILMOT |
The format of error messages has changed:
<filename>(line-number): <error-message>
replaces:
"<filename>" line line-number): <error-message>
|
| 01aug2004 |
feature |
- |
The new predefined non-terminal BNF symbol #readCChar reads a C-like constant character.
A C-like character stands between single quotes and admits the escape character \. |
| 01aug2004 |
improvement |
- |
The interpreter executes a BNF parsing if the first argument on the command line
has file extension being worth ".cwp". |
| 29jul2004 |
behaviour |
- |
The procedure copySmartFile() has become a function, returning true
when it executes the copy. |
| 25jul2004 |
bug_fix |
- |
When a variable was declared twice local to the same scope (not recommended), a bug was appearing:
once the second local declaration was reached, if the local variable was previously referring to another,
the referenced variable was cleaned. |
| 24jul2004 |
bug_fix |
- |
Some regressions were corrected on the native C++ translation of CodeWorkers scripts. |
| 19jul2004 |
function |
- |
- function countInputCols() : int
Determines the column number in the line where the parse cursor points to.
- function countOutputCols() : int
Determines the column number in the line where the output stream cursor points to.
|
|
|
CodeWorker 3.6, 09jul2004
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
546963 |
CodeWorker_WIN3_6.zip |
| Any platform (?) |
sources |
1616738 |
CodeWorker_SRC3_6.zip |
| Changes |
| Date |
Type |
Caller |
Description |
| 06jul2004 |
feature |
- |
A new BNF directive was added: #moveAhead.
Located into a BNF sequence, it means that after a valid matching of the rest
of the sequence, the cursor has necessary moved.
Example:
#moveAhead [A]? [B]?
If A doesnt match, then B must match so that the scan has read at least one character. |
| 06jul2004 |
function |
Stephane PELTIER |
- function getShortFilename(pathFilename : string) : string
| Parameter | Type | Description |
| pathFilename | string | a file name with its path |
Returns the short name of a file, meaning without the path.
It is composed of a radical + an extension.
|
| 06jul2004 |
improvement |
- |
Floating-point numbers representation: a better removal of superfluous digits after the dot. |
| 23jun2004 |
feature |
Eric NICOLAS |
Add of a new switch to pass on the command line: -nologo
reclaims that the interpreter doesnt write the copyright about CodeWorker
in the shell while starting. |
| 15jun2004 |
improvement |
- |
A new way to pass parameters to the command line:
codeworker <script-file> <arg1> ... <argN> [<switch>]*
It is more natural than the equivalent writing:
codeworker -script <script-file> -args <arg1> ... <argN> [<switch>]* } |
| 06jun2004 |
bug_fix |
- |
Some regressions were corrected on the native C++ translation of CodeWorkers scripts. |
| 23may2004 |
improvement |
- |
Now, the foreach statement can iterate a list sorted by its values instead of its keys.
Example:
local list;
insert list["silverware"] = "tea spoon";
insert list["Mountain"] = "Everest";
insert list["SilverWare"] = "Tea Spoon";
insert list["Boat"] = "Titanic";
insert list["acrobat"] = "Circus";
traceLine("Sorted list in a classical order:");
foreach i in sorted by_value list {
traceLine("\t" + i + " -> " + key(i));
}
Output:
Titanic -> Boat
Everest -> Mountain
Tea Spoon -> SilverWare
Circus -> acrobat
tea spoon -> silverware
|
|
|
CodeWorker 3.5, 07may2004
|
| Platform |
Type |
Size |
Archive |
| WINDOWS 98/2000/NT/XP |
binaries |
534804 |
CodeWorker_WIN3_5.zip |
| Any platform (?) |
sources |
2487789 |
CodeWorker_SRC3_5.zip |
| Changes |
| Under Windows platforms, the binaries are compiled with VC++ 7.1 for now.
If you dont have the DLLs msvcp71.dll and msvcr71.dll
on your computer, please download them from the header of the download page. |
| Date |
Type |
Caller |
Description |
| 06may2004 |
improvement |
- |
Now, the function getLastDelay() works even during the measurement of
the time consuming (controlling sequence under a delay statement modifier):
it returns the time elapsed since the beginning of the time-keeping. |
| 28apr2004 |
improvement |
- |
A better precision for floating point numbers (up to 24 digits, instead of 6 before). |
| 25apr2004 |
feature |
- |
A new preprocessor instruction called #line. It forces the compiler to
change the current value of the script line counter. |
| 25apr2004 |
bug_fix |
- |
Calling the function translateString() with the first parameter being the
translation script directly (and not the file name of the translation
script) was raising the error: "cannot ask for the value of a piece of script". |
| 24apr2004 |
feature |
- |
A tree node can point to an external data, holding the value of the node.
This external data might be any kind of data structure, inheriting from the class ExternalValueNode
declared in the header file "ExternalValueNode.h".
The scripting language has accepted external functions. Now, it also accepts external data.
An example is encapsulating a Trolltech-Qt widget for building GUI,
implemented in a plugin or in an application linking with the CodeWorkers library,
and handled from a CodeWorkers script. |
| 24apr2004 |
improvement |
- |
Have reduced the memory space allocation of a tree node. |
| 16apr2004 |
bug_fix |
- |
The function putEnv() now works on pure Unix platforms. |
| 15apr2004 |
function |
- |
- function computeMD5(text : string) : string
| Parameter | Type | Description |
| text | |
| | |