나는 모든 표현식의 내부 변수를 얻으려고하고있다. 그래서 다음과 같이 명시 적으로 범위를 지정할 수 없다.
Names default to here(1);
some_f = function({x},
{c},
c=1;
return(x);
);
some_expr = Expr(
a=1;
//b = some_f(1);
);
//trying to get all the variables inside some_expr
Eval(Substitute(
Expr(
local here(
DV_EXPR;
associative array(namespace("here") << Get Contents);
)
),
Expr(DV_EXPR), nameexpr(some_expr)
));
이제는 표현식 안에서 함수 호출의 주석 처리를 제거 할 때까지 효과적입니다.
그런 다음 나는이 문제와 마주 쳤다.
b = 2;
y = Local Here(
a = 1;
c = a + b;
c;
);
누구든지 이것을 할 수있는 더 좋은 방법을 생각할 수 있습니까? 또는 여기에있는 내 로컬이 로컬 네임 스페이스에 넣지 않고 이름 자체를 볼 수있는 방법 인지요? 나는 또한 local ()을 시도했다. 하지만 {DEFAULT LOCAL} 방식이 효과적이기 때문에 사랑이 없습니다. usingNamespace ()도 시도했지만 작동하지 않는다고 확신합니다.