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".
|
Since the version 3.10.3, binary and source packages are signed by a GnuPG signature.
You can import the public key of the signature stored in GnuPG_PubKey.txt and then check the integrity of the package, typing:
gpg --verify <CodeWorker_WIN/SRCx_y.zip>.asc <CodeWorker_WIN/SRCx_y.zip>
where <CodeWorker_WIN/SRCx_y.zip>.asc can be found with the description of the package.
|
Please do not hesitate to contact us for any trouble (source recompiling, binaries, constructive criticisms, suggestions, ...). |
To subscribe to new releases.
CodeWorker 3.10.4, 27may2005
|
Platform |
Type |
Size |
Archive |
WINDOWS 98/2000/NT/XP |
binaries |
-4 |
CodeWorker_WIN3_10_4.zip |
Any platform (?) |
sources |
-4 |
CodeWorker_SRC3_10_4.zip |
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(). |
|
Click here to look up all past downloads of CodeWorker
|