# Mermaid Eisenbahndiagramm-Spickzettel

Eine Grammatikregel, gezeichnet.

## Eine Regel

Eine Regel ist ein Name, ein Gleichheitszeichen und eine Definition, die mit einem Semikolon endet. terminal ist ein Literal, nonterminal eine andere Regel.

```mermaid
railroad-beta
    rule = sequence(terminal("a"), nonterminal("other")) ;
    other = terminal("b") ;
```

![Ein Eisenbahndiagramm aus zwei Regeln: „rule“ läuft „a“ und „other“ nacheinander, und „other“ ist „b“.](/diagrams/railroad/basic.svg)

## Eine Alternative

choice nimmt die Alternativen in Klammern. Die Regel selbst darf nicht choice heißen — der Name ist vergeben.

```mermaid
railroad-beta
    alt = choice(terminal("a"), terminal("b")) ;
```

![Ein Eisenbahndiagramm mit einer Regel „alt“, die entweder „a“ oder „b“ anbietet.](/diagrams/railroad/choice.svg)

## Ein optionaler Teil

optional umschließt ein Teil, das weggelassen werden darf.

```mermaid
railroad-beta
    rule = sequence(optional(nonterminal("tail")), terminal("head")) ;
    tail = terminal("t") ;
```

![Ein Eisenbahndiagramm mit einer Regel, deren erster Teil „tail“ optional ist und deren zweiter Teil „head“ ist.](/diagrams/railroad/optional.svg)

## Wiederholen

oneOrMore braucht mindestens eines, zeroOrMore keines. Beide umschließen das Teil, das sie wiederholen.

```mermaid
railroad-beta
    digits = oneOrMore(terminal("0")) ;
    words = zeroOrMore(terminal("x")) ;
```

![Zwei Eisenbahndiagramme nebeneinander: Ziffern, die 0 mindestens einmal wiederholen, und Wörter, die x beliebig oft wiederholen.](/diagrams/railroad/repeat.svg)

## In Mernyx zeichnen

Öffne eine .mmd-Datei, verschiebe einen Knoten auf dem Canvas, und der Quellcode kommt mit. Nativ auf macOS, ohne Browser dazwischen.
