Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/elvin-du/tinyscript
/ functions
Functions
285 in github.com/elvin-du/tinyscript
⨍
Functions
285
◇
Types & classes
46
↓ 83 callers
Method
runOneStep
()
vm/vm.go:129
↓ 56 callers
Function
NewToken
(t TokenType, v string)
lexer/token.go:47
↓ 38 callers
Method
GetChild
(uint)
parser/ast/ast.go:15
↓ 37 callers
Method
String
()
gen/operand/oprand.go:4
↓ 29 callers
Method
Lexeme
get
parser/ast/ast.go:11
↓ 27 callers
Method
GetOperand
(index int)
gen/instruction.go:190
↓ 24 callers
Method
AddChild
set
parser/ast/ast.go:23
↓ 22 callers
Method
NextMatch
下一个token的value匹配实参字符的话,返回这个token,否则panic
parser/ast/stream.go:52
↓ 21 callers
Method
Add
(instr *Instruction)
gen/opcode_program.go:19
↓ 21 callers
Function
assertToken
(t *testing.T, token *Token, wantValue string, wantType TokenType)
lexer/lexer_test.go:136
↓ 19 callers
Method
AddOperand
(o operand.Operand)
gen/instruction.go:70
↓ 18 callers
Method
PutBack
(e string)
lexer/util/stream.go:68
↓ 17 callers
Method
GetSpMemory
(offset int)
vm/vm.go:124
↓ 17 callers
Method
Peek
()
parser/ast/stream.go:33
↓ 16 callers
Function
NewTranslator
()
translator/translator.go:13
↓ 16 callers
Method
Next
()
lexer/util/stream.go:22
↓ 15 callers
Method
Add
(instr *TAInstruction)
translator/taprogram.go:19
↓ 15 callers
Function
NewLexer
(r io.Reader, et string)
lexer/lexer.go:36
↓ 15 callers
Function
NewTAInstruction
(typ TAInstructionType, result *symbol.Symbol, op string, arg1 interface{}, arg2 interface{})
translator/tainstruction.go:17
↓ 15 callers
Method
SetLabel
(string)
parser/ast/ast.go:27
↓ 15 callers
Method
Translate
* 符号表是辅助工具。对ast遍历的同时产生符号表,根据符号表的内容产生TAProgram。 */
translator/translator.go:20
↓ 14 callers
Function
NewOpCode
(addrType AddressingType, name string, value byte)
gen/opcode.go:35
↓ 14 callers
Method
SetType
(NodeType)
parser/ast/ast.go:26
↓ 14 callers
Method
Type
ast节点对应的token是什么
parser/ast/ast.go:12
↓ 13 callers
Function
NewInstruction
(code *OpCode)
gen/instruction.go:26
↓ 13 callers
Method
Next
()
parser/ast/stream.go:17
↓ 13 callers
Method
ToByteCode
()
gen/instruction.go:83
↓ 11 callers
Method
Analyse
()
lexer/lexer.go:41
↓ 11 callers
Method
CreateSymbolByLexeme
(lexeme *lexer.Token)
translator/symbol/table.go:67
↓ 11 callers
Function
FromByCode
(code int)
gen/instruction.go:140
↓ 10 callers
Function
AssertSameInstruction
(t *testing.T, a, b *Instruction)
gen/opcode_test.go:80
↓ 10 callers
Method
Children
用字符串标识ast节点的含义,主要用于打印日志
parser/ast/ast.go:14
↓ 10 callers
Function
IsNumber
(c string)
lexer/alphabet.go:16
↓ 10 callers
Function
NewOffset
(offset int)
gen/operand/offset.go:11
↓ 10 callers
Function
NewTable
()
translator/symbol/table.go:19
↓ 10 callers
Function
Parse
(source string)
parser/parser.go:12
↓ 10 callers
Method
SetLexeme
(*lexer.Token)
parser/ast/ast.go:24
↓ 9 callers
Method
HasNext
()
lexer/util/stream.go:37
↓ 9 callers
Function
NewRegister
(name string, addr byte)
gen/operand/register.go:28
↓ 8 callers
Function
ExprParse
(stream *PeekTokenStream)
parser/ast/expr.go:167
↓ 8 callers
Method
HasNext
()
parser/ast/stream.go:26
↓ 8 callers
Function
MakeStmt
()
parser/ast/stmt.go:9
↓ 8 callers
Function
NewPeekTokenStream
(tokens []*lexer.Token)
parser/ast/stream.go:13
↓ 8 callers
Function
ToPostfixExpr
(node ASTNode)
parser/ast/util.go:8
↓ 7 callers
Function
IsOperator
(c string)
lexer/alphabet.go:24
↓ 7 callers
Function
LoadToRegister
(target *operand.Register, arg *symbol.Symbol)
gen/instruction.go:125
↓ 7 callers
Method
LocalSize
()
translator/symbol/table.go:104
↓ 7 callers
Method
Peek
()
lexer/util/stream.go:54
↓ 6 callers
Method
CreateVariable
()
translator/symbol/table.go:89
↓ 6 callers
Function
MakeNode
()
parser/ast/ast.go:45
↓ 6 callers
Function
NewOffsetInstruction
(code *OpCode, r1, r2 *operand.Register, offset *operand.Offset)
gen/instruction.go:35
↓ 6 callers
Function
ParseFromFile
(file string)
parser/parser.go:16
↓ 6 callers
Function
RegisterFromAddr
(reg int)
gen/operand/register.go:41
↓ 6 callers
Function
StmtParse
(stream *PeekTokenStream)
parser/ast/stmt.go:14
↓ 6 callers
Method
TranslateExpr
* SDD: E -> E1 op E2 E -> F */
translator/translator.go:91
↓ 6 callers
Function
assertToken
(t *testing.T, token *lexer2.Token, wantValue string, wantType lexer2.TokenType)
parser/ast/stream_test.go:23
↓ 6 callers
Function
createExpr
(src string)
parser/parser_test.go:36
↓ 5 callers
Function
FactorParse
(stream *PeekTokenStream)
parser/ast/factor.go:32
↓ 5 callers
Method
Gen
(taProgram *translator.TAProgram)
gen/opcode_gen.go:17
↓ 5 callers
Function
NewLabel
(label string)
gen/operand/label.go:10
↓ 5 callers
Function
NewOpCodeGen
()
gen/opcode_gen.go:13
↓ 5 callers
Function
NewRegisterInstruction
(code *OpCode, r1, r2, r3 *operand.Register)
gen/instruction.go:43
↓ 4 callers
Method
AddSymbol
(symbol *Symbol)
translator/symbol/table.go:26
↓ 4 callers
Function
BlockParse
(stream *PeekTokenStream)
parser/ast/block.go:16
↓ 4 callers
Function
E
left: E(k) -> E(k) op(k) E(k+1) | E(k+1) right: E(k) -> E(k+1) E_(k) E_(k) -> op(k) E(k+1) E_(k) | ⍷ 最高优先级: E(t) -> F E_(k) | U E_(k) E_(t) ->
parser/ast/expr.go:34
↓ 4 callers
Method
Exists
(lexeme *lexer.Token)
translator/symbol/table.go:40
↓ 4 callers
Function
FromFile
(path string)
lexer/lexer.go:18
↓ 4 callers
Method
MakeVarOrKeyword
()
lexer/lexer.go:159
↓ 4 callers
Function
NewImmediateNumber
(value int)
gen/operand/immediate_number.go:11
↓ 4 callers
Method
Prop
(string)
parser/ast/ast.go:20
↓ 4 callers
Function
SaveToMemory
(source *operand.Register, arg *symbol.Symbol)
gen/instruction.go:136
↓ 4 callers
Function
combine
(stream *PeekTokenStream, af ExprHOF, bf ExprHOF)
parser/ast/expr.go:141
↓ 3 callers
Method
AddChild
(child *Table)
translator/symbol/table.go:98
↓ 3 callers
Method
AddLabel
()
translator/taprogram.go:23
↓ 3 callers
Method
Args
()
parser/ast/stmt_func_declare.go:45
↓ 3 callers
Method
Block
()
parser/ast/stmt_func_declare.go:51
↓ 3 callers
Method
CloneFromSymbolTree
(lexeme *lexer.Token, layoutOffset int)
translator/symbol/table.go:53
↓ 3 callers
Function
E_
(stream *PeekTokenStream, k int)
parser/ast/expr.go:106
↓ 3 callers
Method
GetStaticArea
从三地址代码中获取静态符号表中的值,存起来在虚拟机实例化时写入内存静态区
gen/opcode_program.go:57
↓ 3 callers
Function
IfStmtParse
(stream *PeekTokenStream)
parser/ast/stmt_if.go:16
↓ 3 callers
Method
IsScalar
()
lexer/token.go:55
↓ 3 callers
Function
MakeBlock
()
parser/ast/block.go:9
↓ 3 callers
Method
MakeNumber
()
lexer/lexer.go:334
↓ 3 callers
Function
NewExpr
(typ NodeType, token *lexer.Token)
parser/ast/expr.go:16
↓ 3 callers
Function
NewImmediateInstruction
(code *OpCode, r1 *operand.Register, number *operand.ImmediateNumber)
gen/instruction.go:63
↓ 3 callers
Function
NewParser
(tokens []*lexer.Token)
parser/parser.go:21
↓ 3 callers
Function
NewSymbol
(typ SymbolType)
translator/symbol/symbol.go:14
↓ 3 callers
Function
NewVM
(staticArea []int, opcodes []int, entry *int)
vm/vm.go:16
↓ 3 callers
Method
SetOffset
(offset int)
gen/operand/label.go:21
↓ 3 callers
Method
SetProp
(string, interface{})
parser/ast/ast.go:29
↓ 3 callers
Function
ToBFSString
(node ASTNode, max int)
parser/ast/util.go:42
↓ 3 callers
Method
TranslateBlock
(program *TAProgram, node ast.ASTNode, parent *symbol.Table)
translator/translator.go:124
↓ 3 callers
Method
TranslateStmt
(program *TAProgram, node ast.ASTNode, table *symbol.Table)
translator/translator.go:40
↓ 3 callers
Function
main
()
main.go:3
↓ 3 callers
Method
symbolByLexeme
(lexeme *lexer.Token)
translator/symbol/table.go:31
↓ 2 callers
Function
AssignStmtParse
(stream *PeekTokenStream)
parser/ast/stmt_assign.go:16
↓ 2 callers
Method
CreateLabel
(label string, lexeme *lexer.Token)
translator/symbol/table.go:108
↓ 2 callers
Function
DeclareStmtParse
(stream *PeekTokenStream)
parser/ast/stmt_declare.go:22
↓ 2 callers
Function
DecodeOffset
(offset int)
gen/operand/offset.go:26
↓ 2 callers
Method
FuncVariable
()
parser/ast/stmt_func_declare.go:42
next →
1–100 of 285, ranked by callers