Documentation
¶
Index ¶
- Constants
- Variables
- func ArithmeticOperators(script string) interface{}
- func GetInternalFunction(name string) func(v *Visitor, ctx *parser.FunctionCallContext) interface{}
- func JSON(v *Visitor, ctx *parser.FunctionCallContext) interface{}
- func JSONGet(v *Visitor, ctx *parser.FunctionCallContext) interface{}
- type ArrayObject
- type BreakObject
- type Compiler
- type ContinueObject
- type LeftValue
- type ReturnObject
- type SemanticResolver
- func (s *SemanticResolver) ExitExpr(ctx *parser.ExprContext)
- func (s *SemanticResolver) ExitFunctionDeclaration(ctx *parser.FunctionDeclarationContext)
- func (s *SemanticResolver) ExitStmReturn(ctx *parser.StmReturnContext)
- func (s *SemanticResolver) ExitVariableDeclarator(ctx *parser.VariableDeclaratorContext)
- type Visitor
- func (v *Visitor) Visit(tree antlr.ParseTree) interface{}
- func (v *Visitor) VisitArrayInitializer(ctx *parser.ArrayInitializerContext) interface{}
- func (v *Visitor) VisitBlock(ctx *parser.BlockContext) interface{}
- func (v *Visitor) VisitBlockStm(ctx *parser.BlockStmContext) interface{}
- func (v *Visitor) VisitBlockStms(ctx *parser.BlockStmsContext) interface{}
- func (v *Visitor) VisitBlockVarDeclar(ctx *parser.BlockVarDeclarContext) interface{}
- func (v *Visitor) VisitClassBody(ctx *parser.ClassBodyContext) interface{}
- func (v *Visitor) VisitClassBodyDeclaration(ctx *parser.ClassBodyDeclarationContext) interface{}
- func (v *Visitor) VisitClassDeclaration(ctx *parser.ClassDeclarationContext) interface{}
- func (v *Visitor) VisitExpr(ctx *parser.ExprContext) interface{}
- func (v *Visitor) VisitExpressionList(ctx *parser.ExpressionListContext) interface{}
- func (v *Visitor) VisitFieldDeclaration(ctx *parser.FieldDeclarationContext) interface{}
- func (v *Visitor) VisitForControl(ctx *parser.ForControlContext) interface{}
- func (v *Visitor) VisitForInit(ctx *parser.ForInitContext) interface{}
- func (v *Visitor) VisitFunctionBody(ctx *parser.FunctionBodyContext) interface{}
- func (v *Visitor) VisitFunctionCall(ctx *parser.FunctionCallContext) interface{}
- func (v *Visitor) VisitFunctionDeclaration(ctx *parser.FunctionDeclarationContext) interface{}
- func (v *Visitor) VisitLiteral(ctx *parser.LiteralContext) interface{}
- func (v *Visitor) VisitMemberDeclaration(ctx *parser.MemberDeclarationContext) interface{}
- func (v *Visitor) VisitParExpression(ctx *parser.ParExpressionContext) interface{}
- func (v *Visitor) VisitParse(ctx *parser.ParseContext) interface{}
- func (v *Visitor) VisitPrimary(ctx *parser.PrimaryContext) interface{}
- func (v *Visitor) VisitProg(ctx *parser.ProgContext) interface{}
- func (v *Visitor) VisitStmBlockLabel(ctx *parser.StmBlockLabelContext) interface{}
- func (v *Visitor) VisitStmBreak(ctx *parser.StmBreakContext) interface{}
- func (v *Visitor) VisitStmContinue(ctx *parser.StmContinueContext) interface{}
- func (v *Visitor) VisitStmExpr(ctx *parser.StmExprContext) interface{}
- func (v *Visitor) VisitStmFor(ctx *parser.StmForContext) interface{}
- func (v *Visitor) VisitStmIfElse(ctx *parser.StmIfElseContext) interface{}
- func (v *Visitor) VisitStmReturn(ctx *parser.StmReturnContext) interface{}
- func (v *Visitor) VisitStmWhile(ctx *parser.StmWhileContext) interface{}
- func (v *Visitor) VisitVariableDeclarator(ctx *parser.VariableDeclaratorContext) interface{}
- func (v *Visitor) VisitVariableDeclaratorId(ctx *parser.VariableDeclaratorIdContext) interface{}
- func (v *Visitor) VisitVariableDeclarators(ctx *parser.VariableDeclaratorsContext) interface{}
- func (v *Visitor) VisitVariableInitializer(ctx *parser.VariableInitializerContext) interface{}
Constants ¶
View Source
const (
RuntimeError = "RuntimeError"
)
Variables ¶
View Source
var ( BreakObjectInstance = &BreakObject{} ContinueObjectInstance = &ContinueObject{} )
View Source
var Args []string
Functions ¶
func ArithmeticOperators ¶
func ArithmeticOperators(script string) interface{}
func GetInternalFunction ¶ added in v0.0.12
func GetInternalFunction(name string) func(v *Visitor, ctx *parser.FunctionCallContext) interface{}
func JSON ¶ added in v0.0.12
func JSON(v *Visitor, ctx *parser.FunctionCallContext) interface{}
func JSONGet ¶ added in v0.0.12
func JSONGet(v *Visitor, ctx *parser.FunctionCallContext) interface{}
Types ¶
type ArrayObject ¶ added in v0.0.6
type ArrayObject struct {
// contains filtered or unexported fields
}
func NewArrayObject ¶ added in v0.0.6
func NewArrayObject(left *LeftValue, index int) *ArrayObject
NewArrayObject 数组对象
func (*ArrayObject) GetIndex ¶ added in v0.0.6
func (a *ArrayObject) GetIndex() int
func (*ArrayObject) GetIndexValue ¶ added in v0.0.6
func (a *ArrayObject) GetIndexValue() interface{}
GetIndexValue 根据下标获取数组值
func (*ArrayObject) GetLeftValue ¶ added in v0.0.6
func (a *ArrayObject) GetLeftValue() *LeftValue
func (*ArrayObject) SetIndexValue ¶ added in v0.0.6
func (a *ArrayObject) SetIndexValue(val interface{})
SetIndexValue 根据下标为数组赋值
type BreakObject ¶ added in v0.0.6
type BreakObject struct{}
type Compiler ¶ added in v0.0.4
type Compiler struct { }
func NewCompiler ¶ added in v0.0.4
func NewCompiler() *Compiler
func (*Compiler) CompilerWithoutNative ¶ added in v0.0.6
CompilerWithoutNative 不包含标准库运行
type ContinueObject ¶ added in v0.0.6
type ContinueObject struct{}
type LeftValue ¶ added in v0.0.4
type LeftValue struct {
// contains filtered or unexported fields
}
func NewLeftValue ¶ added in v0.0.4
func (*LeftValue) GetVariable ¶ added in v0.0.8
type ReturnObject ¶ added in v0.0.6
type ReturnObject struct {
// contains filtered or unexported fields
}
func NewReturnObject ¶ added in v0.0.6
func NewReturnObject(object interface{}) *ReturnObject
func (*ReturnObject) GetReturnObject ¶ added in v0.0.6
func (r *ReturnObject) GetReturnObject() interface{}
func (*ReturnObject) String ¶ added in v0.0.6
func (r *ReturnObject) String() string
type SemanticResolver ¶ added in v0.0.12
type SemanticResolver struct { parser.BaseGScriptListener // contains filtered or unexported fields }
SemanticResolver 语义分析 *
- return 1.1 声明了返回值必须返回 1.2 返回值类型必须和声明相同
- break 2.1 break 只能出现在循环中
- type check 3.1 赋值类型匹配 3.2 四则运算表达式类型匹配
- 表达式运行类型检查
func NewSemanticResolver ¶ added in v0.0.12
func NewSemanticResolver(at *resolver.AnnotatedTree) *SemanticResolver
func (*SemanticResolver) ExitExpr ¶ added in v0.0.12
func (s *SemanticResolver) ExitExpr(ctx *parser.ExprContext)
ExitExpr 表达式运算类型检查
func (*SemanticResolver) ExitFunctionDeclaration ¶ added in v0.0.12
func (s *SemanticResolver) ExitFunctionDeclaration(ctx *parser.FunctionDeclarationContext)
func (*SemanticResolver) ExitStmReturn ¶ added in v0.0.12
func (s *SemanticResolver) ExitStmReturn(ctx *parser.StmReturnContext)
func (*SemanticResolver) ExitVariableDeclarator ¶ added in v0.0.12
func (s *SemanticResolver) ExitVariableDeclarator(ctx *parser.VariableDeclaratorContext)
ExitVariableDeclarator 赋值类型校验
type Visitor ¶ added in v0.0.4
type Visitor struct { parser.BaseGScriptVisitor // contains filtered or unexported fields }
func NewVisitor ¶ added in v0.0.4
func NewVisitor(at *resolver.AnnotatedTree) *Visitor
func (*Visitor) VisitArrayInitializer ¶ added in v0.0.6
func (v *Visitor) VisitArrayInitializer(ctx *parser.ArrayInitializerContext) interface{}
func (*Visitor) VisitBlock ¶ added in v0.0.4
func (v *Visitor) VisitBlock(ctx *parser.BlockContext) interface{}
func (*Visitor) VisitBlockStm ¶ added in v0.0.4
func (v *Visitor) VisitBlockStm(ctx *parser.BlockStmContext) interface{}
func (*Visitor) VisitBlockStms ¶ added in v0.0.4
func (v *Visitor) VisitBlockStms(ctx *parser.BlockStmsContext) interface{}
func (*Visitor) VisitBlockVarDeclar ¶ added in v0.0.4
func (v *Visitor) VisitBlockVarDeclar(ctx *parser.BlockVarDeclarContext) interface{}
func (*Visitor) VisitClassBody ¶ added in v0.0.6
func (v *Visitor) VisitClassBody(ctx *parser.ClassBodyContext) interface{}
func (*Visitor) VisitClassBodyDeclaration ¶ added in v0.0.6
func (v *Visitor) VisitClassBodyDeclaration(ctx *parser.ClassBodyDeclarationContext) interface{}
func (*Visitor) VisitClassDeclaration ¶ added in v0.0.6
func (v *Visitor) VisitClassDeclaration(ctx *parser.ClassDeclarationContext) interface{}
func (*Visitor) VisitExpr ¶ added in v0.0.4
func (v *Visitor) VisitExpr(ctx *parser.ExprContext) interface{}
func (*Visitor) VisitExpressionList ¶ added in v0.0.4
func (v *Visitor) VisitExpressionList(ctx *parser.ExpressionListContext) interface{}
func (*Visitor) VisitFieldDeclaration ¶ added in v0.0.6
func (v *Visitor) VisitFieldDeclaration(ctx *parser.FieldDeclarationContext) interface{}
func (*Visitor) VisitForControl ¶ added in v0.0.4
func (v *Visitor) VisitForControl(ctx *parser.ForControlContext) interface{}
func (*Visitor) VisitForInit ¶ added in v0.0.4
func (v *Visitor) VisitForInit(ctx *parser.ForInitContext) interface{}
func (*Visitor) VisitFunctionBody ¶ added in v0.0.4
func (v *Visitor) VisitFunctionBody(ctx *parser.FunctionBodyContext) interface{}
func (*Visitor) VisitFunctionCall ¶ added in v0.0.4
func (v *Visitor) VisitFunctionCall(ctx *parser.FunctionCallContext) interface{}
VisitFunctionCall 函数调用
func (*Visitor) VisitFunctionDeclaration ¶ added in v0.0.4
func (v *Visitor) VisitFunctionDeclaration(ctx *parser.FunctionDeclarationContext) interface{}
func (*Visitor) VisitLiteral ¶ added in v0.0.4
func (v *Visitor) VisitLiteral(ctx *parser.LiteralContext) interface{}
func (*Visitor) VisitMemberDeclaration ¶ added in v0.0.6
func (v *Visitor) VisitMemberDeclaration(ctx *parser.MemberDeclarationContext) interface{}
func (*Visitor) VisitParExpression ¶ added in v0.0.4
func (v *Visitor) VisitParExpression(ctx *parser.ParExpressionContext) interface{}
func (*Visitor) VisitParse ¶ added in v0.0.4
func (v *Visitor) VisitParse(ctx *parser.ParseContext) interface{}
func (*Visitor) VisitPrimary ¶ added in v0.0.4
func (v *Visitor) VisitPrimary(ctx *parser.PrimaryContext) interface{}
func (*Visitor) VisitProg ¶ added in v0.0.4
func (v *Visitor) VisitProg(ctx *parser.ProgContext) interface{}
func (*Visitor) VisitStmBlockLabel ¶ added in v0.0.4
func (v *Visitor) VisitStmBlockLabel(ctx *parser.StmBlockLabelContext) interface{}
func (*Visitor) VisitStmBreak ¶ added in v0.0.6
func (v *Visitor) VisitStmBreak(ctx *parser.StmBreakContext) interface{}
func (*Visitor) VisitStmContinue ¶ added in v0.0.6
func (v *Visitor) VisitStmContinue(ctx *parser.StmContinueContext) interface{}
func (*Visitor) VisitStmExpr ¶ added in v0.0.4
func (v *Visitor) VisitStmExpr(ctx *parser.StmExprContext) interface{}
func (*Visitor) VisitStmFor ¶ added in v0.0.4
func (v *Visitor) VisitStmFor(ctx *parser.StmForContext) interface{}
func (*Visitor) VisitStmIfElse ¶ added in v0.0.4
func (v *Visitor) VisitStmIfElse(ctx *parser.StmIfElseContext) interface{}
func (*Visitor) VisitStmReturn ¶ added in v0.0.4
func (v *Visitor) VisitStmReturn(ctx *parser.StmReturnContext) interface{}
func (*Visitor) VisitStmWhile ¶ added in v0.0.6
func (v *Visitor) VisitStmWhile(ctx *parser.StmWhileContext) interface{}
func (*Visitor) VisitVariableDeclarator ¶ added in v0.0.4
func (v *Visitor) VisitVariableDeclarator(ctx *parser.VariableDeclaratorContext) interface{}
func (*Visitor) VisitVariableDeclaratorId ¶ added in v0.0.4
func (v *Visitor) VisitVariableDeclaratorId(ctx *parser.VariableDeclaratorIdContext) interface{}
func (*Visitor) VisitVariableDeclarators ¶ added in v0.0.4
func (v *Visitor) VisitVariableDeclarators(ctx *parser.VariableDeclaratorsContext) interface{}
func (*Visitor) VisitVariableInitializer ¶ added in v0.0.4
func (v *Visitor) VisitVariableInitializer(ctx *parser.VariableInitializerContext) interface{}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.