CodeWorker



Changes on version 4.0.2
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