diff options
| -rw-r--r-- | compiler/elymasGlobal.ey | 20 | ||||
| -rw-r--r-- | examples/working-compiler/grammar-pre.test | 4 |
2 files changed, 24 insertions, 0 deletions
diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey index 77015a0..06a2b4c 100644 --- a/compiler/elymasGlobal.ey +++ b/compiler/elymasGlobal.ey @@ -835,6 +835,26 @@ /rbx :pushqReg :retn ] /eydie defv + + # determine current quoting mode + # 0 <- an integer giving the current quoting level + [[ + /rbx :popqReg + + # allocate result int + 16 /rdi :movqImmReg + ::internalAllocate /rax :movqImmReg + /rax :callqReg + # and push to stack + /rax :pushqReg + + ::currentQuoted /rcx :movqImmReg + /rcx /rcx :movqMemReg + /rcx 8 /rax :movqRegMemDisp8 + + /rbx :pushqReg + :retn + ]] /eyquoted defv > _ ==globalFunctions { defv }' ::allocateOffsetStruct < diff --git a/examples/working-compiler/grammar-pre.test b/examples/working-compiler/grammar-pre.test new file mode 100644 index 0000000..6c9c8ca --- /dev/null +++ b/examples/working-compiler/grammar-pre.test @@ -0,0 +1,4 @@ +[ "(" ")" "[" "]" "-" "|" ] { _ { streq }_ "'" -102 cat deff }' each + +"[" '[ dump +"x" '[ dump |
