aboutsummaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2013-03-22 21:19:00 +0100
committerDrahflow <drahflow@gmx.de>2013-03-22 21:19:00 +0100
commit35161644be66325257ebb5cf9e58baf983a079e4 (patch)
tree37efdbe1044df3a5e00c4f80b2b2d55c3710f76f /compiler
parent871849def2e4508cf68039712ef463ade35a1b0d (diff)
The implementation of }"
Never to be used.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/elymasGlobal.ey18
1 files changed, 13 insertions, 5 deletions
diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey
index 5374b2b..f8bfe14 100644
--- a/compiler/elymasGlobal.ey
+++ b/compiler/elymasGlobal.ey
@@ -1520,7 +1520,7 @@
] /ey{ defv
# quote construction, create function from begin marker onwards
- { ==footer ==header
+ { ==footer ==header ==capturing
[[
8 /r15 :subqImm8Reg
/r15 :popqMem
@@ -1605,8 +1605,12 @@
# create function object
/rax /rdi :movqRegReg
- ::currentScope /rax :movqImmReg
- /rax /rsi :movqMemReg
+ capturing {
+ ::currentScope /rax :movqImmReg
+ /rax /rsi :movqMemReg
+ } {
+ /rsi /rsi :xorqRegReg
+ } ? *
/rdx /rdx :xorqRegReg
::internalAllocateFunction /rax :movqImmReg
/rax :callqReg
@@ -1662,8 +1666,12 @@
/done :jmpLbl32
]]
- } _ ::scopingFunctionHeader ::scopingFunctionFooter -102* /ey} defv
- ::unscopingFunctionHeader ::unscopingFunctionFooter -102* /ey}' defv
+ } _ 1 ::scopingFunctionHeader ::scopingFunctionFooter -2103* /ey} defv
+ _ 1 ::unscopingFunctionHeader ::unscopingFunctionFooter -2103* /ey}' defv
+ # the following line - while very tempting - should not be enabled, as it would
+ # destroy future possibility of detecting scope closedness. If you need to augment
+ # caller scope names using nice syntax, employ macros and pass a { deff }' or similar
+ -- # 0 ::unscopingFunctionHeader ::unscopingFunctionFooter -2103* /ey}" defv
> _ ==globalMacros { defv }' ::allocateOffsetStruct
<