goexpression

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jul 17, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrContainerFuncNotFound = errors.New("parser error: templ container function not found")
	ErrExpectedNodeNotFound  = errors.New("parser error: expected node not found")
)

Functions

func Case

func Case(content string) (start, end int, err error)

func Expression

func Expression(src string) (start, end int, err error)

func For

func For(content string) (start, end int, err error)

func Func

func Func(content string) (name, expr string, err error)

Func returns the Go code up to the opening brace of the function body.

func If

func If(content string) (start, end int, err error)

func SliceArgs

func SliceArgs(content string) (expr string, err error)

func Switch

func Switch(content string) (start, end int, err error)

func TemplExpression

func TemplExpression(src string) (start, end int, err error)

Types

type ErrUnbalanced

type ErrUnbalanced struct {
	Token token.Token
}

func (ErrUnbalanced) Error

func (e ErrUnbalanced) Error() string

type ExpressionParser

type ExpressionParser struct {
	Stack    Stack[token.Token]
	End      int
	Previous token.Token
	Fns      Stack[int] // Stack of function depths.
}

func NewExpressionParser

func NewExpressionParser() *ExpressionParser

func (*ExpressionParser) Insert

func (ep *ExpressionParser) Insert(
	pos token.Pos,
	tok token.Token,
	lit string,
) (stop bool, err error)

type Extractor

type Extractor func(body []ast.Stmt) (start, end int, err error)

Extract a Go expression from the content. The Go expression starts at "start" and ends at "end". The reader should skip until "length" to pass over the expression and into the next logical block.

type Stack

type Stack[T any] []T

func (*Stack[T]) Peek

func (s *Stack[T]) Peek() (v T)

func (*Stack[T]) Pop

func (s *Stack[T]) Pop() (v T)

func (*Stack[T]) Push

func (s *Stack[T]) Push(v T)

Jump to

Keyboard shortcuts

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