semantic_analysis

package
v0.0.0-...-6aa2a36 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2021 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildBinaryOperationAst

func BuildBinaryOperationAst(src parsetree.BinaryExpression) ast.BinaryOp

func BuildBlockAst

func BuildBlockAst(src parsetree.Block) ast.BlockElement

func BuildExpressionAst

func BuildExpressionAst(src parsetree.Expression) ast.Expression

func BuildLinkAst

func BuildLinkAst(src parsetree.Link) ast.Link

func BuildLiteralAst

func BuildLiteralAst(src parsetree.Literal) ast.Literal

func BuildNodeAst

func BuildNodeAst(src parsetree.Node) ast.Node

func BuildScriptAst

func BuildScriptAst(src parsetree.Script) ast.Script

func BuildStatementAst

func BuildStatementAst(src parsetree.Statement) ast.Statement

func BuildUnaryOperationAst

func BuildUnaryOperationAst(src parsetree.UnaryExpression) ast.UnaryOp

func ConstantFoldBinaryOperation

func ConstantFoldBinaryOperation(node ast.BinaryOp) (foldedNode ast.Expression, isConstExpr bool)

func ConstantFoldCodeBlock

func ConstantFoldCodeBlock(node ast.CodeBlock) ast.CodeBlock

func ConstantFoldExpression

func ConstantFoldExpression(node ast.Expression) (foldedNode ast.Expression, isConstExpr bool)

func ConstantFoldLiteral

func ConstantFoldLiteral(node ast.Literal) (foldedNode ast.Literal, isConstExpr bool)

func ConstantFoldNode

func ConstantFoldNode(node ast.Node) ast.Node

func ConstantFoldParagraph

func ConstantFoldParagraph(node ast.Paragraph) (foldedNode ast.Paragraph)

func ConstantFoldScript

func ConstantFoldScript(node ast.Script) ast.Script

func ConstantFoldStatement

func ConstantFoldStatement(node ast.Statement) ast.Statement

func ConstantFoldUnaryOperation

func ConstantFoldUnaryOperation(node ast.UnaryOp) (foldedNode ast.Expression, isConstExpr bool)

func FindNodeNamesInBlock

func FindNodeNamesInBlock(b ast.BlockElement) []ast.Symbol

func FindNodeNamesinStatement

func FindNodeNamesinStatement(s ast.Statement) []ast.Symbol

func PruneCodeBlock

func PruneCodeBlock(block ast.CodeBlock) (prunedBlock ast.CodeBlock, endsNode bool)

func PruneNode

func PruneNode(node ast.Node) ast.Node

func PruneScript

func PruneScript(script ast.Script) ast.Script

func PruneStatement

func PruneStatement(stmt ast.Statement) (prunedStatement ast.Statement, endsNode bool)

func PruneUnreachableNodes

func PruneUnreachableNodes(nodes []ast.Node) []ast.Node

Types

type EffectiveType

type EffectiveType int
const (
	Error EffectiveType = iota
	Variant
	Number
	Boolean
	String
	Null
	Void
)

func TypeCheckBinary

func TypeCheckBinary(op ast.BinaryOp) EffectiveType

func TypeCheckExpression

func TypeCheckExpression(expr ast.Expression) EffectiveType

func TypeCheckLiteral

func TypeCheckLiteral(lit ast.Literal) EffectiveType

func TypeCheckScript

func TypeCheckScript(script ast.Script) EffectiveType

func TypeCheckStatement

func TypeCheckStatement(stmt ast.Statement, root ast.Script) EffectiveType

func TypeCheckUnary

func TypeCheckUnary(op ast.UnaryOp) EffectiveType

Jump to

Keyboard shortcuts

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