Language Reference
by Helmut Emmelmann, PhD
and Keith Oustalet
|
Input text can be processed in
- HTML mode or in
- expression mode
|
Different lexical rules apply for each mode, but heitml comments are allowed within all modes. A comment starts with two forward-slash marks "//" followed by a whitespace character such as a Space or Tab, and extends until the end of the line. Also, text enclosed in "/*" and "*/" is interpreted as a comment.
Text processed in HTML mode is left unchanged (except for comments).
Based on the context, the text is either sent to the browser, assigned to a
variable, send by email, written to a file, or interpreted as a SQL command.
heitml starts to process a document in HTML mode and to send it to the
browser. HTML mode ends as soon as a heitml-tag or a user defined tag is
encounterd. All the text inside the < > brackets of a heitml or user
defined tag is processed in expression mode.
In expression mode the following lexical tokens can occur:
- Identifiers - created from any combination of case insensitive letters, digits, the underscore character '_', and the dollar sign '$', but must always begin with a letter.
- Integer constants - a sequence of numbers
- Real constants - composed of numbers plus a decimal point ".", followed by more number(s) and, optionally, an exponent in the following format: [E [+\-] number(s)]
- String constants - enclosed in double-quote marks. However, to include double-quotes within the constant, they must be preceded by the backslash symbol "\". To include a backslash as part of the string, you must enter the backslash character twice "\\".
- Operator Symbols
- Reserved Words - currently true, false, null, emptytuple, html, furl, quoted, dbhtml, input, cdfn, and hstv are reserved words.
|
White space (including new lines) is ignored in expression mode, unless needed to
seperate two tokens.
heitml is written in pages, just like HTML. A heitml page is processed
as a procedural program producing an HTML page which is sent through the
internet to the browser on the fly.
Although this is how heitml works on a technical level, it is probably not the way you should think while
writing heitml pages.
When creating heitml applications you can view heitml and HTML as a single integrated
language that produces nicely formatted
output on your screen. The fact that there are two languages (heitml and HTML) and
two programs (heitml on the Web Server and a Browser on the Client computer) is completely transparaent
to both programmers and end users alike and should have no effect on their thinking.
A heitml page is normally executed top down, left to right.
Normal text and HTML Tags are executed by just copying them to the output.
As soon as a heitml tag or a user defined tag is encountered it is executed.
Execution means to evaluate the parameters and to perform a certain
action, as described below for every heitml tag.
heitml distinguishes between heitml, HTML, and User-defined
Tags. A Tag generally has the form:
|
< [/] Identifier Parameters >
|
The type of Tag is implicitely known by the identifier. heitml has
several built-in heitml Tags that are specified in this document. All Tags defined by the user using the <def and <defenv Tags are user defined Tags. All other Tags are HTML Tags and remain undisturbed by heitml. User defined Tags can override HTML Tags, but not heitml Tags.
Several heitml and User-defined Tags can be combined and written within
one pair of brackets < > seperated by semicolons:
|
< [/] Identifier Parameters ; [/] Identifier Parameters ; ... >
|
After some heitml Tags without parameters the semicolon can be omitted.
For example:
|
< if !isempty(a); ? a; /if >
|
This page was dynamically generated by
heitml
© 1996-1997 H.E.I. All Rights Reserved
|