::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:
class Type.Common.Public public Gilda
type Bit in 0 to 1 :Boolean enumeration
type File is &File I/O that will automatically close
- *Id = 0 byte, &Opaque file id (at void)
Open => @$Id ~= 0, &True if the file is open; else False.
Status => Status($), &Current status
Line => Status($) = #A, &Input at the end of a line
End => Status($) = #B, &Input at the end of a file
Past => Status($) = #C, &Input past the end of a file
In => Status($) = #D, &Input with more to go
Out => Status($) = #E, &Open for output
Direct => Status($) = #F, &Open for random access
Error => Status($) _=> #10, &File states after an exception:
& OPEN:
Missing => Status($) = #10, &The file does not exist.
Directory => Status($) = #11, &Can not open a directory as a file.
Authority => Status($) = #12, &Not permitted to access a path directory.
Permit => Status($) = #13, &Not permitted to access a file or stream.
Share => Status($) = #14, &The file or stream is in use by another.
Many => Status($) = #15, &Too many files are open.
& INPUT, OPEN:
Input => Status($) = #16, &Could not read from a file or stream.
& PRINT, CLOSE, OPEN:
Flush => Status($) = #17, &Could not write to a file or stream.
& PRINT, CLOSE:
Full => Status($) = #18, &The file system is full.
Overflow => Status($) = #19 :The output buffer overflowed.
type Key is &{string, string} pair
Key string, &Name of a symbol
Tag string :String associated with the symbol
type Key..string is &{string, string} pair
Key string, &Name of a symbol
Tag string :String associated with the symbol
type Key..word is &{string, word} pair
Key string, &Name of a symbol
Tag word :Word associated with the symbol
type At is @At byte
type Wiz is *At byte
type At..string is @At string
type At..byte is @At byte
type At..parcel is @At parcel
type At..word is @At word
type At..cell is @At cell
type At..single is @At single
type At..double is @At double
type Wiz..string is *At string
type Wiz..byte is *At byte
type Wiz..parcel is *At parcel
type Wiz..word is *At word
type Wiz..cell is *At cell
type Wiz..single is *At single
type Wiz..double is *At double
type At..At is @At At
type Wiz..Wiz is *At Wiz
type At..At..byte is @At At..byte
type Wiz..At..byte is *At At..byte
type At.Self is *At At.Self
:
:...............................................................................
:::::::::::::::::::::::::::::::: type/file/File ::::::::::::::::::::::::::::::
:
function STATUS..File: Status of a file or I/O stream.
entry File[0] :Handle for the stream passed by address.
exit Status byte :Status code
:
: Closed = 0 The file is closed
: Eol = #A Sequential input at End Of Line
: Eof = #B Sequential input at End of Stream
: Peof = #C Sequential input at Past End of Stream
: In = #D Sequential input at next byte to be read
: Out = #E Sequential output
: Direct = #F Direct access
:...............................................................................
:
method CLOSE..File pure: See if a file is open and close it if it is.
change File :An open file ID
:
:...............................................................................
:
method DRAIN..File pure: Close a file, but do not signal it is closed.
change File :An open file ID
:
:...............................................................................
:
sequence READ.FILE: Read a file as a sequence of bytes.
entry Path string :Os relative file path.
exit C byte :Each character
:
:...............................................................................
:
method CLOSE..Read.File: Terminate the sequence and close the file.
change ~Read.File :Sequence iterator
:
:...............................................................................
:
sequence READ.TEXT: Read a text file as a sequence of strings.
entry Path string :Os relative file path
exit Text string :Each line of text without CR/LF
:
:...............................................................................
:
function STATUS..Read.Text: Get the current status of the text file.
entry ~Read.Text :Sequence iterator
exit Status byte :I/O stream status
:
:...............................................................................
:
method CLOSE..Read.Text: Terminate the sequence and close the text file.
change ~Read.Text :Sequence iterator
:
:...............................................................................
:::::::::::::::::::::::::::::::: type/key/Key ::::::::::::::::::::::::::::::::
:
function FORM..Key..string: Format a Key(string); primarily used for Tracing.
entry Key..string[0], &Key to format; its address is examined.
Format = "{}" string :Optional first then last character
exit Form string :Display format for the Key
:
:...............................................................................
:
function FORM..Key..word: Format a Key(word); primarily used for Tracing.
entry Key..word[0], &Key to format; its address is examined.
Format = "{}" string :Optional first then last character
exit Form string :Display format for the Key
:
:...............................................................................
::::::::::::::::::::::: type/dynamic/memory/Type.Memory ::::::::::::::::::::::
:
method ALLOCATE_RAW pure: Allocate raw bytes.
exit *Memory[ Size-1 ] byte :Memory that was allocated
entry Size word, &Number of bytes to allocate
Align = 0 word :Alignment in bytes (power of 2)
:
: If there is not enough memory available a Memory.Heap fault is raised.
:
:...............................................................................
end