Documentation
¶
Overview ¶
Package compiler owns the public compilation pipeline.
Index ¶
- Constants
- type Artifact
- func AnalyzeProject(sources []SourceUnit, options Options) ([]*Artifact, error)
- func Compile(filename string, source []byte, mode string) (*Artifact, error)
- func CompileProject(sources []SourceUnit, options Options) ([]*Artifact, error)
- func CompileWithOptions(filename string, source []byte, options Options) (*Artifact, error)
- type CompileError
- type Options
- type SourceUnit
Constants ¶
const MainFunction = "main"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Artifact ¶
type Artifact struct {
Filename string
Mode string
AST *ast.Program
IR *ir.Program
Output []byte
SourceMap sourcemap.Map
CompilerOwned bool
Official bool
ExternalPackage bool
}
func AnalyzeProject ¶ added in v0.2.31
func AnalyzeProject(sources []SourceUnit, options Options) ([]*Artifact, error)
AnalyzeProject parses every unit before resolving or checking any body. It establishes the complete project catalog, import graph, exported signature environment, package integrations, typed IR, and backend-owned validation without generating backend source. Returned artifacts therefore have empty Output and SourceMap fields.
func CompileProject ¶
func CompileProject(sources []SourceUnit, options Options) ([]*Artifact, error)
CompileProject analyzes every source unit and then generates target-language output for the resulting typed IR. Editor integrations that do not consume generated output should use AnalyzeProject so diagnostics and semantic artifacts do not pay the backend generation cost.
type CompileError ¶
type CompileError struct {
Filename string
Diagnostics []diagnostic.Diagnostic
}
func NewCompileError ¶ added in v0.2.4
func NewCompileError(filename string, fallback diagnostic.Code, items []diagnostic.Diagnostic) *CompileError
func (*CompileError) Error ¶
func (e *CompileError) Error() string
type Options ¶
type Options struct {
Mode string
Package string
ModulePath string
GoModule string
RubyLoader string
TypeScriptRuntime string
SourceRoot string
ProjectRoot string
PackageOptions map[string][]byte
PackageAliases map[string]string
JobsConfiguration string
AllowUnusedImports bool
InteractiveModule string
NativePackages *nativepackage.Catalog
}
type SourceUnit ¶
type SourceUnit struct {
Filename string
Source []byte
ModulePath string
Package string
PackageAliases map[string]string
CompilerOwned bool
Official bool
ExternalPackage bool
// TestRegistration moves top-level test suites into this generated
// function. An empty value keeps ordinary source behavior.
TestRegistration string
// MainReplacement disables automatic application startup while preserving
// the rest of a module for a test build.
MainReplacement string
}