Identifiers and reserved keywords

## Contents

- Your rights

- Introduction

- Component model

- Component description file

  - Preprocessing

  - Elements of a description file

  - Data type and constant definitions

  - Module declaration

  - Component declaration

  - Interface declaration

  - IDS declaration

  - Port declaration

  - Task declaration

  - Service declaration

  - Codel declaration

  - Identifiers and reserved keywords

  - Pragmas

  - Grammar reference

- GenoM IDL mappings

- Running GenoM

- Tutorials

- Templates

## Identifiers and reserved keywords

An identifier is a sequence of ASCII alphabetic, digit, and underscore (`_`) characters. The first character must be an ASCII alphabetic character.

(108) `identifier ::=` | `"[A-Za-z-][A-Za-z0-9-]*"` `|` `"s"` `|` `"ms"` `|` `"us"` `|` `"k"` `|` `"m"` `|` `"real-time"` `|` `"interface"` `|` `"component"` `|` `"ids"` `|` `"attribute"` `|` `"function"` `|` `"activity"` `|` `"version"` `|` `"lang"` `|` `"email"` `|` `"requires"` `|` `"codels-require"` `|` `"clock-rate"` `|` `"task"` `|` `"task"` `|` `"period"` `|` `"delay"` `|` `"priority"` `|` `"scheduling"` `|` `"stack"` `|` `"codel"` `|` `"validate"` `|` `"yields"` `|` `"pause"` `|` `"throws"` `|` `"doc"` `|` `"interrupts"` `|` `"before"` `|` `"after"` `|` `"handle"` `|` `"port"` `|` `"in"` `|` `"out"` `|` `"inout"` `|` `"local"` `|` `"async"` `|` `"remote"` `|` `"extends"` `|` `"provides"` `|` `"uses"` `|` `"multiple"` `|` `"native"` `|` `"exception"` `|` `"visibility"` `|` `"hidden"`
(109) `identifier-list ::=` | `{` `identifier` `","` `}` `identifier`

Words that are reserved keywords in the dotgen language are valid identifiers where their use is not ambiguous.