Version

EBNF Specification Deviations (Syntax Parsing Engine)

Topic Overview

Purpose

This topic explains the deviations from the ISO 14977 specification in the EBNF format used by the Syntax Parsing Engine.

Required background

The following topics are prerequisites to understanding this topic:

Topic Purpose

This topic provides an overview of the Syntax Parsing Engine.

This topic provides an overview of the Syntax Parsing Engine’s Grammar.

This topic gives an overview of the EBNF file format used to define a grammar.

This topic explains the format of the special sequence sections in the EBNF file used to configure the grammar.

In this topic

This topic contains the following sections:

Deviations Summary

Deviations summary chart

Although the Syntax Parsing Engine conforms to the majority of the EBNF specification, there are some deviations introduced, which are listed in the table below:

Configurable aspect Details

It is possible to use the “?” character within a special sequence.

It is possible to use underscores in a symbol’s name.

Special Sequence Deviation

Description

The Syntax Parsing Engine allows the usage of the “?” character in special sequences, because the grammar properties section most likely contains regular expressions, which often use the “?” character. If the “?” were not allowed, all places where it is needed would need to be written as “?”, which is the XML escape sequence for the “?” character. This would cause all regular expression patterns to be less readable.

Symbol Naming Deviation

The Syntax Parsing Engine allows the usage of the underscore (“_”) in symbol names. Although the EBNF specification only allows symbol names to start with a letter, followed by zero or more letters or digits, the Syntax Parsing Engine extends this by allowing underscores anywhere in the symbol name. This is allowed to facilitate syntax tree pruning. See Pruning the Syntax Tree topic for more information.

Related Content

Topics

The following topics provide additional information related to this topic.

Topic Purpose

This topic explains the process of creating a grammar from EBNF content.

This topic explains the process of creating EBNF content from a grammar.