diff options
| author | Drahflow <drahflow@gmx.de> | 2015-06-16 15:52:56 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2015-06-16 15:52:56 +0200 |
| commit | 7f5b57f1f6e6ba311c24f6b38c27cf2bff31d190 (patch) | |
| tree | bbc6d28bffe0ffea6effe6ab868d7927acf94bbc /compiler | |
| parent | 48033d4d5d654af91a4ba965aa30d64f047a9848 (diff) | |
Make internalExecuteIdentifier available to users
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/elymasGlobalSys.ey | 15 | ||||
| -rw-r--r-- | compiler/standardClient.ey | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/compiler/elymasGlobalSys.ey b/compiler/elymasGlobalSys.ey index 68a30c9..b44de09 100644 --- a/compiler/elymasGlobalSys.ey +++ b/compiler/elymasGlobalSys.ey @@ -24,6 +24,21 @@ /r15 :pushqMem 8 /r15 :addqImm8Reg :retn + ]] /eyexecuteIdentifierScoped defv + + # handle an identifier according to current quote level + # 0 -> identifier to handle + # 0 <- scope after execution + [[ + 8 /r15 :subqImm8Reg + /r15 :popqMem + + internalExecuteIdentifier /rax :movqImmReg + /rax :callqReg + + /r15 :pushqMem + 8 /r15 :addqImm8Reg + :retn ]] /eyexecuteIdentifier defv # resolve an identifier in a given scope and return full resolve information diff --git a/compiler/standardClient.ey b/compiler/standardClient.ey index c8f2823..1a2b091 100644 --- a/compiler/standardClient.ey +++ b/compiler/standardClient.ey @@ -1198,7 +1198,7 @@ } each ] =*:FLOAT { ==currentScope ==input - { .value currentScope sys .executeIdentifier =currentScope } /TOKID defvd + { .value currentScope sys .executeIdentifierScoped =currentScope } /TOKID defvd { .value base10decode } /TOKINT defvd { .value "^(\\d+)(\\.(\\d*))?([eE](-)?(\\d+))?$" regex not { "Not in fact a float" die } rep |
