Interface for qBeta module object
lexer: obj
%requires FileSys,symbols,StringLib
maxInt: val
XVarray:
in range: var integer
XV: ref Indexed
top: var integer
put:
in V: var integer
in inx: var integer
get:
in inx: var integer
out V: var integer
add:
in V: var integer
init:<
in FN: ref String
in SF: ref FileSys.File
srcFN: ref String
srcF: ref FileSys.File
hasLexError: var Boolean
ch: var char
token: var integer
tokenStr: ref String
buffer: obj XVarray
nextCh: obj
pos: var integer
linePos: var integer
onlyWhiteSpace: var Boolean
get:
printLinesx:
printLines:
pTop: var integer
lc: var integer
c: var integer
readName:
in cx: var char
isConst: var Boolean
sym: obj indexed(,#char)
prevCh: var char
i: var integer
--"readName C = {C(cx)} ch = {C(ch)}\n".print
readString:
sym: obj indexed(,#char)
i: var integer
--"readString {C(ch)} {I2s(sym.length) }".print
: obj
theCom: ref String
i: var integer
sym: ref Indexed
skip:
i: var integer
putx:
in c: var char
get:
loop:
parenthLevel: var integer
readNextToken:
out : var Boolean
--"readNextToken: {C(ch)}\n".print
indent: obj
init:
dumpStack:
in inx: var integer
skipBlanks:
out inOut: var integer
i: var integer
atStartOfLine: var integer
iStack: obj Indexed(,#integer)
top: var integer
push:
in V: var integer
revert:
in ind: var integer
nextTokens:
inOut: var integer
peekNext:
-- Not tested
-- read and return next token; put token in tokenBuf
-- keep current value of token, peeked tokenStr] should also be buffered
in n: var integer
out T: var integer
currentToken: var integer
currentTokenStr: ref String
tokenBuf: obj
B: obj Indexed(,#integer)
sy: obj IndexedRef(,#string)
L: var integer
R: var integer
add:
in T: var integer
in S: ref String
get:
out T: var integer
S: ref String
getTokenNo:
in n: var integer
out T: var integer
isEmpty:
out B: var Boolean
next:
-- tokenStr := "-V-" ???
%Module symbols