pub struct Layout {Show 17 fields
pub items: Vec<Item>,
pub conditions: Vec<Condition>,
pub edits: Vec<Vec<Sym>>,
pub currencies: Vec<String>,
pub file_areas: Vec<(u32, u32)>,
pub record_lengths: Vec<Option<(u32, u32)>>,
pub linkage_roots: Vec<usize>,
pub bindings: Vec<Binding>,
pub depths: Vec<u8>,
pub bound_areas: Vec<Option<u16>>,
pub local_size: u32,
pub size: u32,
pub file_names: Vec<String>,
pub linage_counters: Vec<Option<usize>>,
pub qualify: Qualify,
pub parmcheck: Option<(u32, u32)>,
pub numcheck: NumcheckFacts,
}Fields§
§items: Vec<Item>§conditions: Vec<Condition>§edits: Vec<Vec<Sym>>The positions of each edited PICTURE.
currencies: Vec<String>The currency sign value each edited PICTURE’s currency symbol stands for, empty without one.
file_areas: Vec<(u32, u32)>Offset and size of each file’s record area, in declaration order.
record_lengths: Vec<Option<(u32, u32)>>The least and greatest length of each file’s level-01 records, an OCCURS DEPENDING ON table counted at its fewest and at its most occurrences (Language Reference SC27-8713-03, p. 188); None for a file with none.
linkage_roots: Vec<usize>The item of each LINKAGE record, in order: the LINKAGE SECTION’s, then the records whose
storage is elsewhere, as bindings says.
bindings: Vec<Binding>§depths: Vec<u8>How many programs out the program declaring each LINKAGE record is: 0 for its own.
bound_areas: Vec<Option<u16>>For each file whose record area is not in the program’s storage, the LINKAGE record bound to that area.
local_size: u32Bytes of LOCAL-STORAGE each activation gets.
size: u32§file_names: Vec<String>Each FD and SD name, in declaration order: the highest qualifier of its records.
linage_counters: Vec<Option<usize>>The LINAGE-COUNTER item of each file whose FD has LINAGE, which its file-name qualifies.
qualify: QualifyThe QUALIFY option Layout::resolve follows.
parmcheck: Option<(u32, u32)>PARMCHECK’s buffer: its offset, at the end of the WORKING-STORAGE the program declares, and
its length (assumption numeric::assumptions::PARMCHECK_BUFFER).
numcheck: NumcheckFactsImplementations§
Source§impl Layout
impl Layout
Sourcepub fn category(&self, i: usize) -> Option<DataCategory>
pub fn category(&self, i: usize) -> Option<DataCategory>
An elementary item’s category as INITIALIZE’s phrases name it, a floating-point item’s as
NUMERIC (assumption numeric::assumptions::INITIALIZE_FLOAT_NUMERIC); None for a group
and for a pointer, index or object reference.
Sourcepub fn refmod_category(&self, item: Option<usize>, kind: Kind) -> DataCategory
pub fn refmod_category(&self, item: Option<usize>, kind: Kind) -> DataCategory
The category of the elementary item reference modification makes of item of kind, or of
a special register of kind when there is no item: national when kind is, alphabetic for
an alphabetic item, and alphanumeric otherwise (Language Reference SC27-8713-03, p. 76;
assumption numeric::assumptions::INITIALIZE_REFERENCE_MODIFIED).
Sourcepub fn length_of_ref<'r>(&self, r: &'r Ref) -> Cow<'r, Ref>
pub fn length_of_ref<'r>(&self, r: &'r Ref) -> Cow<'r, Ref>
LENGTH OF a table element written without subscripts gives one occurrence’s length (Language Reference SC27-8713-03, p. 23): the reference with each subscript 1.
Sourcepub fn initialize_receivers(&self, i: usize, filler: bool) -> Vec<(usize, u32)>
pub fn initialize_receivers(&self, i: usize, filler: bool) -> Vec<(usize, u32)>
The elementary items INITIALIZE of item i may move to, each occurrence with its offset from
i’s start (Language Reference SC27-8713-03, p. 352, rules 1a and 1b): none under a
REDEFINES, no FILLER unless filler, and no index, object reference or program pointer.
Sourcepub fn name_files(
&mut self,
files: &[FileDecl],
linage_counters: Vec<Option<usize>>,
)
pub fn name_files( &mut self, files: &[FileDecl], linage_counters: Vec<Option<usize>>, )
Names the files, so that a file-name qualifies its records and its LINAGE-COUNTER.
Sourcepub fn is_argument(&self, ordinal: usize) -> bool
pub fn is_argument(&self, ordinal: usize) -> bool
Whether LINKAGE record ordinal is one an argument or SET ADDRESS OF addresses.
Sourcepub fn resolve(
&self,
name: &str,
qualifiers: &[String],
pos: Pos,
) -> Result<Resolved, Error>
pub fn resolve( &self, name: &str, qualifiers: &[String], pos: Pos, ) -> Result<Resolved, Error>
A data item, condition-name or LINAGE-COUNTER named with its qualifiers, the last of which may be the file-name of an FD or SD (Language Reference SC27-8713-03, pp. 69-70). Under QUALIFY(EXTEND) a reference the standard’s rules find ambiguous names the one candidate it gives a complete set of qualifiers, if only one (Programming Guide SC27-8714-03, p. 400; Language Reference SC27-8713-03, pp. 67-68).