optimize

package
v0.0.0-...-cb985d4 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FlattenStatement

func FlattenStatement(statement bind.Boundstatement) *bind.BoundBlockStatements

func Lower

func Lower(statement bind.Boundstatement) *bind.BoundBlockStatements

Types

type BasicRewrite

type BasicRewrite struct {
}

func (*BasicRewrite) RewriteAssignmentExpression

func (b *BasicRewrite) RewriteAssignmentExpression(w Rewrite, node *bind.BoundAssignmentExpression) bind.BoundExpression

func (*BasicRewrite) RewriteBinaryExpression

func (b *BasicRewrite) RewriteBinaryExpression(w Rewrite, node *bind.BoundBinaryExpression) bind.BoundExpression

func (*BasicRewrite) RewriteBlockStatement

func (b *BasicRewrite) RewriteBlockStatement(w Rewrite, node *bind.BoundBlockStatements) bind.Boundstatement

func (*BasicRewrite) RewriteCallExpression

func (b *BasicRewrite) RewriteCallExpression(w Rewrite, node *bind.BoundCallExpression) bind.BoundExpression

func (*BasicRewrite) RewriteCondGotoStatement

func (b *BasicRewrite) RewriteCondGotoStatement(w Rewrite, node *bind.ConditionalGotoStatement) bind.Boundstatement

func (*BasicRewrite) RewriteExpression

func (b *BasicRewrite) RewriteExpression(w Rewrite, node bind.BoundExpression) bind.BoundExpression

func (*BasicRewrite) RewriteExpressionStatement

func (b *BasicRewrite) RewriteExpressionStatement(w Rewrite, node *bind.BoundExpressStatements) bind.Boundstatement

func (*BasicRewrite) RewriteForStatement

func (b *BasicRewrite) RewriteForStatement(w Rewrite, node *bind.BoundForStatements) bind.Boundstatement

func (*BasicRewrite) RewriteGotoStatement

func (b *BasicRewrite) RewriteGotoStatement(w Rewrite, node *bind.GotoStatement) bind.Boundstatement

func (*BasicRewrite) RewriteIfStatement

func (b *BasicRewrite) RewriteIfStatement(w Rewrite, node *bind.BoundIfStatements) bind.Boundstatement

func (*BasicRewrite) RewriteLabelStatement

func (b *BasicRewrite) RewriteLabelStatement(w Rewrite, node *bind.LabelStatement) bind.Boundstatement

func (*BasicRewrite) RewriteLiteralExpression

func (b *BasicRewrite) RewriteLiteralExpression(w Rewrite, node *bind.BoundLiteralExpression) bind.BoundExpression

func (*BasicRewrite) RewriteReturnStatement

func (b *BasicRewrite) RewriteReturnStatement(w Rewrite, node *bind.BoundReturnStatements) bind.Boundstatement

func (*BasicRewrite) RewriteStatement

func (b *BasicRewrite) RewriteStatement(w Rewrite, node bind.Boundstatement) bind.Boundstatement

func (*BasicRewrite) RewriteUnaryExpression

func (b *BasicRewrite) RewriteUnaryExpression(w Rewrite, node *bind.BoundUnaryExpression) bind.BoundExpression

func (*BasicRewrite) RewriteUnitExpression

func (b *BasicRewrite) RewriteUnitExpression(w Rewrite, node *bind.BoundUnitExpression) bind.BoundExpression

func (*BasicRewrite) RewriteVariableDeclaration

func (b *BasicRewrite) RewriteVariableDeclaration(w Rewrite, node *bind.BoundVariableDeclaration) bind.Boundstatement

func (*BasicRewrite) RewriteVariableExpression

func (b *BasicRewrite) RewriteVariableExpression(w Rewrite, node *bind.BoundVariableExpression) bind.BoundExpression

func (*BasicRewrite) RewriteWhileStatement

func (b *BasicRewrite) RewriteWhileStatement(w Rewrite, node *bind.BoundWhileStatements) bind.Boundstatement

type LowerRewrite

type LowerRewrite struct {
	Rewrite
	// contains filtered or unexported fields
}

func (*LowerRewrite) GenerateLabel

func (l *LowerRewrite) GenerateLabel() *bind.BoundLabel

func (*LowerRewrite) RewriteForStatement

func (l *LowerRewrite) RewriteForStatement(w Rewrite, node *bind.BoundForStatements) bind.Boundstatement

func (*LowerRewrite) RewriteIfStatement

func (l *LowerRewrite) RewriteIfStatement(w Rewrite, node *bind.BoundIfStatements) bind.Boundstatement

func (*LowerRewrite) RewriteWhileStatement

func (l *LowerRewrite) RewriteWhileStatement(w Rewrite, node *bind.BoundWhileStatements) bind.Boundstatement

type Rewrite

type Rewrite interface {
	RewriteStatement
	RewriteExpression
}

type RewriteExpression

type RewriteExpression interface {
	RewriteExpression(w Rewrite, node bind.BoundExpression) bind.BoundExpression
	RewriteLiteralExpression(w Rewrite, node *bind.BoundLiteralExpression) bind.BoundExpression
	RewriteVariableExpression(w Rewrite, node *bind.BoundVariableExpression) bind.BoundExpression
	RewriteAssignmentExpression(w Rewrite, node *bind.BoundAssignmentExpression) bind.BoundExpression
	RewriteUnaryExpression(w Rewrite, node *bind.BoundUnaryExpression) bind.BoundExpression
	RewriteBinaryExpression(w Rewrite, node *bind.BoundBinaryExpression) bind.BoundExpression
	RewriteCallExpression(w Rewrite, node *bind.BoundCallExpression) bind.BoundExpression
	RewriteUnitExpression(w Rewrite, node *bind.BoundUnitExpression) bind.BoundExpression
}

type RewriteStatement

type RewriteStatement interface {
	RewriteStatement(w Rewrite, node bind.Boundstatement) bind.Boundstatement
	RewriteBlockStatement(w Rewrite, node *bind.BoundBlockStatements) bind.Boundstatement
	RewriteVariableDeclaration(w Rewrite, node *bind.BoundVariableDeclaration) bind.Boundstatement
	RewriteIfStatement(w Rewrite, node *bind.BoundIfStatements) bind.Boundstatement
	RewriteWhileStatement(w Rewrite, node *bind.BoundWhileStatements) bind.Boundstatement
	RewriteForStatement(w Rewrite, node *bind.BoundForStatements) bind.Boundstatement
	RewriteLabelStatement(w Rewrite, node *bind.LabelStatement) bind.Boundstatement
	RewriteGotoStatement(w Rewrite, node *bind.GotoStatement) bind.Boundstatement
	RewriteCondGotoStatement(w Rewrite, node *bind.ConditionalGotoStatement) bind.Boundstatement
	RewriteReturnStatement(w Rewrite, node *bind.BoundReturnStatements) bind.Boundstatement
	RewriteExpressionStatement(w Rewrite, node *bind.BoundExpressStatements) bind.Boundstatement
}

Jump to

Keyboard shortcuts

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