 0 400   0   // tests for code folding
 1 400   0   
 0 400   0   // multi line comments
 2 400   0 + { 
 0 401   0 | line1
 0 401   0 | line2
 0 401   0 | }
 1 400   0   
 0 400   0   // begin .. end
 2 400   0 + begin
 0 401   0 | some commands
 0 401   0 | end;
 1 400   0   
 2 400   0 + record test
 0 401   0 |   var1: type1;
 0 401   0 |   var2: type2;
 0 401   0 |   end; //record
 1 400   0     
 0 400   0   //asm
 2 400   0 + asm
 0 401   0 |   some statement
 0 401   0 |   end; //asm
 1 400   0     
 0 400   0   //try (from https://wiki.freepascal.org/Try)
 2 400   0 + try
 0 401   0 |   // code that might generate an exception
 0 401   0 | except
 0 401   0 |   // will only be executed in case of an exception
 0 401   0 |   on E: EDatabaseError do
 0 401   0 |     ShowMessage( 'Database error: '+ E.ClassName + #13#10 + E.Message );
 0 401   0 |   on E: Exception do
 0 401   0 |     ShowMessage( 'Error: '+ E.ClassName + #13#10 + E.Message );
 0 401   0 | end;
 1 400   0     
 0 400   0   //try nested (from https://wiki.freepascal.org/Try)
 2 400   0 + try
 2 401   0 +   try
 0 402   0 |     // code dealing with database that might generate an exception
 0 402   0 |   except
 0 402   0 |     // will only be executed in case of an exception
 0 402   0 |     on E: EDatabaseError do
 0 402   0 |       ShowMessage( 'Database error: '+ E.ClassName + #13#10 + E.Message );
 0 402   0 |     on E: Exception do
 0 402   0 |       ShowMessage( 'Error: '+ E.ClassName + #13#10 + E.Message );
 0 402   0 |   end;
 0 401   0 | finally
 0 401   0 |   // clean up database-related resources
 0 401   0 | end;
 1 400   0   
 0 400   0   //case
 2 400   0 + case x of
 0 401   0 |   1: do something;
 0 401   0 |   2: do some other thing;
 0 401   0 | else
 0 401   0 |   do default;
 0 401   0 |   end; //case
 1 400   0     
 0 400   0   //if then else  
 0 400   0   if x=y then 
 0 400   0     do something;
 0 400   0   else
 0 400   0     do some other thing;
 1 400   0     
 0 400   0   //for loop  
 0 400   0   for i:=1 to 10 do
 0 400   0     writeln(i)
 1 400   0   
 0 400   0   //do until
 0 400   0   repeat
 0 400   0     write(a);
 0 400   0     i:=i+1;
 0 400   0   until i>10;
 1 400   0   
 0 400   0   //preprocessor if, else, endif
 0 400   0   {$DEFINE label}
 2 400   0 + {$IFDEF label}
 0 401   0 |   command 1
 0 401   0 | {$ELSE}
 0 401   0 |   command 2
 0 401   0 | {$ENDIF}
 1 400   0   