# Documentation conventions

## Contents

- Overview
- New features and compatibility

- ER5 feature level
- ER4 feature level
- Compatibility

- Glossaries
- Styles
- BNF grammars

## Overview

This topic provides a quick introduction to the conventions used in this documentation.

## New features and compatibility

Section Contents

- ER5 feature level
- ER4 feature level
- Compatibility

New features and changed behaviours for existing features are marked with icons in the text to indicate the EPOC release in which the documented behaviour was introduced. This makes it simple to recognise new or changed features, even without checking which document you are reading (which may not be immediately clear, for example when jumping between documents).

### ER5 feature level

The icon at the heading of a feature indicates that the feature is introduced in EPOC Release 5. Changed features are indicated in the text.

### ER4 feature level

The icon at the heading of a feature indicates that the feature was introduced in EPOC Release 4. Changed features are indicated in the text.

### Compatibility

Some developers may want to produce programs that work both on ER5 and on previous EPOC releases. To help this, a subheading Compatibility in the documentation for a keyword or function provides discussion of compatibility issues. If no such section exists, it should be assumed that the feature can be used with releases before EPOC Release 5.

## Glossaries

The Glossary provides definitions of important terms used in this documentation. Note that terms first used in other documentation, such as the EPOC C++ System Documentation, are defined in the glossaries belonging to those documents.

## Styles

Style | Type
`File | Open` | Application text and menus
`variable$`, `funccall:(),COMMANDNAME` | OPL Code.
note this | Emphasised text containing unusual or surprising information
example | Example project.
`Const.oph` | Filename
SQL | Hyperlink to definition in the glossary
Alt+A | Key names
WINS | Text only applies to the indicated platform
Warning | Warning of an important issue

## BNF grammars

Backus-Naur Form (BNF) grammars are used as a tool for describing constructions in other languages, for example:

  select-statement :
  `SELECT` select-list `FROM` table-name [ restriction ] [ ordering ]

  restriction :
  `WHERE` search-condition

  ordering :
  `ORDER BY` sort-order

A BNF definition states that the named item given before the colon is written as described after the colon. For example, an ordering is written as `ORDER BY` followed by a sort-order (which may be defined elsewhere).

BNF expression | What it means
named-construction : expression | Declares that a named-construction is written as expression.
named-construction : expression1 expression2 | Declares that a named-construction is written as either expression1 or expression2.
`word` | The word `word`, written literally.
exp1 exp2 | exp1 followed by exp2.
[ exp ] | exp is optional.
[ exp1 | exp2 ] | Either exp1 or exp2 or nothing.
exp+ | expression, repeated one or more times.
exp* | expression, repeated zero, one or more times.