-
Notifications
You must be signed in to change notification settings - Fork 0
/
machine.h
32 lines (25 loc) · 1.24 KB
/
machine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef MACHINE_H_
#define MACHINE_H_
#include "auto.h"
#include "stack.h"
#include "tape.h"
void epsilon_loop_detect(struct Automaton *a0);
// Nondeterministic functions
int NTM_run(struct Automaton *a0, struct Tape *input_tape);
int NTM_run_verbose(struct Automaton *a0, struct Tape *input_tape);
int NTM_stack_run(struct Automaton *a0, struct Tape *input_tape);
int NTM_stack_run_verbose(struct Automaton *a0, struct Tape *input_tape);
int PDA_run(struct Automaton *a0, struct Tape *input_tape);
int PDA_run_verbose(struct Automaton *a0, struct Tape *input_tape);
int NFA_run(struct Automaton *a0, struct Tape *input_tape);
int NFA_run_verbose(struct Automaton *a0, struct Tape *input_tape);
// Deterministic functions
int TM_run(struct Automaton *a0, struct Tape *input_tape);
int TM_run_verbose(struct Automaton *a0, struct Tape *input_tape);
int TM_stack_run(struct Automaton *a0, struct Tape *input_tape);
int TM_stack_run_verbose(struct Automaton *a0, struct Tape *input_tape);
int DPDA_run(struct Automaton *a0, struct Tape *input_tape);
int DPDA_run_verbose(struct Automaton *a0, struct Tape *input_tape);
int DFA_run(struct Automaton *a0, struct Tape *input_tape);
int DFA_run_verbose(struct Automaton *a0, struct Tape *input_tape);
#endif // MACHINE_H_