📄 stack.s
字号:
/ builtins for shift-reduce parskingf = r5i = r3g = r4.globl succ,pbundle,goto,iget.globl g1.globl stack,unstack,gotab,accept/stack label of present rule (state)/should come first in a rulestack: mov i,(g) sub $2,(g)+ jmp succ/unstack(n) deletes last n stacked states/states are distinguishable from translations in not having/an exit bit ($1) nor being bundles ($100000)unstack: jsr pc,iget mov (r0),r0 mov g,r11: bit -(r1),$100001 bne 1b dec r0 bge 1b tst (r1)+ br 1faccept: /clean out all states from stack mov f,r1 add $g1,r11: mov r1,r0 mov r1,-(sp)1: cmp r1,g bge 2f bit (r1)+,$100001 beq 1b mov -2(r1),(r0)+ br 1b2: mov r0,g mov (sp)+,r0 jsr pc,pbundle tst r0 beq 1f mov r0,(g)+1: jmp succ/gotab(s1,t1,s2,t2,...sn,tn,0,t)/checks top of stack for states/s1,s2,... and goes to t1, t2 accordingly/if top of stack is not in table, goes to tgotab: mov g,r01: bit -(r0),$100001 /find top state bne 1b mov (r0),-(sp)1: jsr pc,iget tst (r0) beq 1f cmp (sp),r0 beq 1f jsr pc,iget br 1b1: tst (sp)+ jmp goto
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -