Lexical Structure

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

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 encountered. 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:

  1. Identifiers - created from any combination of case insensitive letters, digits, the underscore character '_', and the dollar sign '$', but must always begin with a letter. Identifiers starting with an underscore character '_' are reserved for internal use by heitml.
  2. Integer constants - a sequence of numbers
  3. 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)]
  4. String constants - enclosed in double-quote or single 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 "\\". Character References of the Form &... inside strings are replaced by their corresponding characters. Currently &amp;(&), &gt;(>), &lt;(<), &quot;(") &apos;('), and &#x5c (\) are replaced but more might come with future versions. So the & character in strings should always be written as &amp;. To remain XML 1.0 compatible strings may not contain & characters (outside character references), may not contain '<' characters (use &lt; instead). Besides that you might want to avoid the special meaning of the \ in heitml strings by using the &#x5c character reference.
  5. Operator Symbols
  6. Reserved Words - currently true, false, null, defbody, this, parent, creator and emptytuple are reserved words.

White space (including new lines) is ignored in expression mode, unless needed to separate two tokens. In HTML mode, the following character sequences are ignored by the existing heitml interpreter. This enables cooperation with existing HTML editors. It is not considered a feature of the heitml language itself but only of the current implementation.

'<%", "%>', '<!--heitml>', '<heitml-->', '<server>', '</server>', '<script language="heitml">', '<!--heitml--></script>'.
These strings can be used to escape heitml tags and so to make file editable by a conventional HTML editor. The current heitml interpreter has functions to automatically insert and remove these strings from source files.

Processing

General

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 transparent to both programmers and end users alike and should have no effect on their thinking.

Execution Order

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.

Kinds of Tags

heitml distinguishes between heitml, HTML, and User-defined Tags. A Tag generally has the form:

< [/] Identifier Parameters >

The type of Tag is implicitly 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 < > separated by semicolons:

< [/] Identifier Parameters ; [/] Identifier Parameters ; ... >

After some heitml Tags without parameters the semicolon can be omitted. You cannot use the semicolon after the static heitml include tag, e.g. to combine several static include tags.


This page was dynamically generated by the web application development tool RADpage of H.E.I. Read the article (in German) on AJAX Design? (in German) on www.h-e-i.de.
© 1996-2017 H.E.I. All Rights Reserved.



Homepage
Intro/Features
Component Guide
Programming
  Language Guide
  Language Ref.
    General Design
    Lexical Structure
    Expressions
    Objects
    Methods
    Classes
    heitml Tags
    heitml Functions
    Advanced Functions
    Database Access
    Global Variables
    Form Fields
    Server Variables
    Sessions
    heitml Syntax
  Component Ref.
  Class Library
  User Components
  Tryout Form
  Tutorial
  New Features
  heitml 1
User Guide
FAQ
Mailinglist
Discussion Group
Services
Pricing/Register
Download
Frame
 
Contact
 
 
 
Search: