visitor

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Jul 9, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetStdFunctions added in v0.1.5

func GetStdFunctions() map[string]Module

Returns a map of all the standard library functions

Types

type Argument

type Argument struct {
	Name string
	Type string
}

Represents a R2D2 function argument/parameter whatever you want to call it

type Function

type Function struct {
	Name      string
	Arguments map[string]Argument
	Variables map[string]Variable
	Functions map[string]Function
	// contains filtered or unexported fields
}

Represents a R2D2 function

type Global

type Global struct {
	Name  string
	Value any
	Type  string
}

Represents a R2D2 global variable - doesnt really exist

type Interface

type Interface struct {
	Name      string
	Variables map[string]Variable
	Functions map[string]Function
}

Represents a R2D2 interface - TODO: didnt really implement it, doing it now

type Module

type Module struct {
	Name       string
	Implements Interface
	Functions  map[string]Function
	Variables  map[string]Variable
	Types      map[string]any
}

Represents a R2D2 module

func (Module) Exports

func (m Module) Exports() []string

Returns a list of the exported function and variable names for a given module

type R2D2Visitor

type R2D2Visitor struct {
	parser.BaseR2D2Visitor

	JsCode string

	ErrorCollector *errors.ErrorCollector
	// contains filtered or unexported fields
}

Represents the R2D2 visitor structure

func NewR2D2Visitor

func NewR2D2Visitor(errorCollector *errors.ErrorCollector) *R2D2Visitor

Creates a new R2D2 visitor instance

func (*R2D2Visitor) LoadStdModules added in v0.1.5

func (v *R2D2Visitor) LoadStdModules()

Loads the standard library functions from Deno into multiple std modules

func (*R2D2Visitor) RegisterInterfaceNames added in v0.1.8

func (v *R2D2Visitor) RegisterInterfaceNames(ctx *parser.ProgramContext)

func (*R2D2Visitor) VisitAdditiveExpression

func (v *R2D2Visitor) VisitAdditiveExpression(ctx *parser.AdditiveExpressionContext) any

func (*R2D2Visitor) VisitArrayAccessExpression added in v0.1.1

func (v *R2D2Visitor) VisitArrayAccessExpression(ctx *parser.ArrayAccessExpressionContext) any

func (*R2D2Visitor) VisitArrayLiteral

func (v *R2D2Visitor) VisitArrayLiteral(ctx *parser.ArrayLiteralContext) any

func (*R2D2Visitor) VisitAssignment

func (v *R2D2Visitor) VisitAssignment(ctx *parser.AssignmentContext) any

VisitAssignment handles assignments

func (*R2D2Visitor) VisitAssignmentDeclaration added in v0.1.0

func (v *R2D2Visitor) VisitAssignmentDeclaration(ctx *parser.AssignmentDeclarationContext) any

func (*R2D2Visitor) VisitBlock

func (v *R2D2Visitor) VisitBlock(ctx *parser.BlockContext) any

func (*R2D2Visitor) VisitBreakStatement added in v0.1.0

func (v *R2D2Visitor) VisitBreakStatement(ctx *parser.BreakStatementContext) any

func (*R2D2Visitor) VisitChildren

func (v *R2D2Visitor) VisitChildren(node antlr.RuleNode) any

func (*R2D2Visitor) VisitCicleControl

func (v *R2D2Visitor) VisitCicleControl(ctx *parser.CicleControlContext) any

func (*R2D2Visitor) VisitComparisonExpression

func (v *R2D2Visitor) VisitComparisonExpression(ctx *parser.ComparisonExpressionContext) any

func (*R2D2Visitor) VisitContinueStatement added in v0.1.0

func (v *R2D2Visitor) VisitContinueStatement(ctx *parser.ContinueStatementContext) any

func (*R2D2Visitor) VisitDeclaration

func (v *R2D2Visitor) VisitDeclaration(ctx *parser.DeclarationContext) any

func (*R2D2Visitor) VisitExpression

func (v *R2D2Visitor) VisitExpression(ctx *parser.ExpressionContext) any

func (*R2D2Visitor) VisitExpressionStatement added in v0.1.0

func (v *R2D2Visitor) VisitExpressionStatement(ctx *parser.ExpressionStatementContext) any

func (*R2D2Visitor) VisitForStatement

func (v *R2D2Visitor) VisitForStatement(ctx *parser.ForStatementContext) any

func (*R2D2Visitor) VisitFunctionCall

func (v *R2D2Visitor) VisitFunctionCall(ctx *parser.FunctionCallContext) any

VisitFunctionCall handles function calls

func (*R2D2Visitor) VisitFunctionCallExpression added in v0.1.1

func (v *R2D2Visitor) VisitFunctionCallExpression(ctx *parser.FunctionCallExpressionContext) any

func (*R2D2Visitor) VisitFunctionCallStatement

func (v *R2D2Visitor) VisitFunctionCallStatement(ctx *parser.FunctionCallStatementContext) any

func (*R2D2Visitor) VisitFunctionDeclaration

func (v *R2D2Visitor) VisitFunctionDeclaration(ctx *parser.FunctionDeclarationContext) any

func (*R2D2Visitor) VisitGlobalDeclaration

func (v *R2D2Visitor) VisitGlobalDeclaration(ctx *parser.GlobalDeclarationContext) any

func (*R2D2Visitor) VisitIdentifierExpression added in v0.1.1

func (v *R2D2Visitor) VisitIdentifierExpression(ctx *parser.IdentifierExpressionContext) any

func (*R2D2Visitor) VisitIfStatement

func (v *R2D2Visitor) VisitIfStatement(ctx *parser.IfStatementContext) any

VisitIfStatement handles if statements

func (*R2D2Visitor) VisitImportDeclaration

func (v *R2D2Visitor) VisitImportDeclaration(ctx *parser.ImportDeclarationContext) any

func (*R2D2Visitor) VisitInterfaceDeclaration added in v0.1.0

func (v *R2D2Visitor) VisitInterfaceDeclaration(ctx *parser.InterfaceDeclarationContext) any

func (*R2D2Visitor) VisitJsStatement added in v0.1.1

func (v *R2D2Visitor) VisitJsStatement(ctx *parser.JsStatementContext) any

func (*R2D2Visitor) VisitLiteralExpression added in v0.1.1

func (v *R2D2Visitor) VisitLiteralExpression(ctx *parser.LiteralExpressionContext) any

func (*R2D2Visitor) VisitLogicalExpression

func (v *R2D2Visitor) VisitLogicalExpression(ctx *parser.LogicalExpressionContext) any

func (*R2D2Visitor) VisitLoopStatement

func (v *R2D2Visitor) VisitLoopStatement(ctx *parser.LoopStatementContext) any

func (*R2D2Visitor) VisitModuleDeclaration

func (v *R2D2Visitor) VisitModuleDeclaration(ctx *parser.ModuleDeclarationContext) any

func (*R2D2Visitor) VisitMultiplicativeExpression

func (v *R2D2Visitor) VisitMultiplicativeExpression(ctx *parser.MultiplicativeExpressionContext) any

func (*R2D2Visitor) VisitObjectLiteral added in v0.2.2

func (v *R2D2Visitor) VisitObjectLiteral(ctx *parser.ObjectLiteralContext) any

func (*R2D2Visitor) VisitParenthesisExpression added in v0.1.1

func (v *R2D2Visitor) VisitParenthesisExpression(ctx *parser.ParenthesisExpressionContext) any

func (*R2D2Visitor) VisitProgram

func (v *R2D2Visitor) VisitProgram(ctx *parser.ProgramContext) any

func (*R2D2Visitor) VisitReturnStatement

func (v *R2D2Visitor) VisitReturnStatement(ctx *parser.ReturnStatementContext) any

func (*R2D2Visitor) VisitStatement

func (v *R2D2Visitor) VisitStatement(ctx *parser.StatementContext) any

func (*R2D2Visitor) VisitSwitchStatement

func (v *R2D2Visitor) VisitSwitchStatement(ctx *parser.SwitchStatementContext) any

VisitSwitchStatement handles switch statements

func (*R2D2Visitor) VisitTypeDeclaration added in v0.1.0

func (v *R2D2Visitor) VisitTypeDeclaration(ctx *parser.TypeDeclarationContext) any

func (*R2D2Visitor) VisitUnaryExpression

func (v *R2D2Visitor) VisitUnaryExpression(ctx *parser.UnaryExpressionContext) any

func (*R2D2Visitor) VisitVariableDeclaration added in v0.1.0

func (v *R2D2Visitor) VisitVariableDeclaration(ctx *parser.VariableDeclarationContext) any

func (*R2D2Visitor) VisitWhileStatement

func (v *R2D2Visitor) VisitWhileStatement(ctx *parser.WhileStatementContext) any

VisitWhileStatement handles while statements

type SymbolTable

type SymbolTable struct {
	Modules    map[string]Module
	Interfaces map[string]Interface
	Globals    map[string]Global
}

Represents the symbol table for the R2D2 visitor

type Variable

type Variable struct {
	Name  string
	Value any
	Type  string
	// contains filtered or unexported fields
}

Represents a R2D2 variable

Jump to

Keyboard shortcuts

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