mirror of
https://github.com/dschmenk/PLASMA.git
synced 2024-12-29 16:29:55 +00:00
Text formatting clean-up
This commit is contained in:
parent
6c0147819c
commit
5fe534f6b1
@ -79,7 +79,7 @@ word strlinbuf = $1000
|
||||
word strpoolmap = $1F00
|
||||
word strpoolmsz = 224 // $E0 = 28K is memory@16 bytes per bit map, 128 bytes per 8 bit map, 1K bytes per 8 byte map
|
||||
word strpool = $4800
|
||||
word strpoolsz = $7000
|
||||
word strpoolsz = $7000
|
||||
byte flags = 0
|
||||
byte flash = 0
|
||||
word numlines = 0
|
||||
@ -96,7 +96,7 @@ predef cmdmode
|
||||
// Defines for ASM routines
|
||||
//
|
||||
asm equates
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
!SOURCE "vmsrc/plvmzp.inc"
|
||||
end
|
||||
//def toupper(c)
|
||||
// if c >= 'a'
|
||||
@ -217,7 +217,7 @@ def newstr(strptr)
|
||||
|
||||
strlen = ^strptr
|
||||
while (strptr).[strlen] == $8D or (strptr).[strlen] == $A0
|
||||
strlen = strlen - 1
|
||||
strlen--
|
||||
loop
|
||||
if strlen == 0
|
||||
return @nullstr
|
||||
@ -238,7 +238,6 @@ def inittxtbuf#0
|
||||
strpoolmsz = 224 // $E0 = 28K is memory@16 bytes per bit map, 128 bytes per 8 bit map, 1K bytes per 8 byte map
|
||||
strpool = $4800
|
||||
strpoolsz = $7000
|
||||
|
||||
memset(strpoolmap, strheapmsz, 0)
|
||||
memset(strlinbuf, maxfill * 2, @nullstr)
|
||||
numlines = 1
|
||||
@ -297,14 +296,6 @@ def txtlower#0
|
||||
strlower(strlinbuf:[i])
|
||||
next
|
||||
end
|
||||
def prbyte(h)#0
|
||||
cout('$')
|
||||
call($FDDA, h, 0, 0, 0)
|
||||
end
|
||||
def prword(h)#0
|
||||
cout('$')
|
||||
call($F941, h >> 8, h, 0, 0)
|
||||
end
|
||||
def print(i)#0
|
||||
byte numstr[7]
|
||||
byte place, sign
|
||||
@ -319,13 +310,13 @@ def print(i)#0
|
||||
while i >= 10
|
||||
numstr[place] = i % 10 + '0'
|
||||
i = i / 10
|
||||
place = place - 1
|
||||
place--
|
||||
loop
|
||||
numstr[place] = i + '0'
|
||||
place = place - 1
|
||||
place--
|
||||
if sign
|
||||
numstr[place] = '-'
|
||||
place = place - 1
|
||||
place--
|
||||
fin
|
||||
numstr[place] = 6 - place
|
||||
puts(@numstr[place])
|
||||
@ -340,27 +331,27 @@ end
|
||||
def readtxt(filename)#0
|
||||
byte txtbuf[81], refnum, i, j
|
||||
|
||||
refnum = open(filename, sysbuf)
|
||||
refnum = fileio:open(filename)
|
||||
if refnum
|
||||
newline(refnum, $7F, $0D)
|
||||
repeat
|
||||
txtbuf = read(refnum, @txtbuf + 1, maxlnlen)
|
||||
txtbuf = fileio:read(refnum, @txtbuf + 1, maxlnlen)
|
||||
if txtbuf
|
||||
sethibit(@txtbuf)
|
||||
if flags & uppercase; strupper(@txtbuf); fin
|
||||
strlinbuf:[numlines] = newstr(@txtbuf)
|
||||
numlines = numlines + 1
|
||||
numlines++
|
||||
fin
|
||||
if !(numlines & $0F); cout('.'); fin
|
||||
until txtbuf == 0 or numlines == maxlines
|
||||
close(refnum)
|
||||
//
|
||||
// Make sure there is a blank line at the end of the buffer
|
||||
//
|
||||
if numlines < maxlines and strlinbuf:[numlines - 1] <> @nullstr
|
||||
strlinbuf:[numlines] = @nullstr
|
||||
numlines = numlines + 1
|
||||
fin
|
||||
fileio:close(refnum)
|
||||
//
|
||||
// Make sure there is a blank line at the end of the buffer
|
||||
//
|
||||
if numlines < maxlines and strlinbuf:[numlines - 1] <> @nullstr
|
||||
strlinbuf:[numlines] = @nullstr
|
||||
numlines++
|
||||
fin
|
||||
fin
|
||||
end
|
||||
def writetxt(filename)#0
|
||||
@ -368,9 +359,9 @@ def writetxt(filename)#0
|
||||
byte j, chr
|
||||
word i, strptr
|
||||
|
||||
destroy(filename)
|
||||
create(filename, $C3, $04, $00) // full access, TXT file
|
||||
refnum = open(filename, sysbuf)
|
||||
fileio:destroy(filename)
|
||||
fileio:create(filename, $04, $00) // full access, TXT file
|
||||
refnum = fileio:open(filename)
|
||||
if refnum == 0
|
||||
return
|
||||
fin
|
||||
@ -385,15 +376,15 @@ def writetxt(filename)#0
|
||||
cpyln(strlinbuf:[i], @txtbuf)
|
||||
txtbuf = txtbuf + 1
|
||||
txtbuf[txtbuf] = $0D
|
||||
write(refnum, @txtbuf + 1, txtbuf)
|
||||
fileio:write(refnum, @txtbuf + 1, txtbuf)
|
||||
if !(i & $0F); cout('.'); fin
|
||||
next
|
||||
close(refnum)
|
||||
fileio:close(refnum)
|
||||
end
|
||||
//
|
||||
// Screen routines
|
||||
//
|
||||
def clrscrn@0
|
||||
def clrscrn#0
|
||||
call($FC58, 0, 0, 0, 0)
|
||||
end
|
||||
def drawrow(row, ofst, strptr)#0
|
||||
@ -420,30 +411,30 @@ def drawscrn(toprow, ofst)#0
|
||||
if ofst
|
||||
for row = 0 to 23
|
||||
strptr = strlinbuf:[toprow + row]
|
||||
scrnptr = txtscrn[row]
|
||||
if ofst >= ^strptr
|
||||
numchars = 0
|
||||
else
|
||||
scrnptr = txtscrn[row]
|
||||
if ofst >= ^strptr
|
||||
numchars = 0
|
||||
else
|
||||
numchars = ^strptr - ofst
|
||||
fin
|
||||
if numchars >= 40
|
||||
fin
|
||||
if numchars >= 40
|
||||
numchars = 40
|
||||
else
|
||||
memset(scrnptr + numchars, 40 - numchars, $A0A0)
|
||||
fin
|
||||
memcpy(scrnptr, strptr + ofst + 1, numchars)
|
||||
else
|
||||
memset(scrnptr + numchars, 40 - numchars, $A0A0)
|
||||
fin
|
||||
memcpy(scrnptr, strptr + ofst + 1, numchars)
|
||||
next
|
||||
else
|
||||
for row = 0 to 23
|
||||
strptr = strlinbuf:[toprow + row]
|
||||
scrnptr = txtscrn[row]
|
||||
numchars = ^strptr
|
||||
if numchars >= 40
|
||||
scrnptr = txtscrn[row]
|
||||
numchars = ^strptr
|
||||
if numchars >= 40
|
||||
numchars = 40
|
||||
else
|
||||
memset(scrnptr + numchars, 40 - numchars, $A0A0)
|
||||
fin
|
||||
memcpy(scrnptr, strptr + 1, numchars)
|
||||
else
|
||||
memset(scrnptr + numchars, 40 - numchars, $A0A0)
|
||||
fin
|
||||
memcpy(scrnptr, strptr + 1, numchars)
|
||||
next
|
||||
fin
|
||||
end
|
||||
@ -507,9 +498,9 @@ end
|
||||
def cursup#0
|
||||
if cursrow > 0
|
||||
cursoff
|
||||
cursrow = cursrow - 1
|
||||
cursrow--
|
||||
if cursy > 0
|
||||
cursy = cursy - 1
|
||||
cursy--
|
||||
else
|
||||
scrntop = cursrow
|
||||
drawscrn(scrntop, scrnleft)
|
||||
@ -527,9 +518,9 @@ end
|
||||
def cursdown#0
|
||||
if cursrow < numlines - 1
|
||||
cursoff
|
||||
cursrow = cursrow + 1
|
||||
cursrow++
|
||||
if cursy < 23
|
||||
cursy = cursy + 1
|
||||
cursy++
|
||||
else
|
||||
scrntop = cursrow - 23
|
||||
drawscrn(scrntop, scrnleft)
|
||||
@ -547,9 +538,9 @@ end
|
||||
def cursleft#0
|
||||
if curscol > 0
|
||||
cursoff
|
||||
curscol = curscol - 1
|
||||
curscol--
|
||||
if cursx > 0
|
||||
cursx = cursx - 1
|
||||
cursx--
|
||||
else
|
||||
scrnleft = curscol
|
||||
drawscrn(scrntop, scrnleft)
|
||||
@ -567,9 +558,9 @@ end
|
||||
def cursright#0
|
||||
if curscol < 80
|
||||
cursoff
|
||||
curscol = curscol + 1
|
||||
curscol++
|
||||
if cursx < 39
|
||||
cursx = cursx + 1
|
||||
cursx++
|
||||
else
|
||||
scrnleft = curscol - 39
|
||||
drawscrn(scrntop, scrnleft)
|
||||
@ -651,7 +642,7 @@ def openline(row)
|
||||
if numlines < maxlines
|
||||
memcpy(@strlinbuf:[row + 1], @strlinbuf:[row], (numlines - row) * 2)
|
||||
strlinbuf:[row] = @nullstr
|
||||
numlines = numlines + 1
|
||||
numlines++
|
||||
flags = flags | changed
|
||||
return TRUE
|
||||
fin
|
||||
@ -663,7 +654,7 @@ def cutline#0
|
||||
cutbuf = strlinbuf:[cursrow]
|
||||
memcpy(@strlinbuf:[cursrow], @strlinbuf:[cursrow + 1], (numlines - cursrow) * 2)
|
||||
if numlines > 1
|
||||
numlines = numlines - 1
|
||||
numlines--
|
||||
fin
|
||||
flags = flags | changed
|
||||
if cursrow == numlines
|
||||
@ -675,7 +666,7 @@ def pasteline#0
|
||||
if cutbuf and numlines < maxlines
|
||||
memcpy(@strlinbuf:[cursrow + 1], @strlinbuf:[cursrow], (numlines - cursrow) * 2)
|
||||
strlinbuf:[cursrow] = newstr(cutbuf)
|
||||
numlines = numlines + 1
|
||||
numlines++
|
||||
flags = flags | changed
|
||||
redraw
|
||||
else
|
||||
@ -694,7 +685,7 @@ def joinline#0
|
||||
freestr(strlinbuf:[cursrow])
|
||||
strlinbuf:[cursrow] = newstr(@joinstr)
|
||||
freestr(strlinbuf:[cursrow + 1])
|
||||
numlines = numlines - 1
|
||||
numlines--
|
||||
memcpy(@strlinbuf:[cursrow + 1], @strlinbuf:[cursrow + 2], (numlines - cursrow) * 2)
|
||||
flags = flags | changed
|
||||
redraw
|
||||
@ -757,34 +748,34 @@ def editline(key)
|
||||
if curscol > 0
|
||||
if curscol <= editstr
|
||||
memcpy(@editstr[curscol], @editstr[curscol + 1], editstr - curscol)
|
||||
editstr = editstr - 1
|
||||
editstr--
|
||||
fin
|
||||
curscol = curscol - 1
|
||||
curscol--
|
||||
cursoff
|
||||
if cursx > 0
|
||||
cursx = cursx - 1
|
||||
cursx--
|
||||
drawrow(cursy, scrnleft, @editstr)
|
||||
else
|
||||
scrnleft = scrnleft - 1
|
||||
scrnleft--
|
||||
drawscrn(scrntop, scrnleft)
|
||||
fin
|
||||
curson
|
||||
fin
|
||||
elsif curscol < maxlnlen
|
||||
curscol = curscol + 1
|
||||
cursx = cursx + 1
|
||||
curscol++
|
||||
cursx++
|
||||
if flags & insmode
|
||||
if editstr < maxlnlen or editstr.maxlnlen == $A0
|
||||
editstr = editstr + 1
|
||||
editstr++
|
||||
if curscol >= editstr
|
||||
editstr = curscol
|
||||
else
|
||||
memcpy(@editstr[curscol + 1], @editstr[curscol], editstr - curscol)
|
||||
fin
|
||||
else
|
||||
curscol = curscol - 1
|
||||
cursx = cursx - 1
|
||||
key = editstr[curscol]
|
||||
curscol--
|
||||
cursx--
|
||||
key = editstr[curscol]
|
||||
bell
|
||||
fin
|
||||
else
|
||||
@ -797,8 +788,8 @@ def editline(key)
|
||||
if cursx <= 39
|
||||
drawrow(cursy, scrnleft, @editstr)
|
||||
else
|
||||
scrnleft = scrnleft + 1
|
||||
cursx = 39
|
||||
scrnleft++
|
||||
cursx = 39
|
||||
drawscrn(scrntop, scrnleft)
|
||||
fin
|
||||
curson
|
||||
@ -809,7 +800,7 @@ def editline(key)
|
||||
if curscol < editstr
|
||||
strcpy(undoline, @editstr)
|
||||
memcpy(@editstr[curscol + 1], @editstr[curscol + 2], editstr - curscol)
|
||||
editstr = editstr - 1
|
||||
editstr--
|
||||
cursoff
|
||||
drawrow(cursy, scrnleft, @editstr)
|
||||
curson
|
||||
@ -859,15 +850,15 @@ def editmode#0
|
||||
is keyctrlv
|
||||
pasteline; break
|
||||
is keyctrlf
|
||||
if numlines < maxlines and cursrow == numlines - 1
|
||||
if numlines < maxlines and cursrow == numlines - 1
|
||||
strlinbuf:[numlines] = @nullstr
|
||||
numlines = numlines + 1
|
||||
fin
|
||||
cursdown
|
||||
numlines++
|
||||
fin
|
||||
cursdown
|
||||
is keyctrlo
|
||||
openline(cursrow)
|
||||
redraw
|
||||
break
|
||||
break
|
||||
is keyenter
|
||||
if flags & insmode
|
||||
splitline
|
||||
@ -876,7 +867,7 @@ def editmode#0
|
||||
cursdown
|
||||
redraw
|
||||
fin
|
||||
break
|
||||
break
|
||||
is keyctrlt
|
||||
joinline; break
|
||||
is keyctrli
|
||||
@ -887,7 +878,7 @@ def editmode#0
|
||||
flags = flags | insmode
|
||||
curschr = '+'
|
||||
fin
|
||||
break
|
||||
break
|
||||
is keyctrlc
|
||||
if flags & uppercase
|
||||
txtlower
|
||||
@ -895,12 +886,12 @@ def editmode#0
|
||||
txtupper
|
||||
fin
|
||||
redraw
|
||||
break
|
||||
break
|
||||
is keyescape
|
||||
cursoff
|
||||
cmdmode
|
||||
redraw
|
||||
break
|
||||
break
|
||||
wend
|
||||
until false
|
||||
end
|
||||
@ -944,12 +935,12 @@ def prfiles(optpath)
|
||||
puts(entry)
|
||||
if type & $F0 == $D0 // Is it a directory?
|
||||
cout('/')
|
||||
len = len + 1
|
||||
len++
|
||||
fin
|
||||
for len = 20 - len downto 1
|
||||
cout(' ')
|
||||
next
|
||||
filecnt = filecnt - 1
|
||||
filecnt--
|
||||
fin
|
||||
entry = entry + entrylen
|
||||
next
|
||||
@ -965,7 +956,7 @@ end
|
||||
def striplead(strptr, chr)#0
|
||||
while ^strptr and ^(strptr + 1) == chr
|
||||
memcpy(strptr + 1, strptr + 2, ^strptr)
|
||||
^strptr = ^strptr - 1
|
||||
^strptr--
|
||||
loop
|
||||
end
|
||||
def parsecmd(strptr)
|
||||
@ -976,7 +967,7 @@ def parsecmd(strptr)
|
||||
if ^strptr
|
||||
cmd = ^(strptr + 1)
|
||||
memcpy(strptr + 1, strptr + 2, ^strptr)
|
||||
^strptr = ^strptr - 1
|
||||
^strptr--
|
||||
fin
|
||||
if ^strptr
|
||||
striplead(strptr, ' ')
|
||||
@ -999,7 +990,7 @@ def quit#0
|
||||
exit
|
||||
fin
|
||||
end
|
||||
def cmdmode
|
||||
def cmdmode#0
|
||||
byte slot
|
||||
word cmdptr
|
||||
|
||||
@ -1013,17 +1004,17 @@ def cmdmode
|
||||
is 'A'
|
||||
readtxt(cmdptr)
|
||||
flags = flags | changed
|
||||
break
|
||||
break
|
||||
is 'R'
|
||||
if chkchng
|
||||
inittxtbuf
|
||||
numlines = 0
|
||||
numlines = 0
|
||||
strcpy(@txtfile, cmdptr)
|
||||
readtxt(@txtfile)
|
||||
if numlines == 0; numlines = 1; fin
|
||||
if numlines == 0; numlines = 1; fin
|
||||
flags = flags & ~changed
|
||||
fin
|
||||
break
|
||||
break
|
||||
is 'W'
|
||||
if ^cmdptr
|
||||
strcpy(@txtfile, cmdptr)
|
||||
@ -1031,7 +1022,7 @@ def cmdmode
|
||||
writetxt(@txtfile)
|
||||
//if flags & changed; fin
|
||||
flags = flags & ~changed
|
||||
break
|
||||
break
|
||||
is 'C'
|
||||
prfiles(cmdptr); break
|
||||
is 'P'
|
||||
@ -1043,7 +1034,7 @@ def cmdmode
|
||||
slot = 1
|
||||
fin
|
||||
printtxt(slot)
|
||||
break
|
||||
break
|
||||
is 'Q'
|
||||
quit
|
||||
is 'E'
|
||||
@ -1054,7 +1045,7 @@ def cmdmode
|
||||
inittxtbuf
|
||||
strcpy(@txtfile, "UNTITLED")
|
||||
fin
|
||||
break
|
||||
break
|
||||
otherwise
|
||||
bell
|
||||
cout('?')
|
||||
|
@ -2024,7 +2024,7 @@ end
|
||||
//
|
||||
def emit_byte(bval)#0
|
||||
^codeptr = bval
|
||||
codeptr = codeptr + 1
|
||||
codeptr++
|
||||
end
|
||||
def emit_word(wval)#0
|
||||
*codeptr = wval
|
||||
@ -2087,14 +2087,14 @@ def emit_data(vartype, consttype, constval, constsize)
|
||||
size = constsize
|
||||
emit_fill(constsize)
|
||||
elsif consttype == STR_TYPE
|
||||
size = constsize
|
||||
chrptr = constval
|
||||
constsize = constsize - 1
|
||||
size = constsize
|
||||
chrptr = constval
|
||||
constsize--
|
||||
emit_byte(constsize)
|
||||
while constsize > 0
|
||||
emit_byte(^chrptr)
|
||||
chrptr = chrptr + 1
|
||||
constsize = constsize - 1
|
||||
chrptr++
|
||||
constsize--
|
||||
loop
|
||||
else
|
||||
if vartype & BYTE_TYPE
|
||||
@ -2105,7 +2105,7 @@ def emit_data(vartype, consttype, constval, constsize)
|
||||
if consttype == CONSTADDR_TYPE
|
||||
emit_addr(constval)
|
||||
else
|
||||
emit_word(constval)
|
||||
emit_word(constval)
|
||||
fin
|
||||
fin
|
||||
fin
|
||||
@ -2375,9 +2375,9 @@ def emit_drop#0
|
||||
end
|
||||
def emit_leave#0
|
||||
if framesize
|
||||
emit_op($5A)
|
||||
emit_op($5A)
|
||||
else
|
||||
emit_op($5C)
|
||||
emit_op($5C)
|
||||
fin
|
||||
end
|
||||
def emit_enter(cparams)#0
|
||||
@ -2408,7 +2408,7 @@ def idmatch(nameptr, len, idptr, idcnt)
|
||||
fin
|
||||
fin
|
||||
idptr = idptr + idptr->idname + idrecsz
|
||||
idcnt = idcnt - 1
|
||||
idcnt--
|
||||
loop
|
||||
return 0
|
||||
end
|
||||
@ -2431,7 +2431,7 @@ def dumpsym(idptr, idcnt)#0
|
||||
fin
|
||||
crout
|
||||
idptr = idptr + idptr->idname + idrecsz
|
||||
idcnt = idcnt - 1
|
||||
idcnt--
|
||||
loop
|
||||
end
|
||||
def id_lookup(nameptr, len)
|
||||
@ -2455,7 +2455,7 @@ def idlocal_add(namestr, len, type, size)
|
||||
lastlocal=>idval = framesize
|
||||
lastlocal->idtype = type | LOCAL_TYPE
|
||||
nametostr(namestr, len, lastlocal + idname)
|
||||
locals = locals + 1
|
||||
locals++
|
||||
lastlocal = lastlocal + idrecsz + len
|
||||
if lastlocal > idlocal_tbl + idlocal_tblsz
|
||||
prstr(@local_sym_overflw)
|
||||
@ -2463,8 +2463,7 @@ def idlocal_add(namestr, len, type, size)
|
||||
fin
|
||||
framesize = framesize + size
|
||||
if framesize > 255
|
||||
prstr(@local_overflw)
|
||||
return FALSE
|
||||
return parse_err(@local_overflw)
|
||||
fin
|
||||
return TRUE
|
||||
end
|
||||
@ -2474,7 +2473,7 @@ def iddata_add(namestr, len, type, size)
|
||||
lastglobal->idtype = type
|
||||
nametostr(namestr, len, lastglobal + idname)
|
||||
emit_iddata(datasize, size, lastglobal + idname)
|
||||
globals = globals + 1
|
||||
globals++
|
||||
lastglobal = lastglobal + idrecsz + len
|
||||
if lastglobal > idglobal_tbl + idglobal_tblsz
|
||||
prstr(@global_sym_overflw)
|
||||
@ -2496,7 +2495,7 @@ def idglobal_add(namestr, len, type, value)
|
||||
lastglobal=>idval = value
|
||||
lastglobal->idtype = type
|
||||
nametostr(namestr, len, lastglobal + idname)
|
||||
globals = globals + 1
|
||||
globals++
|
||||
lastglobal = lastglobal + idrecsz + len
|
||||
if lastglobal > idglobal_tbl + idglobal_tblsz
|
||||
prstr(@global_sym_overflw)
|
||||
@ -2639,7 +2638,7 @@ def pop_val(valptr, sizeptr, typeptr)
|
||||
^sizeptr = sizestack[valsp]
|
||||
^typeptr = typestack[valsp]
|
||||
valsp--
|
||||
return valsp + 1
|
||||
return valsp + 1
|
||||
end
|
||||
//
|
||||
// Lexical anaylzer
|
||||
@ -2878,16 +2877,12 @@ def nextln
|
||||
cpyln(strlinbuf:[lineno], instr)
|
||||
lineno++
|
||||
if !(lineno & $0F); cout('.'); fin
|
||||
print(lineno);cout(':');print(numlines)
|
||||
cout('>')
|
||||
prstr(instr)
|
||||
crout
|
||||
//print(lineno);cout(':');print(numlines);cout('>');prstr(instr);crout
|
||||
scan
|
||||
else
|
||||
cout('<')
|
||||
crout
|
||||
^instr = 0
|
||||
^inbuff = 0
|
||||
//cout('<');crout
|
||||
*instr = 0
|
||||
//^inbuff = 0
|
||||
token = DONE_TKN
|
||||
fin
|
||||
fin
|
||||
@ -2973,7 +2968,7 @@ def parse_constval
|
||||
when token
|
||||
is SUB_TKN
|
||||
mod = mod | 1; break
|
||||
is ALT_COMP_TKN
|
||||
is ALT_COMP_TKN
|
||||
is COMP_TKN
|
||||
mod = mod | 2; break
|
||||
is LOGIC_NOT_TKN
|
||||
@ -3012,7 +3007,7 @@ def parse_constval
|
||||
if !idptr; return parse_err(@bad_cnst); fin
|
||||
type = idptr->idtype
|
||||
if type & ADDR_TYPE
|
||||
if mod <> 8; return parse_err(@bad_cnst); fin
|
||||
if mod <> 8; return parse_err(@bad_cnst); fin
|
||||
type = CONSTADDR_TYPE
|
||||
fin
|
||||
value = idptr=>idval
|
||||
@ -3139,20 +3134,20 @@ def parse_value(rvalue)
|
||||
if deref
|
||||
push_op(token, 0)
|
||||
else
|
||||
deref = deref + 1
|
||||
type = type | BPTR_TYPE
|
||||
deref++
|
||||
type = type | BPTR_TYPE
|
||||
fin
|
||||
break
|
||||
is WPTR_TKN
|
||||
if deref
|
||||
push_op(token, 0)
|
||||
else
|
||||
deref = deref + 1
|
||||
type = type | WPTR_TYPE
|
||||
deref++
|
||||
type = type | WPTR_TYPE
|
||||
fin
|
||||
break
|
||||
is AT_TKN
|
||||
deref = deref - 1
|
||||
deref--
|
||||
break
|
||||
is SUB_TKN
|
||||
is ALT_COMP_TKN
|
||||
@ -3184,14 +3179,14 @@ def parse_value(rvalue)
|
||||
// type = type | WORD_TYPE
|
||||
emit_val = TRUE
|
||||
break
|
||||
is STR_TKN
|
||||
//
|
||||
// Special case
|
||||
//
|
||||
emit_constr(constval, tknlen - 1)
|
||||
scan
|
||||
return WORD_TYPE
|
||||
break
|
||||
is STR_TKN
|
||||
//
|
||||
// Special case
|
||||
//
|
||||
emit_constr(constval, tknlen - 1)
|
||||
scan
|
||||
return WORD_TYPE
|
||||
break
|
||||
otherwise
|
||||
return 0
|
||||
wend
|
||||
@ -3205,16 +3200,16 @@ def parse_value(rvalue)
|
||||
is NEG_TKN
|
||||
pop_op
|
||||
value = -value
|
||||
break
|
||||
break
|
||||
is ALT_COMP_TKN
|
||||
is COMP_TKN
|
||||
pop_op
|
||||
value = ~value
|
||||
break
|
||||
break
|
||||
is LOGIC_NOT_TKN
|
||||
pop_op
|
||||
value = !value
|
||||
break
|
||||
break
|
||||
otherwise
|
||||
cparams = FALSE
|
||||
wend
|
||||
@ -3238,7 +3233,8 @@ def parse_value(rvalue)
|
||||
ref_offset = 0
|
||||
fin
|
||||
if ref_type & BPTR_TYPE; emit_lb
|
||||
elsif ref_type & WPTR_TYPE; emit_lw; fin
|
||||
elsif ref_type & WPTR_TYPE; emit_lw
|
||||
fin
|
||||
if lookahead <> CLOSE_PAREN_TKN
|
||||
emit_push
|
||||
fin
|
||||
@ -3847,7 +3843,7 @@ def parse_var(type)
|
||||
byte consttype, constsize, idlen
|
||||
word idptr, constval, arraysize, size
|
||||
|
||||
cout('T')
|
||||
//cout('T')
|
||||
idlen = 0
|
||||
size = 1
|
||||
if scan == OPEN_BRACKET_TKN
|
||||
@ -3903,7 +3899,7 @@ def parse_struc
|
||||
byte type, idlen, struclen, constsize
|
||||
word size, offset, idstr
|
||||
|
||||
cout('S')
|
||||
//cout('S')
|
||||
struclen = 0
|
||||
if scan == ID_TKN
|
||||
struclen = tknlen
|
||||
@ -3959,7 +3955,7 @@ def parse_vars
|
||||
byte idlen, type, size
|
||||
word value, idptr
|
||||
|
||||
cout('V')
|
||||
//cout('V')
|
||||
when token
|
||||
is CONST_TKN
|
||||
if scan <> ID_TKN
|
||||
@ -4012,7 +4008,7 @@ def parse_defs
|
||||
word func_tag, idptr
|
||||
|
||||
if token == DEF_TKN
|
||||
cout('D')
|
||||
//cout('D')
|
||||
if scan <> ID_TKN; return parse_err(@bad_decl); fin
|
||||
cfnparms = 0
|
||||
infunc = TRUE
|
||||
@ -4028,12 +4024,12 @@ def parse_defs
|
||||
idlocal_init
|
||||
if scan == OPEN_PAREN_TKN
|
||||
repeat
|
||||
if scan == ID_TKN
|
||||
cfnparms = cfnparms + 1
|
||||
idlocal_add(tknptr, tknlen, WORD_TYPE, 2)
|
||||
scan
|
||||
fin
|
||||
until token <> COMMA_TKN
|
||||
if scan == ID_TKN
|
||||
cfnparms = cfnparms + 1
|
||||
idlocal_add(tknptr, tknlen, WORD_TYPE, 2)
|
||||
scan
|
||||
fin
|
||||
until token <> COMMA_TKN
|
||||
if token <> CLOSE_PAREN_TKN
|
||||
return parse_err(@bad_decl)
|
||||
fin
|
||||
@ -4070,7 +4066,7 @@ def parse_module
|
||||
while parse_defs
|
||||
nextln
|
||||
loop
|
||||
cout('I')
|
||||
//cout('I')
|
||||
framesize = 0
|
||||
entrypoint = codeptr
|
||||
emit_enter(0)
|
||||
@ -4080,7 +4076,7 @@ def parse_module
|
||||
nextln
|
||||
loop
|
||||
fin
|
||||
cout('!')
|
||||
//cout('!')
|
||||
if prevstmnt <> RETURN_TKN
|
||||
emit_const(0)
|
||||
emit_leave
|
||||
|
9
sysfiles/filetype_extensions.conf
Normal file
9
sysfiles/filetype_extensions.conf
Normal file
@ -0,0 +1,9 @@
|
||||
# Filetype extension configuration file for Geany
|
||||
# Insert as many items as you want, separate them with a ";".
|
||||
# See Geany's main documentation for details.
|
||||
[Extensions]
|
||||
PLASMA=*.pla;*.plh;
|
||||
|
||||
# Note: restarting is required after editing groups
|
||||
[Groups]
|
||||
Programming=PLASMA;
|
Loading…
Reference in New Issue
Block a user