파서

파서 (Parser)

Octave 파서에는 내부 동작에 영향을 주는 변수가 몇 개 있어요. 이런 변수들은 대체로 그 영향을 받는 코드 옆에서 매뉴얼에 함께 설명돼요.

출처: GNU Octave 문서 – Parser

본문

또한 세 가지 비(非)특정 파서 사용자 정의 함수가 있어요.

add_input_event_hook은 사용자 함수를 주기적으로 평가하도록 예약하는 데 쓰이고, remove_input_event_hook은 주기적 평가를 중단시켜요.

id = add_input_event_hook (fcn)
id = add_input_event_hook (fcn, data)

이름이 붙은 함수나 함수 핸들 fcn을, Octave가 입력을 기다리는 동안 주기적으로 호출할 함수 목록에 추가해요.

함수는 다음과 같은 형태여야 해요.

fcn (data)

data를 생략하면 Octave는 인자 없이 함수를 호출해요. 반환된 식별자는 입력 훅 함수 목록에서 함수 핸들을 제거하는 데 사용할 수 있어요.

관련: remove_input_event_hook.

remove_input_event_hook (name)
remove_input_event_hook (fcn_id)

이름이 붙은 함수나 주어진 식별자를 가진 함수 핸들을, Octave가 입력을 기다리는 동안 주기적으로 호출할 함수 목록에서 제거해요.

관련: add_input_event_hook.

마지막으로, 파서가 입력 토큰을 식별하지 못하면 특정 함수를 호출해서 이를 처리해요. 기본적으로 이 함수는 MATLAB 함수에 대한 가능한 Octave 대체 표현을 제안하는 내부 함수 "__unimplemented__"예요.

val = missing_function_hook ()
old_val = missing_function_hook (new_val)
old_val = missing_function_hook (new_val, "local")

알 수 없는 식별자를 참조할 때 추가 정보를 제공하기 위해 호출할 함수를 지정하는 내부 변수를 조회하거나 설정해요.

함수 안에서 "local" 옵션으로 호출하면 변수가 함수와 그 하위 함수에 대해 로컬로 바뀌고, 함수를 빠져나오면 원래 값으로 복원돼요.

관련: missing_component_hook.

더 알아보기