ttcn3

package
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2023 License: BSD-3-Clause Imports: 11 Imported by: 0

Documentation

Overview

Package ttcn3 provides routines for evaluating TTCN-3 source code.

This package is in alpha stage, as we are still figuring out requirements and interfaces.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func JoinNames added in v0.18.0

func JoinNames(names ...string) string

JoinNames joins a list of non-empty names with a dot.

func ModuleName added in v0.18.0

func ModuleName(s string) string

ModuleName returns the module name part of a name string or an empty string if there is no module name.

Types

type DB added in v0.13.0

type DB struct {
	// Names is a map from symbol name to a list of files that define the symbol.
	Names map[string]map[string]bool

	// Uses maps from symbol name to a list of files that use the symbol.
	Uses map[string]map[string]bool

	// Modules maps from module name to file path.
	Modules map[string]map[string]bool
	// contains filtered or unexported fields
}

DB implements database for querying TTCN-3 source code bases.

func (*DB) Index added in v0.13.0

func (db *DB) Index(files ...string)

Index parses TTCN-3 source files and adds names and dependencies to the database.

func (*DB) VisibleModules added in v0.14.0

func (db *DB) VisibleModules(id string, mod *syntax.Module) []*Node

VisibleModules returns a list of modules that may contain the given symbol. First parameter id specifies the symbol to look for and second parameter module specifies where the imports come from.

type Node added in v0.18.0

type Node struct {
	*syntax.Ident
	syntax.Node
	*Tree
	Next *Node
}

func Definitions added in v0.14.0

func Definitions(id string, n syntax.Node, t *Tree) []*Node

func Inspect added in v0.16.2

func Inspect(files []string, fn func(*Tree) []*Node) ([]*Node, error)

Inspect the AST and return a list of all the definitions found by fn.

type NodeEvent added in v0.16.2

type NodeEvent struct {
	// Kind is the type of an node event (AddToken, OpenFooBar, CloseFooBar).
	Kind string `json:"kind"`

	// Text is the text of a AddToken event.
	Text string `json:"text,omitempty"`

	// Offset is the position of the first character belonging to the node.
	Offs int `json:"offs"`

	// End is the position of the first character immediately after the node.
	Len int `json:"len"`

	// Other is the index of the matching node event.
	Other int `json:"other,omitempty"`
}

type Scope added in v0.13.0

type Scope struct {
	syntax.Node
	Tree  *Tree
	Names map[string]*Node
}

func NewScope added in v0.13.0

func NewScope(n syntax.Node, tree *Tree) *Scope

NewScope builts and populares a new scope from the given syntax node. NewScope returns nil if no valid scope could be built.

func (*Scope) Insert added in v0.13.0

func (scp *Scope) Insert(n syntax.Node, id *syntax.Ident)

func (*Scope) Lookup added in v0.14.0

func (scp *Scope) Lookup(name string) []*Node

Lookup returns a list of defintions for the given identifier. Lookup may be called with nil as receiver.

type Source added in v0.16.2

type Source struct {
	Filename string
	Events   []NodeEvent `json:"events"`
}

type Tree

type Tree struct {
	*syntax.Root
	Names map[string]bool
	Uses  map[string]bool
	Err   error
	// contains filtered or unexported fields
}

Tree represents the TTCN-3 syntax tree, usually of a file.

func Parse added in v0.11.0

func Parse(src string) *Tree

Parse parses a string and returns a syntax tree.

func ParseFile

func ParseFile(path string) *Tree

ParseFile parses a file and returns a syntax tree.

func (*Tree) Components added in v0.12.0

func (t *Tree) Components() []*Node

func (*Tree) Controls added in v0.12.0

func (t *Tree) Controls() []*Node

func (*Tree) ExprAt added in v0.14.0

func (t *Tree) ExprAt(pos int) syntax.Expr

ExprAt returns the expression at given position.

func (*Tree) Filename added in v0.14.0

func (t *Tree) Filename() string

Filename returns the filename of the file that was parsed.

func (*Tree) Funcs added in v0.12.0

func (t *Tree) Funcs() []*Node

func (*Tree) IdentifierAt added in v0.18.0

func (t *Tree) IdentifierAt(line, col int) syntax.Expr

IdentifierAt returns the primary expression enclosing the identifer at the given position.

func (*Tree) Imports added in v0.12.0

func (t *Tree) Imports() []*Node

func (*Tree) Lookup added in v0.14.0

func (t *Tree) Lookup(n syntax.Expr) []*Node

Lookup returns the definitions of the given expression. For handling imports and multiple modules, use LookupWithDB.

func (*Tree) LookupWithDB added in v0.14.0

func (t *Tree) LookupWithDB(n syntax.Expr, db *DB) []*Node

LookupWithDB returns the definitions of the given expression, but uses the database for import resoltion.

func (*Tree) ModuleOf added in v0.14.0

func (t *Tree) ModuleOf(n syntax.Node) *syntax.Module

ModuleOf returns the module of the given node, by walking up the tree.

func (*Tree) ModulePars added in v0.12.0

func (t *Tree) ModulePars() []*Node

func (*Tree) Modules added in v0.9.6

func (t *Tree) Modules() []*Node

func (*Tree) ParentOf added in v0.14.0

func (t *Tree) ParentOf(n syntax.Node) syntax.Node

ParentOf returns the parent of the given node.

func (*Tree) Ports added in v0.12.0

func (t *Tree) Ports() []*Node

func (*Tree) QualifiedName added in v0.16.2

func (t *Tree) QualifiedName(n syntax.Node) string

Returns the qualified name of the given node.

func (*Tree) Tags added in v0.16.2

func (tree *Tree) Tags() []syntax.Node

func (*Tree) Tests added in v0.18.0

func (t *Tree) Tests() []*Node

Directories

Path Synopsis
Package ast provides TTCN-3 syntax tree nodes and functions for tree traversal.
Package ast provides TTCN-3 syntax tree nodes and functions for tree traversal.
Package types implements a type system for TTCN-3.
Package types implements a type system for TTCN-3.
v2
printer
Package printer implements pretty printers for TTCN-3 source code.
Package printer implements pretty printers for TTCN-3 source code.
syntax/internal/gen
This program reads the TTCN-3 grammar file and generates a parser for it.
This program reads the TTCN-3 grammar file and generates a parser for it.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL