Icon Introduction

Elevate Web Builder uses an Object Pascal dialect for its core language that is very close to the Object Pascal language used by Embarcadero RAD Studio and Delphi. Object Pascal was chosen as the language because it is a very easy language to learn due to its very English-like keywords, and because it is structured and strongly-typed, allowing the applications to avoid run-time errors that can cause problems for un-typed languages like JavaScript (the target code of the compiler for client applications).

The following are the rules governing the basic structure of the language.

Character Set
The Unicode character set is used for all language elements. Please see the Literals and Identifiers sections below for information on the restrictons to the allowed characters for both.

Warning Although all Unicode characters are supported, certain double-wide characters in languages such as Chinese and Japanese cannot be displayed/edited properly in the IDE and code editor.

Case-Sensitivity
The language is not case-sensitive. Identifiers and other language keywords are always compared without considering case.

Statement Terminator
The semicolon (;) is the code statement terminator character in the language. It is used to indicate the ending of a statement, even if the statement spans more than one physical line:

begin
   if True then
      ShowMessage('It''s true !!!')
   else
      ShowMessage('It''s false !!!');
end;

In the above case, the extra line breaks are for formatting purposes only. However, you should always strive to format your code according to established formatting rules for the Object Pascal language, and such line breaks are very important for readability of your code.

Comments
The language supports both single-line comments using two slashes (//) or multi-line comments using left and right braces ({}):

begin
   // This piece of code needs some work
   if (not True) then
      BlowUpTheApplication
   else
      begin
      { Whew, we avoided blowing up the application,
        so let's continue on a more reasonable path }
      HandleTheSpecialCase;
      end;
end;

Literals
Literal values are specified as follows:

Value TypeExample
Numbers100
1200.42
-39.00
BooleanTrue
false
Strings'This is a string literal'
'This is a '+' concatentated '+' string literal'
Characters'a'
#27
Arrays['This','is','a','string','array','literal']
[100,2,45]
Referencesnil

Identifiers
An identifier is the name of any system-declared or user-declared object in an application, such as units, constants, types, variables, or procedures/functions. Identifiers may begin with an underscore (_) or a letter (a-z, A-Z), and may contain an underscore, a letter, or a digit (0-9).

Reserved Words
The following are the list of reserved words. These words should not be used as identifiers:

abstract
and
array
as
async
begin
break
case
class
const
constructor
contains
continue
default
destructor
div
do
downto
else
end
except
exit
external
finalization
finally
for
function
if
implementation
inherited
initialization
interface
is
mod
not
object
of
on
or
out
override
private
procedure
program
property
protected
public
raise
read
record
repeat
shl
shr
then
to
try
type
unit
until
uses
var
virtual
while
with
write
xor

Syntax Diagrams
In the language reference syntax diagrams, angle brackets (<>) represent a language element and brackets ([]) represent an optional language element.
Image