@ /* "CodeWorker": a scripting language for parsing and generating text. Copyright (C) 1996-1997, 1999-2002 Cédric Lemaire This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA To contact the author: codeworker@free.fr */ function writeFunctionDescription(myFunction : node, myHTMLDoc : node) { @ @ } function generateJavaDotNet() { local sFileVersion = getVersion(); sFileVersion = sFileVersion.replaceString('.', '_'); @
Documentation
Type Size Document
Reference Manual @fileSize("WebSite/CodeWorker.pdf")@ CodeWorker.pdf
Reference Manual - Online documentation
Tutorial - Practice of parsing and code generation for generative programming
Tutorial French Automatiser le développement d'applications; parcours découverte
Last Java interface for CodeWorker (version @getVersion()@)
Platform Type Size Archive
WINDOWS 98/2000/NT/XP binaries @fileSize("WebSite/downloads/CodeWorker_Java.zip")@ CodeWorker_Java.zip
Any platform (?) The sources are located in the directory "java/src" (download CodeWorker sources). Please read this page about the Java interface for more information.
Last .NET assembly of CodeWorker (version @getVersion()@)
Platform Type Size Archive
WINDOWS 98/2000/NT/XP binaries @fileSize("WebSite/downloads/CodeWorker_NET.zip")@ CodeWorker_NET.zip
Any platform (?) To compile it for Mono, the sources are located in the directory "cs/src" (download CodeWorker sources). Please read this page about the .NET assembly for more information.
@ } function generateVersionChanges(theVersion : node, bLastChanges : value) { @ @ if existVariable(theVersion.description) { @ @ } @ @ foreach i in theVersion.listOfChanges { @ @ } @
Changes@ if bLastChanges { @ on version @theVersion@@ } else if theVersion.private { @ on private version @theVersion@@ } @
@ local myHTMLDoc; insert myHTMLDoc.sParsingMode = "description"; createVirtualFile(".#f1", theVersion.description); createVirtualFile(".#f2", ""); try { translate("LaTeX2HTML.cwp", myHTMLDoc, ".#f1", ".#f2"); } catch(sError) { traceLine("error in the description of the version '" + theVersion + "':"); traceLine(theVersion.description); error(sError); } @@loadVirtualFile(".#f2")@@ deleteVirtualFile(".#f2"); deleteVirtualFile(".#f1"); @
Date Type Caller Description
@i.date@ @i.type@ @ switch(i.caller) { case "": @-@ break; case "Gwenael CHAZAL": @Gwenael CHAZAL@ break; case "Alan CYMENT": @Alan CYMENT@ break; case "Eric NICOLAS": @Eric NICOLAS@ break; case "Laurent RIESTERER": @Laurent RIESTERER@ break; case "Patrick BRANNAN": @Patrick BRANNAN@ break; case "David JOBET": @David JOBET@ break; case "Thierry WILMOT": @Thierry WILMOT@ break; case "DSM workshop/OOPSLA 2005": @DSM workshop/OOPSLA 2005@ break; default: @@i.caller@@ } @ @ local myHTMLDoc; insert myHTMLDoc.sParsingMode = "description"; if i.type == "function" { local myFunction; foreach j in i.listOfFunctions { if findElement(j, project.procedureList) ref myFunction = project.procedureList[j]; else if findElement(j, project.functionList) ref myFunction = project.functionList[j]; else error("'changes.log': unknown function '" + j + "'"); writeFunctionDescription(myFunction, myHTMLDoc); } } else if i.type == "option" { if $getArraySize(i.listOfOptions) > 1$ { @ Add of @i.listOfOptions.size()@ new options on the command line:
    @ foreach j in i.listOfOptions { @
  • -@j@
  • @ } @
@ } else { @ Add of a new option on the command line: -@i.listOfOptions#front@@ } } else { createVirtualFile(".#f1", i.description); createVirtualFile(".#f2", ""); try { translate("LaTeX2HTML.cwp", myHTMLDoc, ".#f1", ".#f2"); } catch(sError) { traceLine("error in the description of a '" + i.type + ":" + i.date + "' change:"); traceLine(i.description); error(sError); } @@loadVirtualFile(".#f2")@@ deleteVirtualFile(".#f2"); deleteVirtualFile(".#f1"); } @
@ } local sThisVersion; if findElement("current", project.listOfVersions) set sThisVersion = "current"; else set sThisVersion = getVersion(); local sVersion = replaceString(".", "_", sThisVersion); local bLastChanges = !getMarkupKey(); local bGPGWINSignature = existFile("WebSite/downloads/CodeWorker_WIN" + sVersion + ".zip.asc"); local bGPGSRCSignature = existFile("WebSite/downloads/CodeWorker_SRC" + sVersion + ".zip.asc"); local bGPGSignature = bGPGWINSignature || bGPGSRCSignature; if bLastChanges { @ Last changes of CodeWorker

CodeWorker



@ } else { @ @ if bGPGSignature { @ @ } @ @ if bGPGWINSignature { @ @ } @ @ if bGPGSRCSignature { @ @ } @
CodeWorker @sThisVersion@, @formatDate(getNow(), "%d%b%Y")@
Platform Type Size ArchiveGnuPG signature
WINDOWS 98/2000/NT/XP binaries @fileSize("WebSite/downloads/CodeWorker_WIN" + sVersion + ".zip")@ CodeWorker_WIN@sVersion@.zipCodeWorker_WIN@sVersion@.zip.asc
Any platform (?) sources @fileSize("WebSite/downloads/CodeWorker_SRC" + sVersion + ".zip")@ CodeWorker_SRC@sVersion@.zipCodeWorker_SRC@sVersion@.zip.asc
@ } if this == "last download" { generateJavaDotNet(); } if getProperty("makeChanges") && (getProperty("makeChanges") != true) { local bStopAfterPrivates; foreach i in project.listOfVersions { if bStopAfterPrivates && !i.private break; generateVersionChanges(i, bLastChanges); if key(i) == getProperty("makeChanges") set bStopAfterPrivates = true; } } else { local bPointer = false; foreach i in project.listOfVersions { if !bPointer { if key(i) != sThisVersion continue; generateVersionChanges(i, bLastChanges); set bPointer = true; } else if i.private { generateVersionChanges(i, bLastChanges); } else break; } } if bLastChanges { @ @ } else { @
@ }