{%
# Lists of axes

In various commands such as `//copy+`, `//move+`, and others lists of axes are used. These are all underpinned by a single grammar and a single parser (located in `worldeditadditions/utils/parse/axes.lua`). While the parser itself requires pre-split tokens (see `split_shell` for that), the grammar which it parses is documnted here.

Examples:

```
front 3 left 10 y 77 x 30 back 99
```

%}

<axes> ::= <axis_part> *

<axes_part> ::= <axis_name> <number>
	| <axis_name> <number> <reverse>

<reverse> ::= <number>
	| <reverse_name>

<reverse_name> ::= sym | symmetrical | mirror | mir | rev | reverse | true



<axis_name> ::= <axis_name_absolute>
	| <axis_name_relative>

<axis_name_absolute> ::= <axis_letters_absolute>
	| "-" <axis_letters_absolute>

<axis_name_relative> ::= front | back | left | right | up | down | "?"

<axis_letters_absolute> ::= x | y | z | h | v



<number> ::= <digit> *

<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 0
