Documentation
¶
Overview ¶
Package gen turns a notebook's code cells into a Go program: the worker the kernel compiles and drives.
Each cell becomes a function. The names a cell defines at its top level become package-level variables — so every cell, and every function, can read them, and their values outlive the call — which needs their types: gen type-checks the cells one by one in dependency order to learn them. The cells' own text is kept, edited in place (":=" becomes "= ", a final expression is wrapped in a call that shows it), under //line directives that point back into the notebook, so the compiler's errors and a panic's stack name the notebook's lines.
Index ¶
Constants ¶
const RuntimePath = "github.com/go-notebook/notebook/runtime"
RuntimePath is the import path of the package the program links.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Code ¶
Code is one code cell: its source and the 1-based line of the notebook where that source starts.
type Diag ¶
type Diag struct {
Cell int // -1 when it is not inside a cell
Line, Col int // in the notebook
Msg string
}
Diag is a problem in the notebook, at a cell and a position in it.
type Program ¶
type Program struct {
Source []byte
Vars []Var
Graph *analysis.Graph
// Imports maps every package the program imports (but the runtime) to
// the name it is imported under.
Imports map[string]string
// Diags are the notebook's errors. A program with diagnostics is still
// returned, but will not compile.
Diags []Diag
}
Program is a generated worker.