Structure
| Tapes number: | |
|---|---|
| Heads on tapes: | [ [|[ index ]|] -> [|[ tape.heads.length ]|] ] |
| States: | [|[ state ]|] |
| Start state: | |
| End states: | [|[ endState ]|] |
Inside state
| Actual state: | |
|---|---|
| Done steps: |
Tapes
Rules
[|[ rule ]|]
Guide
- Smallest head and tape number is 0
- Head start position available inputs are integers and 'u' character.
- At head start position '0' means strings left side, 'u' means longest string's right side.
- First match executes, so order is important.
- Every parameter in the rules is optional except statuses and '='.
- Every rules executes left to right, so order is important in every rule.
- Parameters are separates with space.
- Rules main parts starts with statuses.
- Head name syntax: 'tapeNumber-headNumber'.
- '=' symbol is the separator between read and write parts.
- Symbol of empty read is '_'
- Example rule: 'q0 0-1:2 = q1 0-1:3 0-1:>'.
- Example means: if machine in q0 status and we read 2 at tape 0 with head 1, the machine step into q1 status, write 3 with 0-1 head and this head steps right.
Examples