/
startup.go
27 lines (23 loc) · 918 Bytes
/
startup.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package program
import (
goast "go/ast"
)
// AppendStartupStatement adds a new statement that must be executed when the
// program starts up before any other code. These are required to setup state
// for global variables like STDIN that might be referenced by the program.
func (p *Program) AppendStartupStatement(stmt goast.Stmt) {
p.startupStatements = append(p.startupStatements, stmt)
}
// AppendStartupExpr is a convienience method for adding a new startup statement
// that is in the form of an expression.
func (p *Program) AppendStartupExpr(e goast.Expr) {
p.AppendStartupStatement(&goast.ExprStmt{
X: e,
})
}
// StartupStatements returns the statements that will be executed before the
// program starts. These are required to setup state for global variables like
// STDIN that might be referenced by the program.
func (p *Program) StartupStatements() []goast.Stmt {
return p.startupStatements
}