working "C++ / ISO 14882 parser" { description { \textit{BNF-parsing} script of the C++ grammar to be able to extract the AST and to provide smart and powerful C++ source file transformation. } state: progress; } working "UML / Rational ROSE 98" { description { \textit{BNF-parsing} script of a \samp{"*.mdl"} file generated by Rational ROSE for extracting class diagrams to start. } state: pending; } working "Modeling language" { description { \textit{BNF-parsing} script of a tailorable modeling language and some \textit{template-based} scripts to offer useful transversal features for the software infrastructure. } state: pending; } theme "XML" { description { This section proposes some scripts to work on XML, which isn't the native manner to represent the knowledge in \CodeWorker\ but that cannot be ignored as a very convenient and widely admitted format for expressing specifications. } subject "XML parser" { description { A script for scanning a XML file in general (with no DTD) and for populating a parse tree of \CodeWorker\ that conforms to the logic structure of the XML hierarchy. } script "XMLparser.cwp"; example "XMLparser-example1.cws"; } subject "DTD parser" { description { A script for building the AST (Abstract Syntactic Tree) of a DTD file. This AST might be used for translating from a DTD to a \textit{template-based} script or for any other application. } script "DTDparser.cwp"; example link "DTDtoBNF-example1.cws"; } subject "XSL parser" { description { A script for building the AST (Abstract Syntactic Tree) of a XSL file. This AST might be used for translating from XSL to \TLcleaveland\ (Template Language of Craig Cleaveland) or to a \textit{template-based} script or for any other application. } script "XSLparser.cwp"; } } /* theme "Grammars" { description {} subject "C++" { description { \textit{BNF-parsing} script of the C++ grammar to be able to extract the AST and to provide smart and powerful C++ source file transformation. } script "Cpp14882.cwp"; } } */ /* theme "Modeling languages" { description {} subject "Default" { description {} state pending; } subject "UML / Rational ROSE 98" { description {} state pending; } } */ theme "Program transformation" { description {A program transformation changes the source code, to do optimizations, code intrusion or rewriting.} subject "C++ profiling" { description { Here is a coding pattern that enables to include source code for profiling in the C++ function bodies. This transformation doesn't require to construct the AST of the C++ source code. } script "RawProfilingLeader.cws", "RawProfilingCppTransformation.cwp", "RawProfilingCpp.cwt", "RawProfilingHpp.cwt"; file "RawProfiling.h"; example "RawProfiling-example1.cws"; } } theme "source-to-source translation" { description { A source-to-source translation consists on translating a text from a format to another. It may require a first pass to extract the parse tree of the text or may construct the target on the fly. } subject "\CodeWorker\ script to HTML" { description { Translates any CodeWorker script to HTML, highlighting the code according to the syntax and linking keywords to the online-documentation. } script "CWscript2HTML.cwp", "CodeWorker_grammar.cwp"; } subject "DTD to \\textit{BNF-parsing} script" { description { Translating a DTD to a \CodeWorker\ script isn't a straightforward process, so the translation requires first to extract a parse tree of the DTD before generating the corresponding \textit{BNF-parsing} script. } script link "DTDparser.cwp", "DTDtoBNF.cwt"; example "DTDtoBNF-example1.cws"; } subject "XSL to \\textit{template-based} script" { description { Translating a XSL file to a \CodeWorker\ script isn't a straightforward process, so the translation requires first to extract a parse tree of the XSL file before generating the corresponding \textit{template-based} script.\\ Executing the script will operate the corresponding XSL transformation. } script "XSLparser.cwp", "XSLtoCodeWorker.cwt"; example "XSLtoBNF-example1.cws"; } } theme "CGI scripts" { description { \CodeWorker\ is able to run as a CGI program since version \samp{2.10}. One presents some little use-cases for illustrating the advantage of using \CodeWorker\ on the \textit{Web server}-side.\\ The scripts encountered below must be copied on the \textit{Web server}-side, after registration of \CodeWorker\ as attached to the \samp{".cwt"} file extension. } subject "Basic information" { description { A script for displaying all CGI environment variables and for showing the client request. } script "basicInformation.cwt"; } subject "Simple hit counter" { description { A script for counting the number of hits by remote host and by date. } script "hitCounter.cwt", "hitCounterParser.cwp", "hitCounterUpdate.cwt"; } subject "Remote graph generation" { description { The server generates the \samp{png} class diagram of an object modelling. } script "classDiagram.cwt", "classDiagramGraphViz.cwt", "CWML.cwp"; } } /* theme "active libraries" { description { } subject "Business classes" { } subject "Object walker" { } subject "Object reader/writer" { } } */