📄 tmgc.s
字号:
/ tmg tables and global definitions/ in addition to these definitions each routine/ follows the convention/ f = stack frame pointer during parse and translation/ g = stack frame end during parse/ i = interprested instruction counter during parse and translation.globl tables.globl x,si,j,k,n,g1,env.globl ek,ek.fs,ep,ep.fs,fs.globl lptr,sptr,rptr.globl outb,outt,outw.globl stkt,stkb,stke.globl ktat,ktab.globl input,cfile,lfile,dfile,ofile/ parse stack frame layout/ 0 is previous frame pointer/ return address in (sp)x = 2. /exit bit, nonzero at end of rulesi = 4. / save location for instruction counterj = 6. / input cursor counts charactersk = 8. / ktable water mark, last use location relative to basen = 10. /address of ignored character classenv = 12. / frame pointer for static environmentg1 = 14. / frame length during parse/symbol table entry layout/word 0 is for customerlptr=2. /index of next entry on tree to leftrptr=4. /index of next entry to rightsptr=6. /first character of string in this entry /next char is in 7, etc/ translation frame layout/ used as ek(f), ep(f), etc/ x and si have same meaning as in parse stack frame/ return address in (sp)ek = 0 / k environment, frame where bunlde address is in siep = 6 / p environment, frame where si points to parameter listfs = 10 / frame sizeek.fs = ek+fs / k environment in next frameep.fs = ep+fs / p env in next frame.datatables = . /marks break between routines and tablesoutt = 64. / output buffer topstkt = 800. /stack top for (f), not for (sp)ktat = 1200. / k table topinput: -1 / stream number of inputcfile: 1 / stream number of current outputlfile: 1 / last current outputdfile: 2 / diagnostic fileofile: 1 /output fileoutw: 0 / output write pointer, number of chars in buffer.bssoutb: .=.+outt /output bufferktab: . = .+ktat / contains translation rules that have been bundledstkb: . = .+stkt / stack, (f) ponts into thisstke = . /stack end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -