This section introduces the fundamental elements of the HelpNDoc scripting language. Understanding these basics will help you write and modify scripts to automate tasks in HelpNDoc, or create templates to control the documentation's output. This guide covers variables, operators, control structures, and comments, which form the building blocks of your scripts.

Variables

Declaration and Types

Variables are used to store data that your script can manipulate. In HelpNDoc's scripting language, you need to declare variables with a specific type before using them.

Common Data Types

See: Base types 

  • Integer: Stores whole numbers.
    Example: var Age: Integer;
  • Float: Stores floating-point numbers (numbers with decimals).
    Example: var Price: Float;
  • String: Stores sequences of characters (text).
    Example: var Name: String;
  • Boolean: Stores true or false values.
    Example: var IsComplete: Boolean;
  • TDateTime: Stores date and time values.
    Example: var EventDate: TDateTime;
  • Array: Stores a collection of elements, all of the same type, in a fixed-size sequence. Arrays are zero-indexed, meaning the first element is accessed with index 0.
    Example: var Numbers: array of Integer;

Example

var Age: Integer;
var Name: String;
var Price: Float;
var IsComplete: Boolean;
var EventDate: TDateTime;
var Scores: array[0..2] of Integer;
begin
  Age := 25;
  Name := 'Alice';
  Price := 99.99;
  IsComplete := True;
  EventDate := Now();
  
  Scores[0] := 85;
  Scores[1] := 90;
  Scores[2] := 95;

  Print('Name: ' + Name);
  Print('Age: ' + Age.ToString);
  Print('Price: ' + Price.ToString);
  Print('Is Complete: ' + IsComplete.ToString);
  Print('Event Date: ' + DateTimeToStr(EventDate));
  Print('Scores: ' + Scores[0].ToString + ', ' + Scores[1].ToString + ', ' + Scores[2].ToString);
end;

Operators

Operators are symbols that tell the script to perform specific mathematical, logical, or comparison operations.

Assignment Operator

  • := (Assignment): Assigns a value to a variable. VariableName := Value;

Arithmetic Operators

  • + (Addition): Adds two numbers. Total := 5 + 3;
  • - (Subtraction): Subtracts one number from another. Difference := 10 - 2;
  • * (Multiplication): Multiplies two numbers. Product := 4 * 3;
  • / (Division): Divides one number by another. Quotient := 8 / 2;

Comparison Operators

  • = (Equal to): Checks if two values are equal. IsEqual := (5 = 5);
  • <> (Not equal to): Checks if two values are not equal. IsNotEqual := (5 <> 3);
  • > (Greater than): Checks if the left value is greater than the right. IsGreater := (7 > 3);
  • < (Less than): Checks if the left value is less than the right. IsLess := (2 < 4);

Logical Operators

  • and: Returns true if both conditions are true. Result := (True and False);
  • or: Returns true if at least one condition is true. Result := (True or False);
  • not: Reverses the condition. Result := not(True);

Example

var
  Sum, Difference: Integer;
var
  IsValid: Boolean;
begin
  Sum := 10 + 5;
  Difference := 15 - 7;
  IsValid := (Sum > Difference) and (Difference > 0);
end;

Control Structures

Control structures allow you to control the flow of your script based on conditions or repetitive tasks.

If Statements

Use if statements to execute code only if a specific condition is true.

Syntax:

if Condition then
begin
  // Code to execute if the condition is true
end
else
begin
  // Code to execute if the condition is false
end;

Example:

var
  Age: Integer;
begin
  Age := 25;
  if Age >= 18 then
    Print('You are an adult.')
  else
    Print('You are not an adult.');
end;

For Loops

Use for loops to repeat a block of code a specific number of times.

Syntax:

for Variable := StartValue to EndValue do
begin
  // Code to repeat
end;

Example:

var
  i: Integer;
begin
  for i := 1 to 5 do
  begin
    Print('Iteration: ' + i.ToString);
  end;
end;

While Loops

Use while loops to repeat a block of code as long as a condition is true.

Syntax:

while Condition do
begin
  // Code to repeat
end;

Example:

var
  Counter: Integer;
begin
  Counter := 0;
  while Counter < 5 do
  begin
    Print('Counter: ' + Counter.ToString);
    Inc(Counter); // Increment the counter
  end;
end;

Comments

Comments are used to add explanations or notes in your code. They are ignored by the script during execution.

Single-line Comments

Use // for single-line comments.

Example:

// This is a single-line comment
var
  Age: Integer;
begin
  Age := 30; // Setting the age
end;

Multi-line Comments

Use { } or (* *) for multi-line comments.

Example:

{
  This is a multi-line comment
  that spans multiple lines.
}
var
  Name: String;
begin
  Name := 'HelpNDoc User';
end;