Compiler takes in a target
This commit is contained in:
parent
ad3d2e626d
commit
8f0e8955eb
@ -22,7 +22,11 @@ func (this *Compiler) CompileUnit (address entity.Address) error {
|
|||||||
_, err = this.AnalyzeUnit(&semanticTree, path, false)
|
_, err = this.AnalyzeUnit(&semanticTree, path, false)
|
||||||
if err != nil { return err }
|
if err != nil { return err }
|
||||||
|
|
||||||
irModule, err := native.NativeTarget().Generate(semanticTree)
|
if this.Target == nil {
|
||||||
|
target := native.NativeTarget()
|
||||||
|
this.Target = &target
|
||||||
|
}
|
||||||
|
irModule, err := this.Target.Generate(semanticTree)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return this.bug(err)
|
return this.bug(err)
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import "git.tebibyte.media/fspl/fspl/cli"
|
|||||||
import "git.tebibyte.media/fspl/fspl/lexer"
|
import "git.tebibyte.media/fspl/fspl/lexer"
|
||||||
import "git.tebibyte.media/fspl/fspl/entity"
|
import "git.tebibyte.media/fspl/fspl/entity"
|
||||||
import "git.tebibyte.media/fspl/fspl/analyzer"
|
import "git.tebibyte.media/fspl/fspl/analyzer"
|
||||||
|
import "git.tebibyte.media/fspl/fspl/generator"
|
||||||
import "git.tebibyte.media/fspl/fspl/parser/fspl"
|
import "git.tebibyte.media/fspl/fspl/parser/fspl"
|
||||||
import "git.tebibyte.media/fspl/fspl/parser/meta"
|
import "git.tebibyte.media/fspl/fspl/parser/meta"
|
||||||
import ferrors "git.tebibyte.media/fspl/fspl/errors"
|
import ferrors "git.tebibyte.media/fspl/fspl/errors"
|
||||||
@ -18,6 +19,7 @@ type Compiler struct {
|
|||||||
*Resolver
|
*Resolver
|
||||||
cli.Logger
|
cli.Logger
|
||||||
|
|
||||||
|
Target *generator.Target
|
||||||
Output string
|
Output string
|
||||||
Optimization string
|
Optimization string
|
||||||
Filetype Filetype
|
Filetype Filetype
|
||||||
|
Loading…
Reference in New Issue
Block a user