| Object Definition Syntax |
| {items} := [item[, item]...] |
|
{items}+ := item [, item]... |
| {(type1 | type2)}method |
:= |
{(type1)method} | {(type2)method} |
| {method1 | method2}=>type |
:= |
{method1=>type} | {method2=>type} |
| method=>{type1|type2} |
:= |
{method=>type1} | {method=>type2} |
| access |
:= |
{ RO | RW } (default is RW) |
|
TYPENAME (extends type[,{capabilities}+])
{class constants}
[({constructor args})]
methods: {({args})methods[=>{return types}+]}
object data: {TYPE name access}
|
| Capabilities |
|
COMAPARABLE
(CLASSNAME)compare
|
|
RUNNABLE
()run
|
|
XMLABLE
([]CHAR) readxml; ()writexml=>[]CHAR
|
|
|
| Base Object |
|
OBJECT ()
OBJECT type RO, INT length RO
(){copy|create|discard}=>BIT
[]CHAR description RW, INT location RO, INT size RO
|
| Media Objects |
|
AUDIO (OBJECT)
BINARYFILE
()play, ()pause, ()rewind, ()skip
BINARYFILE source RW
|
|
COLOR (OBJECT)
(INT red, INT green, INT blue)|(INT color)|COLOR
([INT percent])lighten, ([INT percent])darken
INT color RO, INT red, INT green, INT blue
|
|
IMAGE (OBJECT)
LOCATION, BINARYFILE
()show, ()hide
LOCATION loc RW, BINARYFILE source RW, BIT visible
|
|
PEN (OBJECT)
(INT x, INT y, INT width[, BIT visible])
()drawto, ()moveto, (?)arc, (INT x, INT y, INT radius[, BIT fill])circle, (?)oval, (?)rect, show(), hide(), string
BIT visible, INT x, INT y, INT width
|
|
VIDEO (OBJECT)
LOCATION, BINARYFILE
()show, ()hide, ()play, ()pause, ()rewind, ()skip
LOCATION loc, BINARYFILE source, AUDIO soundtrack RW, BIT visible
|
| Mathematical Objects |
|
ANGLE (OBJECT)
({INT|DECIMAL} angle[, {INT|DECIMAL} parts_in_semicircle])
DECIMAL parts_in_semicircle RW(180); DECIMAL angle RW(0), DECIMAL{sin|cos|tan|cot|sec|csc} RW assignment to sin|cos|... resets angle
|
|
LOG (OBJECT, COMPARABLE)
DECIMAL base RW(10); DECIMAL value RW(1); DECIMAL log RW(0)
Assign to value resets log. Assign to log resets value. Assign to base resets log.
|
|
RAND (OBJECT)
from min up to, but not including, max
DECIMAL min RW(0.0), DECIMAL max RW(1.0), DECIMAL seed RW(random), DECIMAL next RO
|
|
RANDOM (RAND)
INT min RW(1), INT max RW(100), INT next RO
from min through max, inclusive
|
|
ROUNDER (OBJECT)
DECIMAL value RW,
INT rounded RO under .5 round toward zero; .5 and over round away from zero
INT integer RO, decimals truncated
INT ceiling RO, round up
INT floor RO, round down
|
| GUI Objects |
| These will be taken from an existing library. Probably a cover of Tkinter. |
|
| Value Objects |
|
BIT ()
BIT type RO, 1 length RO
(BIT value)
()
value RW, 0 min, 1 max, INT location RO, INT size RO
|
|
BYTE ()
BYTE type RO, 8 length RO
(BYTE value)
()
value RW, 0 min, 255 max, INT location RO, INT size RO
|
|
CHAR ()
CHAR type RO, 16 length RO
(CHAR value)
()
value RW, 0 min, 64K-1 max, INT location RO, INT size RO
|
|
INT ()
INT type RO, 32 length RO
(INT value)
()
value RW, -2B min, 2B-1 max, INT location RO, INT size RO
|
|
DECIMAL ()
DECIMAL type RO, 64 length RO
(INT value)
()
value RW, min*, max*, INT location RO, INT size RO
|
| * per IEEE 754r |
| Core Objects |
|
ARRAY (OBJECT)
(TYPE type[, []type])
(range)delete; (range, []type)insert; ()pop=>TYPE; (type)push; (range)read=>[]type; (range, []type)write
[]type values RW, TYPE type RO
|
|
BITARRAY (ARRAY)
(){clear|set|not}; ([]BIT){and|or|xor}
|
|
ERROR (OBJECT)
|
|
ERRORS (STACK)
|
|
GROUP (OBJECT)
|
|
DICT (OBJECT)
(range)delete; (range, []valtype, []keytype)insert; ()pop=>(valtype, keytype); (valtype, keytype)push; (range)read=>([]valtype, []keytype)
TYPE valtype, TYPE keytype, []valtype values, []keytype keys
|
|
LOCATION (OBJECT)
INT left, INT top, INT width, INT height
(x, y) move; (x, y)resize
INT left RW, INT top RW, INT width RW, INT height RW
|
|
STRING (OBJECT, COMPARABLE)
ENUM(LEFT, RIGHT)
([string])
([]CHAR substr)locations=>INT[], (INT start[, INT length])substr=>STRING, ([LEFT|RIGHT])trim, words=>[]CHAR, ([CHAR separator]from_words), ([INT list,] []CHAR search, []CHAR replace)replace
INT length RO, []CHAR chars RW('')
|
|
THREAD (OBJECT)
(RUNNABLE object_to_run)
()start, ()stop
|
|
TIME (OBJECT, COMPARABLE)
(), (INT year, INT month, INT day[, INT hour, INT minute, INT sec[,INT millis]]), (INT hour, INT minute, INT sec[,INT millis])
{()read,()write}=>BIT
INT time RO, INT millis RW, INT second RW, INT minute RW, INT hour RW, INT dayOfMonth RW, INT month RW, INT year RW, INT dayOfWeek RO
|
| Disk I/O Objects |
|
BINARYFILE (FILE)
([start,numbytes]){read,write}=>INT length (-1=error)
BYTE[] RW
|
|
DATAFILE (BINARYFILE)
(TYPE)
type RO, length RO
(span)read=>[]type; ([]type[, start])write;
[]INT keys RO, []type records RO
|
|
DIRECTORY (OBJECT)
{FILE | DIRECTORY}{cut|copy|paste|create|delete}=>BIT
DIRECTORY[] directories RO, FILE[] files RO, FILEINFO fileinfo RO
|
|
FILE (OBJECT)
()open=>BIT; ()close=>BIT; ([]BYTE pathname)move=>bit; ([]BYTE pathname)copy=>bit; ()delete=>BIT
FILEINFO fileinfo RO, INT length RO
|
|
FILEINFO (OBJECT)
[]BYTE pathname RO, TIME created RO, TIME modified RO, TIME accessed RO, PERMISSIONS permissions RO
|
|
PERMISSIONS (OBJECT) (full Unix w/dumbed-down Win? or just dumbed down?)
|
|
TEXTFILE (FILE)
BYTE[] separator RW, separators RO(ENUM(UNIX|WINDOWS))
(){read|write}=>INT length (-1 EQ error)
[][]CHAR text RW
|
|
(OBJECT)
|
|