indexing
description: "Interface with the Lexical Library classes"
status: "See notice at end of class"
date: "$Date$"
revision: "$Revision$"
deferred class interface
L_INTERFACE
feature
build (doc: INPUT)
doc
require
document_exists: doc /= void
initialize
analyzer
LEX_BUILDER
ensure LEX_BUILDER
initialized
metalex_make
LEX_BUILDER
ensure LEX_BUILDER
last_character_set: last_character_code = last_ascii
pdfa_make (n, i: INTEGER)
PDFAni
PDFA
array_make (min_index, max_index: INTEGER)
min_indexmax_index
min_indexmax_index
ARRAY
require ARRAY
valid_bounds: min_index <= max_index + 1
ensure ARRAY
lower_set: lower = min_index
upper_set: upper = max_index
items_set: all_default
make_analyzer
METALEX
require METALEX
not_initialized: not initialized
ensure METALEX
initialized
analyzer_created: analyzer /= void
lexical_frozen
make_extended (char_code: INTEGER)
char_code
LEX_BUILDER
require LEX_BUILDER
valid_char_code: char_code > 0
ensure LEX_BUILDER
last_character_set: last_character_code = char_code
make_from_array (a: ARRAY [LINKED_LIST [INTEGER]])
a
ARRAY
ARRAY
require ARRAY
array_exists: a /= void
obtain_analyzer
ensure
analyzer /= void
feature
Ack: INTEGER is 6
ASCII
Ampersand: INTEGER is 38
ASCII
analyzer: LEXICAL
LEX_BUILDER
area: SPECIAL [LINKED_LIST [INTEGER]]
TO_SPECIAL
Back_space: INTEGER is 8
ASCII
Backslash: INTEGER is 92
ASCII
Bar: INTEGER is 124
ASCII
Bel: INTEGER is 7
ASCII
Blank: INTEGER is 32
ASCII
Break: INTEGER is -7
ASCII
Bs: INTEGER is 8
ASCII
Buf_overflow: INTEGER is -9
ASCII
Can: INTEGER is 24
ASCII
Carriage_return: INTEGER is 13
ASCII
Case_diff: INTEGER is 32
Lower_aUpper_a
ASCII
case_sensitive: BOOLEAN
LEX_BUILDER
categories_table: ARRAY [INTEGER]
LEX_BUILDER
Character_set_size: INTEGER is 128
ASCII
Circumflex: INTEGER is 94
ASCII
Closing_brace: INTEGER is 125
ASCII
Colon: INTEGER is 58
ASCII
Comma: INTEGER is 44
ASCII
Commercial_at: INTEGER is 64
ASCII
Cr: INTEGER is 13
ASCII
Ctrl_a: INTEGER is 1
ASCII
Ctrl_b: INTEGER is 2
ASCII
Ctrl_backslash: INTEGER is 28
ASCII
Ctrl_c: INTEGER is 3
ASCII
Ctrl_circumflex: INTEGER is 30
ASCII
Ctrl_d: INTEGER is 4
ASCII
Ctrl_e: INTEGER is 5
ASCII
Ctrl_f: INTEGER is 6
ASCII
Ctrl_g: INTEGER is 7
ASCII
Ctrl_h: INTEGER is 8
ASCII
Ctrl_i: INTEGER is 9
ASCII
Ctrl_j: INTEGER is 10
ASCII
Ctrl_k: INTEGER is 11
ASCII
Ctrl_l: INTEGER is 12
ASCII
Ctrl_lbracket: INTEGER is 27
ASCII
Ctrl_m: INTEGER is 13
ASCII
Ctrl_n: INTEGER is 14
ASCII
Ctrl_o: INTEGER is 15
ASCII
Ctrl_p: INTEGER is 16
ASCII
Ctrl_q: INTEGER is 17
ASCII
Ctrl_questmark: INTEGER is 127
ASCII
Ctrl_r: INTEGER is 18
ASCII
Ctrl_rbracket: INTEGER is 29
ASCII
Ctrl_s: INTEGER is 19
ASCII
Ctrl_t: INTEGER is 20
ASCII
Ctrl_u: INTEGER is 21
ASCII
Ctrl_underlined: INTEGER is 31
ASCII
Ctrl_v: INTEGER is 22
ASCII
Ctrl_w: INTEGER is 23
ASCII
Ctrl_x: INTEGER is 24
ASCII
Ctrl_y: INTEGER is 25
ASCII
Ctrl_z: INTEGER is 26
ASCII
Dc1: INTEGER is 17
ASCII
Dc2: INTEGER is 18
ASCII
Dc3: INTEGER is 19
ASCII
Dc4: INTEGER is 20
ASCII
Del: INTEGER is 127
ASCII
dfa: FIXED_DFA
DFA
NDFA
Dle: INTEGER is 16
ASCII
Dollar: INTEGER is 36
ASCII
Dot: INTEGER is 46
ASCII
Doublequote: INTEGER is 34
ASCII
Down_arrow: INTEGER is -3
ASCII
Eight: INTEGER is 56
ASCII
Em: INTEGER is 25
ASCII
Enq: INTEGER is 5
ASCII
entry (i: INTEGER): LINKED_LIST [INTEGER]
i
ARRAY
require ARRAY
valid_key: valid_index (i)
Eot: INTEGER is 4
ASCII
Equal_sign: INTEGER is 61
ASCII
error_list: ERROR_LIST
LEX_BUILDER
Esc: INTEGER is 27
ASCII
Etb: INTEGER is 23
ASCII
Etx: INTEGER is 3
ASCII
Exclamation: INTEGER is 33
ASCII
final_array: ARRAY [INTEGER]
final
PDFA
First_printable: INTEGER is 32
ASCII
Five: INTEGER is 53
ASCII
Four: INTEGER is 52
ASCII
Fs: INTEGER is 28
ASCII
Grave_accent: INTEGER is 96
ASCII
Greaterthan: INTEGER is 62
ASCII
greatest_input: INTEGER
AUTOMATON
Gs: INTEGER is 29
ASCII
has (v: LINKED_LIST [INTEGER]): BOOLEAN
v
object_comparison
ARRAY
ensure CONTAINER
not_found_in_empty: Result implies not is_empty
has_letters: BOOLEAN
PDFA
Home_arrow: INTEGER is -6
ASCII
Ht: INTEGER is 9
ASCII
input_array: ARRAY [FIXED_INTEGER_SET]
PDFA
pdfa_item (i: INTEGER): LINKED_LIST [INTEGER]
i
ARRAY@
ARRAY
require TABLE
valid_key: valid_index (k)
keyword_h_table: HASH_TABLE [INTEGER, STRING]
LEX_BUILDER
keywords_case_sensitive: BOOLEAN
LEX_BUILDER
keywords_list: LINKED_LIST [STRING]
PDFA
Last_ascii: INTEGER is 127
ASCII
last_character_code: INTEGER
LEX_BUILDER
last_created_tool: INTEGER
LEX_BUILDER
Last_printable: INTEGER is 126
ASCII
Lbracket: INTEGER is 91
ASCII
Lcurly: INTEGER is 40
ASCII
Left_arrow: INTEGER is -4
ASCII
Lessthan: INTEGER is 60
ASCII
Letter_layout: INTEGER is 70
ASCII
lexical_frozen: BOOLEAN
DFA
LEX_BUILDER
Line_feed: INTEGER is 10
ASCII
Lower_a: INTEGER is 97
ASCII
Lower_b: INTEGER is 98
ASCII
Lower_c: INTEGER is 99
ASCII
Lower_d: INTEGER is 100
ASCII
Lower_e: INTEGER is 101
ASCII
Lower_f: INTEGER is 102
ASCII
Lower_g: INTEGER is 103
ASCII
Lower_h: INTEGER is 104
ASCII
Lower_i: INTEGER is 105
ASCII
Lower_j: INTEGER is 106
ASCII
Lower_k: INTEGER is 107
ASCII
Lower_l: INTEGER is 108
ASCII
Lower_m: INTEGER is 109
ASCII
Lower_n: INTEGER is 110
ASCII
Lower_o: INTEGER is 111
ASCII
Lower_p: INTEGER is 112
ASCII
Lower_q: INTEGER is 113
ASCII
Lower_r: INTEGER is 114
ASCII
Lower_s: INTEGER is 115
ASCII
Lower_t: INTEGER is 116
ASCII
Lower_u: INTEGER is 117
ASCII
Lower_v: INTEGER is 118
ASCII
Lower_w: INTEGER is 119
ASCII
Lower_x: INTEGER is 120
ASCII
Lower_y: INTEGER is 121
ASCII
Lower_z: INTEGER is 122
ASCII
Minus: INTEGER is 45
ASCII
Nak: INTEGER is 21
ASCII
Nine: INTEGER is 57
ASCII
Nl: INTEGER is 10
ASCII
Np: INTEGER is 12
ASCII
Nul: INTEGER is 0
ASCII
Number_sign: INTEGER is 35
ASCII
One: INTEGER is 49
ASCII
Opening_brace: INTEGER is 123
ASCII
Overflow: INTEGER is -8
ASCII
Percent: INTEGER is 37
ASCII
Plus: INTEGER is 43
ASCII
Questmark: INTEGER is 63
ASCII
Rbracket: INTEGER is 93
ASCII
Rcurly: INTEGER is 41
ASCII
Right_arrow: INTEGER is -5
ASCII
Rs: INTEGER is 30
ASCII
selected_tools: LINKED_LIST [INTEGER]
LEX_BUILDER
Semicolon: INTEGER is 59
ASCII
Seven: INTEGER is 55
ASCII
Si: INTEGER is 15
ASCII
Singlequote: INTEGER is 39
ASCII
Six: INTEGER is 54
ASCII
Slash: INTEGER is 47
ASCII
So: INTEGER is 14
ASCII
Soh: INTEGER is 1
ASCII
Sp: INTEGER is 32
ASCII
Star: INTEGER is 42
ASCII
start_number: INTEGER
AUTOMATON
Stx: INTEGER is 2
ASCII
Sub: INTEGER is 26
ASCII
Syn: INTEGER is 22
ASCII
Tabulation: INTEGER is 9
ASCII
Three: INTEGER is 51
ASCII
Tilde: INTEGER is 126
ASCII
token_type_list: LINKED_LIST [INTEGER]
LEX_BUILDER
tool_list: LINKED_LIST [PDFA]
LEX_BUILDER
tool_names: LINKED_LIST [STRING]
LEX_BUILDER
Two: INTEGER is 50
ASCII
Underlined: INTEGER is 95
ASCII
Up_arrow: INTEGER is -2
ASCII
Upper_a: INTEGER is 65
ASCII
Upper_b: INTEGER is 66
ASCII
Upper_c: INTEGER is 67
ASCII
Upper_d: INTEGER is 68
ASCII
Upper_e: INTEGER is 69
ASCII
Upper_f: INTEGER is 70
ASCII
Upper_g: INTEGER is 71
ASCII
Upper_h: INTEGER is 72
ASCII
Upper_i: INTEGER is 73
ASCII
Upper_j: INTEGER is 74
ASCII
Upper_k: INTEGER is 75
ASCII
Upper_l: INTEGER is 76
ASCII
Upper_m: INTEGER is 77
ASCII
Upper_n: INTEGER is 78
ASCII
Upper_o: INTEGER is 79
ASCII
Upper_p: INTEGER is 80
ASCII
Upper_q: INTEGER is 81
ASCII
Upper_r: INTEGER is 82
ASCII
Upper_s: INTEGER is 83
ASCII
Upper_t: INTEGER is 84
ASCII
Upper_u: INTEGER is 85
ASCII
Upper_v: INTEGER is 86
ASCII
Upper_w: INTEGER is 87
ASCII
Upper_x: INTEGER is 88
ASCII
Upper_y: INTEGER is 89
ASCII
Upper_z: INTEGER is 90
ASCII
Us: INTEGER is 31
ASCII
Vt: INTEGER is 11
ASCII
Zero: INTEGER is 48
ASCII
infix "@" (i: INTEGER): LINKED_LIST [INTEGER]
i
ARRAYitem
ARRAY
require TABLE
valid_key: valid_index (k)
feature
additional_space: INTEGER
RESIZABLE
ensure RESIZABLE
at_least_one: Result >= 1
capacity: INTEGER
ARRAYcount
ARRAY
ensure then ARRAY
consistent_with_bounds: Result = upper - lower + 1
count: INTEGER
ARRAYcapacity
ARRAY
ensure then ARRAY
consistent_with_bounds: Result = upper - lower + 1
Growth_percentage: INTEGER is 50
RESIZABLE
index_set: INTEGER_INTERVAL
ARRAY
ensure INDEXABLE
not_void: Result /= void
ensure then ARRAY
same_count: Result.count = count
same_bounds: ((Result.lower = lower) and (Result.upper = upper))
lower: INTEGER
ARRAY
Minimal_increase: INTEGER is 5
RESIZABLE
nb_states: INTEGER
AUTOMATON
occurrences (v: LINKED_LIST [INTEGER]): INTEGER
v
ARRAY
ensure BAG
non_negative_occurrences: Result >= 0
upper: INTEGER
ARRAY
feature
is_equal (other: like Current): BOOLEAN
other
ARRAY
require ANY
other_not_void: other /= void
ensure ANY
symmetric: Result implies other.is_equal (Current)
consistent: standard_is_equal (other) implies Result
feature
all_default: BOOLEAN
ARRAY
ensure ARRAY
definition: Result = (count = 0 or else ((pdfa_item (upper) = void or else pdfa_item (upper) = pdfa_item (upper).default) and subarray (lower, upper - 1).all_default))
changeable_comparison_criterion: BOOLEAN
object_comparison
CONTAINER
extendible: BOOLEAN
ARRAY
full: BOOLEAN
ARRAY
is_empty: BOOLEAN
FINITE
is_inserted (v: LINKED_LIST [INTEGER]): BOOLEAN
v
COLLECTION
object_comparison: BOOLEAN
equal=
=
CONTAINER
prunable: BOOLEAN
ARRAY
resizable: BOOLEAN
capacity
RESIZABLE
same_items (other: like Current): BOOLEAN
other
ARRAY
require ARRAY
other_not_void: other /= void
ensure ARRAY
definition: Result = ((count = other.count) and then (count = 0 or else (pdfa_item (upper) = other.pdfa_item (other.upper) and subarray (lower, upper - 1).same_items (other.subarray (other.lower, other.upper - 1)))))
valid_index (i: INTEGER): BOOLEAN
i
ARRAY
ensure then INDEXABLE
only_if_in_index_set: Result implies ((i >= index_set.lower) and (i <= index_set.upper))
valid_index_set: BOOLEAN
ARRAY
feature
compare_objects
equal
=
CONTAINER
require CONTAINER
changeable_comparison_criterion
ensure CONTAINER
object_comparison
compare_references
=
equal
CONTAINER
require CONTAINER
changeable_comparison_criterion
ensure CONTAINER
reference_comparison: not object_comparison
distinguish_case
LEX_BUILDER
ensure LEX_BUILDER
case_sensitive
ignore_case
LEX_BUILDER
ensure LEX_BUILDER
not case_sensitive
keywords_distinguish_case
LEX_BUILDER
require LEX_BUILDER
no_tool_built: tool_list.is_empty
ensure LEX_BUILDER
keywords_case_sensitive
keywords_ignore_case
LEX_BUILDER
require LEX_BUILDER
no_tools_built: tool_list = void or else tool_list.is_empty
ensure LEX_BUILDER
not keywords_case_sensitive
set_e_transition (source, target: INTEGER)
sourcetarget
PDFA
require NDFA
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
set_final (s, r: INTEGER)
sr
PDFA
set_letters
PDFA
set_start (n: INTEGER)
n
AUTOMATON
require AUTOMATON
no_other_start: start_number = 0 or start_number = n
is_in_automaton: n <= nb_states and n >= 1
set_transition (source, input_doc, target: INTEGER)
sourcetargetinput_doc
PDFA
require AUTOMATON
True
require else NDFA
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
possible_input_doc: input_doc >= 0 and input_doc <= greatest_input
require else PDFA
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
possible_input_doc: input_doc >= 0 and input_doc <= greatest_input
good_successor: target = source + 1
feature
add_keyword (word: STRING)
word
PDFA
add_word (s: STRING; n: INTEGER)
s
n
METALEX
require METALEX
s_not_void: s /= void
s_not_empty: s.capacity >= 1
any_character
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
any_printable
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
append (p, s: INTEGER)
ps
sp
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
p_in_tool: p >= 1 and p <= last_created_tool
s_in_tool: s >= 1 and s <= last_created_tool
append_optional (p, s: INTEGER)
ps
sp
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
p_in_tool: p >= 1 and p <= last_created_tool
s_in_tool: s >= 1 and s <= last_created_tool
associate (t, n: INTEGER)
tn
t
LEX_BUILDER
require LEX_BUILDER
t_selected: selected_tools.has (t)
n_not_zero: n /= 0
n_not_minus_one: n /= - 1
build_dollar_any
HIGH_BUILDER
require HIGH_BUILDER
good_first_character: description.item (cursor) = '.'
build_dollar_b
HIGH_BUILDER
build_dollar_n
HIGH_BUILDER
build_dollar_p
HIGH_BUILDER
require HIGH_BUILDER
good_first_character: description.item (cursor) = 'P'
build_dollar_r
HIGH_BUILDER
build_dollar_z
HIGH_BUILDER
case_insensitive (c: INTEGER)
c
c
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
z_possible: last_character_code >= lower_z
c_in_tool: c >= 1 and c <= last_created_tool
difference (r: INTEGER; c: CHARACTER)
rc
raz
az09
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
r_exists: r >= 1 and r <= last_created_tool
r_simple_category: tool_list.i_th (r).nb_states = 2
enter (v: like pdfa_item; i: INTEGER)
iv
ARRAY
require ARRAY
valid_key: valid_index (i)
fill (other: CONTAINER [LINKED_LIST [INTEGER]])
other
other
COLLECTION
require COLLECTION
other_not_void: other /= void
extendible
force (v: like pdfa_item; i: INTEGER)
vi
i
ARRAY
ensure ARRAY
inserted: pdfa_item (i) = v
higher_count: count >= old count
include (fa: PDFA; shift: INTEGER)
fa
shift
final
PDFA
require PDFA
same_inputs: greatest_input = fa.greatest_input
nb_states_large_enough: nb_states >= fa.nb_states + shift
interval (b, e: CHARACTER)
bebbe
LEX_BUILDER
require LEX_BUILDER
not_built: not lexical_frozen
e_code_small_enough: e.code <= last_character_code
b_code_large_enough: b.code >= 0
b_before_e: b.code <= e.code
iteration (c: INTEGER)
c
c
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
c_in_tool: c >= 1 and c <= last_created_tool
iteration1 (c: INTEGER)
c
c
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
c_in_tool: c >= 1 and c <= last_created_tool
iteration_n (n, c: INTEGER)
nc
nc
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
n_large_enough: n > 0
c_in_tool: c >= 1 and c <= last_created_tool
optional (c: INTEGER)
c
c
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
c_in_tool: c >= 1 and c <= last_created_tool
prepend_optional (p, s: INTEGER)
ps
sp
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
p_in_tool: p >= 1 and p <= last_created_tool
s_in_tool: s >= 1 and s <= last_created_tool
pdfa_put (v: like pdfa_item; i: INTEGER)
iv
ARRAY
require TABLE
valid_key: valid_index (k)
ensure then INDEXABLE
insertion_done: pdfa_item (k) = v
put_expression (s: STRING; n: INTEGER; c: STRING)
s
nc
METALEX
require METALEX
source_long_enough: s.capacity > 0
put_keyword (s: STRING; exp: INTEGER)
s
exp
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
exp_selected: token_type_list /= void and then token_type_list.has (exp)
put_nameless_expression (s: STRING; n: INTEGER)
sn
HIGH_BUILDER
require HIGH_BUILDER
source_long_enough: s.count > 0
recognize (s: STRING): INTEGER
s
LEX_BUILDER
remove_case_sensitiveness
PDFA
require PDFA
z_possible: greatest_input >= lower_z
select_tool (i: INTEGER)
i
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
i_exist: i > 0 and i <= last_created_tool
ensure LEX_BUILDER
i_selected: selected_tools.has (i)
set_word (word: STRING)
word
word
LEX_BUILDER
require LEX_BUILDER
word_not_empty: word.count >= 1
subcopy (other: like Current; start_pos, end_pos, index_pos: INTEGER)
otherstart_posend_pos
index_pos
ARRAY
require ARRAY
other_not_void: other /= void
valid_start_pos: other.valid_index (start_pos)
valid_end_pos: other.valid_index (end_pos)
valid_bounds: (start_pos <= end_pos) or (start_pos = end_pos + 1)
valid_index_pos: valid_index (index_pos)
enough_space: (upper - index_pos) >= (end_pos - start_pos)
union (a, b: INTEGER)
aab
aab
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
a_not_too_small: a >= 1
b_not_too_large: b <= last_created_tool
a_smaller_than_b: a <= b
union2 (a, b: INTEGER)
ab
abab
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
a_in_tool: a >= 1 and a <= last_created_tool
b_in_tool: b >= 1 and b <= last_created_tool
up_to (word: STRING)
word
word
LEX_BUILDER
require LEX_BUILDER
word_not_empty: word.count > 0
not_frozen: not lexical_frozen
feature
clear_all
ARRAY
ensure ARRAY
stable_lower: lower = old lower
stable_upper: upper = old upper
default_items: all_default
delete_transition (source, input_doc, target: INTEGER)
sourcetargetinput_doc
PDFA
require NDFA
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
possible_input_doc: input_doc >= 0 and input_doc <= greatest_input
require else PDFA
source_in_automaton: source >= 1 and source <= nb_states
target_in_automaton: target >= 1 and target <= nb_states
possible_input_doc: input_doc >= 0 and input_doc <= greatest_input
good_successor: target = source + 1
discard_items
ARRAY
ensure ARRAY
default_items: all_default
prune_all (v: LINKED_LIST [INTEGER])
v
object_comparison
COLLECTION
require COLLECTION
prunable
ensure COLLECTION
no_more_occurrences: not has (v)
remove
LEX_BUILDER
require LEX_BUILDER
not_frozen: not lexical_frozen
at_least_one_regular: last_created_tool >= 1
feature
automatic_grow
Growth_percentage
RESIZABLE
ensure RESIZABLE
increased_capacity: capacity >= old capacity + old capacity * growth_percentage // 100
grow (i: INTEGER)
i
ARRAY
ensure RESIZABLE
new_capacity: capacity >= i
resize (min_index, max_index: INTEGER)
min_indexmax_index
ARRAY
require ARRAY
good_indices: min_index <= max_index
ensure ARRAY
no_low_lost: lower = min_index or else lower = old lower
no_high_lost: upper = max_index or else upper = old upper
feature
construct_dfa
NDFA
require NDFA
start_number_designated: start_number > 0
feature
linear_representation: LINEAR [LINKED_LIST [INTEGER]]
ARRAY
feature
copy (other: like Current)
other
clone
ARRAY
require ANY
other_not_void: other /= void
type_identity: same_type (other)
ensure ANY
is_equal: is_equal (other)
ensure then ARRAY
equal_areas: area.is_equal (other.area)
subarray (start_pos, end_pos: INTEGER): like Current
start_posend_pos
ARRAY
require ARRAY
valid_start_pos: valid_index (start_pos)
valid_end_pos: valid_index (end_pos)
valid_bounds: (start_pos <= end_pos) or (start_pos = end_pos + 1)
ensure ARRAY
lower: Result.lower = start_pos
upper: Result.upper = end_pos
feature
description: STRING
HIGH_BUILDER
initialized: BOOLEAN
LEX_BUILDER
feature
No_token: INTEGER is 0
METALEX
read_grammar (token_file_name: STRING)
token_file_name
nameregular_expression
METALEX
ensure METALEX
analyzer_exists: analyzer /= void
feature
retrieve_analyzer (file_name: STRING)
analyzerfile_name
LEX_BUILDER
feature
store_analyzer (file_name: STRING)
analyzerfile_name
LEX_BUILDER
require LEX_BUILDER
initialized: initialized
feature
trace
PDFA
invariant
ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
HIGH_BUILDER
cursor_not_too_far: cursor <= description_length
LEX_BUILDER
last_created: tool_list = void or else last_created_tool = tool_list.count
ARRAY
area_exists: area /= void
consistent_size: capacity = upper - lower + 1
non_negative_count: count >= 0
index_set_has_same_count: valid_index_set
RESIZABLE
increase_by_at_least_one: minimal_increase >= 1
BOUNDED
valid_count: count <= capacity
full_definition: full = (count = capacity)
FINITE
empty_definition: is_empty = (count = 0)
non_negative_count: count >= 0
INDEXABLE
index_set_not_void: index_set /= void
end -- L_INTERFACE