Documentation
¶
Overview ¶
Package driver contains all the logic to build a driver.
Index ¶
Constants ¶
View Source
const ( ModeNative = Mode(1 << iota) ModePreprocessed ModeAnnotated ModeSemantic )
View Source
const ModeDefault = ModeSemantic
Variables ¶
This section is empty.
Functions ¶
func MultiError ¶
Types ¶
type DriverModule ¶
DriverModule is an interface for a driver instance.
func NewDriverFrom ¶
func NewDriverFrom(d Native, m *manifest.Manifest, t Transforms) (DriverModule, error)
NewDriver returns a new Driver instance based on the given ObjectToNode and list of transformers.
type ErrPartialParse ¶
ErrPartialParse is returned when driver was not able to parse the whole source file.
type Transforms ¶
type Transforms struct {
// Namespace for this language driver
Namespace string
// Preprocess transforms normalizes native AST.
// It usually includes:
// * changing type key to uast.KeyType
// * changing token key to uast.KeyToken
// * restructure positional information
Preprocess []transformer.Transformer
// Normalize converts known AST structures to high-level AST representation (UAST).
Normalize []transformer.Transformer
// Annotations transforms annotates the tree with roles.
Annotations []transformer.Transformer
// Code transforms are applied directly after Native and provide a way
// to extract more information from source files, fix positional info, etc.
Code []transformer.CodeTransformer
}
Transforms describes a set of AST transformations this driver requires.
Directories
¶
| Path | Synopsis |
|---|---|
|
discovery
Package discovery package implements helpers for clients to discover language drivers supported by Babelfish.
|
Package discovery package implements helpers for clients to discover language drivers supported by Babelfish. |
|
internal
command
|
|
|
jsonlines
Package json lines mimicks standard library json Encoder and Decoder, but to encode and decode one JSON per line.
|
Package json lines mimicks standard library json Encoder and Decoder, but to encode and decode one JSON per line. |
Click to show internal directories.
Click to hide internal directories.