1 line
41 KiB
NASM
1 line
41 KiB
NASM
|
mcopy scanner.macros
****************************************************************
*
* GetCom - Common Data for Get Character Module
*
****************************************************************
*
GetCom data
;
; Constants
;
autoGo gequ $06 auto-Go key code
breakPoint gequ $07 breakpoint key code
maxCnt gequ 256 # chars on a line + 1
maxPath gequ 255 max length of a path name
return equ $0D RETURN key code
tab equ $09 tab key code
;
; Size of pascal structures
;
constantSize equ 258 size of a constantRec
constantSize_longC equ 6
constantSize_reel equ 10
constantSize_pset equ 260
constantSize_chset equ 258
constantSize_strg equ 258
displaySize equ 28 size of an element of the display array
ltypeSize equ 10 size of an ltype record
;
; Displacements into records, by record-name_field-name
;
constant_rval equ 2 disp in constant of real value
constant_lval equ 2 disp in constant of longint value
constant_sval gequ 2 disp in constant of string characters
identifier_llink equ 4 disp in identifier of left link
identifier_rlink equ 8 disp in identifier of right link
identifier_klass equ 22 disp in identifier of klass record
display_ispacked equ 0 disp in display of ispacked field
display_labsused equ 2 disp in display of labsused
display_fname equ 6 disp in display of fname
ltype_next equ 0 disp in ltype of next
ltype_name equ 4 disp in ltype of name
ltype_disx equ 8 disp in ltype of disx
valu_ival equ 0 disp in valu of integer value
valu_valp equ 0 disp in valu of value pointer
;
; Variables
;
digit ds maxCnt string for building numeric constants
endOfUses ds 2 at end of a uses file?
test ds 2
tInSymbol ds 3 first 3 bytes of InSymbol
;
; Enumerations
;
bools enum (false,true),0
symbol enum (ident,intconst,realconst,stringconst,notsy,mulop,addop,relop),0
enum (lparent,rparent,lbrack,rbrack,comma,semicolon,period,arrow)
enum (colon,dotdot,becomes,labelsy,constsy,typesy,varsy,funcsy,progsy)
enum (procsy,setsy,packedsy,arraysy,recordsy,filesy,nilsy)
enum (beginsy,ifsy,casesy,repeatsy,whilesy,forsy,withsy)
enum (gotosy,endsy,elsesy,untilsy,ofsy,dosy,tosy,downtosy)
enum (thensy,othersy,otherwisesy,powersy,bitnot,usessy,stringsy)
enum (atsy,longintconst,unitsy,interfacesy,implementationsy)
enum (univsy,objectsy,inheritedsy)
operator enum (noop,mul,rdiv,andop,idiv,imod,plus,minus,orop,ltop,leop,geop),0
enum (gtop,neop,eqop,inop,band,bor,xor,rshift,lshift)
cstclass enum (reel,pset,strg,chset,long),0
chtp enum (letter,number,special,illegal,underLine),0
enum (chLComt,chStrQuo,chColon,chPeriod,chlt,chgt)
enum (chLParen,chSpace,chAsterisk,chDollar,chAt)
;
; Structured constants
;
charTp entry character types
dc 8i1'illegal'
dc i1'illegal,chSpace',6I1'illegal'
dc 8i1'illegal'
dc 8i1'illegal'
dc i1'chSpace,special,illegal,illegal,chDollar,illegal,special,chStrQuo'
dc i1'chLParen,special,chAsterisk,special,special,special,chPeriod,special'
dc 8i1'number'
dc i1'number,number,chColon,special,chlt,special,chgt,illegal'
dc i1'chAt',7I1'letter'
dc 8i1'letter'
dc 8i1'letter'
dc 3i1'letter',I1'special,illegal,special,special,underLine'
dc 8i1'illegal'
dc 8i1'illegal'
dc 8i1'illegal'
dc 3i1'illegal',I1'chLComt,special,illegal,special,illegal'
dc 8i1'letter' $80
dc 8i1'letter'
dc 8i1'letter' $90
dc 8i1'letter'
dc 7i1'illegal',i1'letter' $A0
dc 5i1'illegal',i1'special',2i1'letter'
dc 2i1'illegal',2i1'special',4i1'letter' $B0
dc i1'letter,letter,illegal,letter,letter,letter,letter,letter'
dc i1'illegal,illegal,illegal,illegal,letter,illegal,letter,special'
dc i1'special,illegal,chSpace',5i1'letter'
dc 6i1'illegal',i1'special',i1'illegal' $D0
dc i1'letter,illegal,illegal,illegal,illegal,illegal,letter,letter'
dc 8i1'illegal' $E0
dc 8i1'illegal'
dc 8i1'illegal' $F0
dc 8i1'illegal'
uppercase anop
dc i1'$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F'
dc i1'$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F'
dc i1'$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F'
dc i1'$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F
|