ORCA-Pascal/scanner.asm

1 line
41 KiB
NASM
Raw Normal View History

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