class
	LINKED_DFA

General
	cluster: lex
	description: "Deterministic finite automata, implemented as lists"
	create: link_make, make

Ancestors
	DFA*
	LINKED_AUTOMATON [S -> STATE]

Queries
	after: BOOLEAN
	before: BOOLEAN
	changeable_comparison_criterion: BOOLEAN
	count: INTEGER_32
	cursor: LINKED_LIST_CURSOR [STATE_OF_DFA]
	duplicate (n: INTEGER_32): [like Current] LINKED_DFA
	exhausted: BOOLEAN
	Extendible: BOOLEAN
	find_successor (source, input_doc: INTEGER_32): STATE_OF_DFA
	first: [like item] STATE_OF_DFA
	for_all (test: FUNCTION [ANY, TUPLE [STATE_OF_DFA], BOOLEAN]): BOOLEAN
	Full: BOOLEAN
	greatest_input: INTEGER_32
	has (v: [like item] STATE_OF_DFA): BOOLEAN
	i_th alias "[]" (i: INTEGER_32): [like item] STATE_OF_DFA
	index: INTEGER_32
	index_of (v: [like item] STATE_OF_DFA; i: INTEGER_32): INTEGER_32
	index_set: INTEGER_INTERVAL
	infix "@" (i: INTEGER_32): [like item] STATE_OF_DFA
	is_empty: BOOLEAN
	is_equal (other: [like Current] LINKED_DFA): BOOLEAN
	is_inserted (v: STATE_OF_DFA): BOOLEAN
	isfirst: BOOLEAN
	islast: BOOLEAN
	item: STATE_OF_DFA
	last: [like item] STATE_OF_DFA
	lcopy: FIXED_DFA
	linear_representation: LINEAR [STATE_OF_DFA]
	nb_states: INTEGER_32
	object_comparison: BOOLEAN
	occurrences (v: [like item] STATE_OF_DFA): INTEGER_32
	off: BOOLEAN
	possible_tokens (l: LINKED_LIST [INTEGER_32]): ARRAY [INTEGER_32]
	prunable: BOOLEAN
	readable: BOOLEAN
	recognize (l: LINKED_LIST [INTEGER_32]): INTEGER_32
	sequential_occurrences (v: [like item] STATE_OF_DFA): INTEGER_32
	start_number: INTEGER_32
	there_exists (test: FUNCTION [ANY, TUPLE [STATE_OF_DFA], BOOLEAN]): BOOLEAN
	valid_cursor (p: CURSOR): BOOLEAN
	valid_cursor_index (i: INTEGER_32): BOOLEAN
	valid_index (i: INTEGER_32): BOOLEAN
	writable: BOOLEAN

Commands
	append (s: SEQUENCE [STATE_OF_DFA])
	back
	compare_objects
	compare_references
	copy (other: [like Current] LINKED_DFA)
	do_all (action: PROCEDURE [ANY, TUPLE [STATE_OF_DFA]])
	do_if (action: PROCEDURE [ANY, TUPLE [STATE_OF_DFA]]; test: FUNCTION [ANY, TUPLE [STATE_OF_DFA], BOOLEAN])
	extend (v: [like item] STATE_OF_DFA)
	fill (other: CONTAINER [STATE_OF_DFA])
	finish
	force (v: [like item] STATE_OF_DFA)
	forth
	go_i_th (i: INTEGER_32)
	go_to (p: CURSOR)
	l_set_final (state, f: INTEGER_32)
	make (i: INTEGER_32)
	merge_left (other: [like Current] LINKED_DFA)
	merge_right (other: [like Current] LINKED_DFA)
	move (i: INTEGER_32)
	prune (v: [like item] STATE_OF_DFA)
	prune_all (v: [like item] STATE_OF_DFA)
	put (v: [like item] STATE_OF_DFA)
	put_front (v: [like item] STATE_OF_DFA)
	put_i_th (v: [like item] STATE_OF_DFA; i: INTEGER_32)
	put_left (v: [like item] STATE_OF_DFA)
	put_right (v: [like item] STATE_OF_DFA)
	remove
	remove_left
	remove_right
	replace (v: [like item] STATE_OF_DFA)
	search (v: [like item] STATE_OF_DFA)
	set_final (state, f: INTEGER_32)
	set_start (n: INTEGER_32)
	set_state
	set_transition (source, input_doc, target: INTEGER_32)
	start
	swap (i: INTEGER_32)
	wipe_out

Constraints
	nb states right