Documentation
¶
Overview ¶
Copyright 2025 The Hulo Authors. All rights reserved. Use of this source code is governed by a MIT-style license that can be found in the LICENSE file.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context struct {
Module Module
Registry Registry
Converter Converter
Checker TypeChecker
Evaluator Evaluator
Variables map[string]Value
Parent *Context
}
Context 执行上下文
type Converter ¶
type Converter interface {
ConvertType(node ast.Node) (Type, error)
ConvertValue(node ast.Node) (Value, error)
ConvertModule(node *ast.File) (Module, error)
}
Converter AST转换器接口
type Evaluator ¶
type Evaluator interface {
Evaluate(node ast.Node) (Value, error)
EvaluateInContext(node ast.Node, context *Context) (Value, error)
}
Evaluator 求值器接口
type FunctionEvaluator ¶
type FunctionEvaluator interface {
// EvaluateFunction 求值函数
EvaluateFunction(funcDecl *ast.FuncDecl, args []any) (any, error)
}
FunctionEvaluator 函数求值器接口
type Module ¶
type Module interface {
Name() string
Path() string
GetType(name string) (Type, bool)
GetValue(name string) (Value, bool)
Export(name string, value interface{}) error
Import(name string, alias string, from string) error
}
Module 模块接口
type Registry ¶
type Registry interface {
RegisterModule(module Module) error
GetModule(name string) (Module, bool)
ResolveSymbol(moduleName, symbolName string) (any, bool)
ResolveDependencies() error
}
Registry 注册表接口
type Type ¶
type Type interface {
Name() string
Kind() TypeKind
AssignableTo(other Type) bool
Equals(other Type) bool
}
Type 类型接口
type TypeChecker ¶
type TypeChecker interface {
CheckType(expr ast.Expr) (Type, error)
InferType(expr ast.Expr) (Type, error)
CheckAssignment(target Type, value Value) error
}
TypeChecker 类型检查器接口
Click to show internal directories.
Click to hide internal directories.