MCPcopy Create free account

hub / github.com/AZHenley/knox / functions

Functions118 in github.com/AZHenley/knox

↓ 69 callersMethodcurTokenIs
determinate current token is t or not.
parser/parser.go:47
↓ 54 callersMethodconsume
(t token.TokenType)
parser/parser.go:56
↓ 29 callersFunctionexpr
(node *ast.Node)
emitter/emitter.go:377
↓ 23 callersFunctionnewToken
return new token
lexer/lexer.go:159
↓ 22 callersMethodnextToken
forward token
parser/parser.go:39
↓ 18 callersFunctioncreateTypeObj
(name string, literal bool, number bool, function bool, primitive bool, container bool, listt bool, mapt bool,
typechecker/typeobj.go:23
↓ 15 callersMethodexpr
()
parser/parser.go:546
↓ 15 callersMethodreadChar
read one forward character
lexer/lexer.go:28
↓ 14 callersFunctionabortMsg
(node *ast.Node, msg string)
typechecker/typechecker.go:110
↓ 13 callersFunctioncompareTypes
(a *typeObj, b *typeObj)
typechecker/typechecker.go:121
↓ 12 callersFunctionabortMsgf
(node *ast.Node, msg string, args ...interface{})
typechecker/typechecker.go:115
↓ 8 callersMethodabortMsg
(msg string)
parser/parser.go:33
↓ 7 callersMethodLookupSymbol
LookupSymbol does a recursive lookup.
ast/symtable.go:39
↓ 7 callersFunctiondeclType
Get type from a declaration.
typechecker/typechecker.go:166
↓ 7 callersFunctiongetType
Get type from expression node.
typechecker/typechecker.go:320
↓ 7 callersMethodpeekChar
peek character
lexer/lexer.go:249
↓ 7 callersMethodvarType
varType = ident | "[" varType "]" | ident "[" varType {"," varType} "]"
parser/parser.go:406
↓ 6 callersMethodInsertSymbol
InsertSymbol into symbol table, recursively checks if it exists, returns true for success
ast/symtable.go:19
↓ 6 callersMethodblock
()
parser/parser.go:234
↓ 5 callersFunctiongetName
(node *ast.Node)
typechecker/typechecker.go:256
↓ 5 callersFunctionisWhitespace
is white space
lexer/lexer.go:267
↓ 4 callersFunctionblockIf
Block without newline.
emitter/emitter.go:177
↓ 4 callersFunctionindent
Mapping of Knox primitives to C primitives.
emitter/emitter.go:19
↓ 4 callersFunctionisBrace
is brace
lexer/lexer.go:287
↓ 3 callersFunctionIsOperator
IsOperator returns
lexer/lexer.go:272
↓ 3 callersMethodIsPrimitiveType
(text string)
typechecker/primitives.go:48
↓ 3 callersMethodabort
(t token.TokenType)
parser/parser.go:28
↓ 3 callersFunctionbuildTypeObj
Builds up a type obj recursively given a varType AST node.
typechecker/typechecker.go:183
↓ 3 callersFunctionisBracket
is bracket
lexer/lexer.go:292
↓ 3 callersFunctionisComparison
is comparison
lexer/lexer.go:277
↓ 3 callersFunctionisCompound
is compound
lexer/lexer.go:282
↓ 3 callersFunctionisEmpty
is empty
lexer/lexer.go:302
↓ 3 callersFunctionisParen
is parenthesis
lexer/lexer.go:297
↓ 3 callersMethodpeekTokenIs
determinate next token is t or not
parser/parser.go:52
↓ 2 callersMethodInit
()
typechecker/primitives.go:27
↓ 2 callersMethodIsDeclared
IsDeclared returns if symbol is declared, recursively.
ast/symtable.go:28
↓ 2 callersMethodIsNumberType
(text string)
typechecker/primitives.go:52
↓ 2 callersMethodProgram
Grammar rules. Program parses a program.
parser/parser.go:70
↓ 2 callersMethodaddition
()
parser/parser.go:620
↓ 2 callersMethodargList
argList = "(" {expr ","} [expr] ")"
parser/parser.go:388
↓ 2 callersFunctionbuildReturnList
Build a list of types from func decl return.
typechecker/typechecker.go:230
↓ 2 callersMethodcomparison
func (p *Parser) cast() ast.Node { var node = p.comparison() for p.curTokenIs(token.AS) { var castNode ast.Node castNode.Type = ast.CAST castN
parser/parser.go:605
↓ 2 callersFunctioncreateBuiltin
(name string, node *ast.Node)
builtin/builtin.go:21
↓ 2 callersMethodequality
()
parser/parser.go:570
↓ 2 callersFunctionfuncCall
TODO: This needs to be rewritten to recursively handle dotop.
emitter/emitter.go:220
↓ 2 callersFunctionfuncDecl
(node *ast.Node)
emitter/emitter.go:108
↓ 2 callersMethodfuncDecl
funcDecl = "func" ident paramList returnList block
parser/parser.go:143
↓ 2 callersFunctionisDigit
is Digit
lexer/lexer.go:307
↓ 2 callersMethodmultiplication
()
parser/parser.go:635
↓ 2 callersMethodreadNumber
read number
lexer/lexer.go:195
↓ 2 callersMethodreadUntilWhitespace
read until white space
lexer/lexer.go:204
↓ 2 callersMethodskipWhitespace
skip white space
lexer/lexer.go:174
↓ 2 callersFunctionstatement
(node *ast.Node)
emitter/emitter.go:189
↓ 2 callersFunctionstringToType
Is this still needed?
typechecker/typechecker.go:156
↓ 2 callersMethodunary
()
parser/parser.go:651
↓ 2 callersFunctionvarDecl
(node *ast.Node)
emitter/emitter.go:347
↓ 2 callersMethodvarDecl
varDecl = "var" ident ":" type assignOp expr
parser/parser.go:337
↓ 1 callersMethodNextToken
NextToken to read next token, skipping the white space.
lexer/lexer.go:45
↓ 1 callersFunctionblock
(node *ast.Node)
emitter/emitter.go:164
↓ 1 callersFunctionbuildTypeList
Build a list of types from expressions.
typechecker/typechecker.go:217
↓ 1 callersMethodcheckComments
()
lexer/lexer.go:180
↓ 1 callersFunctioncheckFuncCall
(node *ast.Node, declNode *ast.Node)
typechecker/typechecker.go:260
↓ 1 callersFunctionclassBlock
(node *ast.Node)
emitter/emitter.go:86
↓ 1 callersMethodclassBlock
classBlock = "{" {varDecl | funcDecl} "}"
parser/parser.go:114
↓ 1 callersFunctionclassDecl
(node *ast.Node)
emitter/emitter.go:77
↓ 1 callersMethodclassDecl
classDecl = "class" ident classBlock
parser/parser.go:93
↓ 1 callersFunctionforStatement
(node *ast.Node)
emitter/emitter.go:314
↓ 1 callersMethodforStatement
forStatement = "for" forClause block
parser/parser.go:500
↓ 1 callersFunctionheader
()
emitter/emitter.go:29
↓ 1 callersFunctionifStatement
(node *ast.Node)
emitter/emitter.go:294
↓ 1 callersMethodifStatement
ifStatement = "if" expr block
parser/parser.go:476
↓ 1 callersFunctioninitDataTypes
()
emitter/datatypes.go:3
↓ 1 callersFunctionisDot
(ch rune)
lexer/lexer.go:262
↓ 1 callersFunctionisIdentifier
determinate ch is identifier or not
lexer/lexer.go:258
↓ 1 callersFunctionisList
(node *ast.Node)
typechecker/typechecker.go:242
↓ 1 callersFunctionisSimple
(node *ast.Node)
typechecker/typechecker.go:249
↓ 1 callersFunctionisUnderscore
(ch rune)
lexer/lexer.go:311
↓ 1 callersFunctionjumpStatement
(node *ast.Node)
emitter/emitter.go:319
↓ 1 callersMethodjumpStatement
jumpStatement = "continue" | "break" | "return" [expr {"," expr}]
parser/parser.go:530
↓ 1 callersMethodlistLiteral
()
parser/parser.go:768
↓ 1 callersMethodlogical
()
parser/parser.go:555
↓ 1 callersFunctionlookUpDecl
TODO: Why doesn't this take a pointer? Look up a func's declaration given a ref, handling the dot operator.
typechecker/typechecker.go:287
↓ 1 callersMethodparamList
()
parser/parser.go:175
↓ 1 callersMethodparan
()
parser/parser.go:724
↓ 1 callersMethodpostfix
postfix = paran {"[" expr "]" | argList | "." ident}
parser/parser.go:666
↓ 1 callersMethodprimary
primary = varRef | INT | FLOAT | STRING | "false" | "true" | "nil" | "(" expr ")" | listLiteral
parser/parser.go:785
↓ 1 callersFunctionprintUtil
(node Node, depth int)
ast/ast.go:67
↓ 1 callersFunctionprogram
(node *ast.Node)
emitter/emitter.go:36
↓ 1 callersMethodreadDecimal
read decimal
lexer/lexer.go:213
↓ 1 callersMethodreadIdentifier
read Identifier
lexer/lexer.go:164
↓ 1 callersMethodreadString
read string
lexer/lexer.go:233
↓ 1 callersMethodreturnList
returnList = varType | "(" varType {"," varType} ")"
parser/parser.go:213
↓ 1 callersMethodskipComment
Ignore comments.
lexer/lexer.go:188
↓ 1 callersMethodspecial
()
parser/parser.go:738
↓ 1 callersMethodstatement
()
parser/parser.go:255
↓ 1 callersFunctiontypecheck
#137 make sure main has return type void or int
typechecker/typechecker.go:23
↓ 1 callersFunctionvarAssign
(node *ast.Node)
emitter/emitter.go:330
↓ 1 callersMethodvarDeclPiece
Part of a varDecl, only used in for loops
parser/parser.go:308
↓ 1 callersMethodvarRef
varRef = ident {"[" expr "]"}
parser/parser.go:436
↓ 1 callersFunctionwhileStatement
(node *ast.Node)
emitter/emitter.go:310
next →1–100 of 118, ranked by callers