달빛약속 / core/mod / DeclareFunction
Class: DeclareFunction
약속 키워드를 통해 함수(약속)를 선언하는 AST 노드입니다.
이 노드는 실행될 때 실제로 함수 코드를 실행하는 것이 아니라, 실행 가능한 FunctionObject를 생성하여 현재 스코프에 등록하는 역할을 합니다. 이때 FunctionObject는 함수가 선언된 시점의 스코프를 기억하며, 이는 클로저(Closure)를 구현하는 핵심입니다.
Extends
Indexable
[key: string]: unknown
Constructors
DeclareFunction()
DeclareFunction(
props,tokens):DeclareFunction
Parameters
• props
• props.body: Block
• props.name: string
• tokens: Token[]
Returns
Overrides
Defined in
Properties
body
body:
Block
Defined in
name
name:
string
Defined in
tokens
tokens:
Token[]
Inherited from
Defined in
friendlyName
staticfriendlyName:string='새 약속 만들기'
Overrides
Defined in
Methods
execute()
execute(
scope):Promise<void>
함수를 나타내는 FunctionObject를 생성하고 현재 스코프에 추가합니다.
Parameters
• scope: Scope
함수가 선언되는 현재의 스코프입니다.
Returns
Promise<void>
Overrides
Defined in
onRunChild()
protectedonRunChild(__namedParameters):Promise<void>
Parameters
• __namedParameters
• __namedParameters.childTokens: Token[]
• __namedParameters.scope: Scope
• __namedParameters.skipReport?: boolean = false
Returns
Promise<void>
Inherited from
Defined in
toJSON()
toJSON():
object
Returns
object
Inherited from
Defined in
toPrint()
toPrint():
string
Returns
string
Inherited from
Defined in
validate()
validate(
scope):YaksokError<unknown>[]
Parameters
• scope: Scope
Returns
YaksokError<unknown>[]