---
title: Notation
description: Notation principles for the Flux functional data scripting language.
menu:
  v2_0_ref:
    parent: Flux specification
    name: Notation
weight: 206
---

The syntax of the language is specified using [Extended Backus-Naur Form (EBNF)](https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form):

```
Production  = production_name "=" [ Expression ] "." .
Expression  = Alternative { "|" Alternative } .
Alternative = Term { Term } .
Term        = production_name | token [ "…" token ] | Group | Option | Repetition .
Group       = "(" Expression ")" .
Option      = "[" Expression "]" .
Repetition  = "{" Expression "}" .
```

A _production_ is an expression constructed from terms and the following operators, in increasing precedence:

```
|   alternation
()  grouping
[]  option (0 or 1 times)
{}  repetition (0 to n times)
```

Lowercase production names are used to identify lexical tokens.
Non-terminals are in [camel case](https://en.wikipedia.org/wiki/Camel_case).
Lexical tokens are enclosed in double quotes (`""`) or back quotes (``).
