SYMBOL INDEX (362 symbols across 64 files) FILE: gen/instruction.go constant MASK_OPCODE (line 12) | MASK_OPCODE = 0xfc000000 constant MASK_R0 (line 13) | MASK_R0 = 0x03e00000 constant MASK_R1 (line 14) | MASK_R1 = 0x001f0000 constant MASK_R2 (line 15) | MASK_R2 = 0x0000f800 constant MASK_OFFSET0 (line 16) | MASK_OFFSET0 = 0x03ffffff constant MASK_OFFSET1 (line 17) | MASK_OFFSET1 = 0x001fffff constant MASK_OFFSET2 (line 18) | MASK_OFFSET2 = 0x000007ff type Instruction (line 21) | type Instruction struct method AddOperand (line 70) | func (i *Instruction) AddOperand(o operand.Operand) { method String (line 74) | func (i *Instruction) String() string { method ToByteCode (line 83) | func (i *Instruction) ToByteCode() int { method GetOperand (line 190) | func (i *Instruction) GetOperand(index int) operand.Operand { function NewInstruction (line 26) | func NewInstruction(code *OpCode) *Instruction { function NewJumpInstruction (line 29) | func NewJumpInstruction(code *OpCode, offset int) *Instruction { function NewOffsetInstruction (line 35) | func NewOffsetInstruction(code *OpCode, r1, r2 *operand.Register, offset... function NewRegisterInstruction (line 43) | func NewRegisterInstruction(code *OpCode, r1, r2, r3 *operand.Register) ... function NewBNEInstruction (line 55) | func NewBNEInstruction(r1, r2 *operand.Register, label string) *Instruct... function NewImmediateInstruction (line 63) | func NewImmediateInstruction(code *OpCode, r1 *operand.Register, number ... function LoadToRegister (line 125) | func LoadToRegister(target *operand.Register, arg *symbol.Symbol) *Instr... function SaveToMemory (line 136) | func SaveToMemory(source *operand.Register, arg *symbol.Symbol) *Instruc... function FromByCode (line 140) | func FromByCode(code int) *Instruction { FILE: gen/opcode.go type OpCode (line 29) | type OpCode struct method String (line 41) | func (oc *OpCode) String() string { function NewOpCode (line 35) | func NewOpCode(addrType AddressingType, name string, value byte) *OpCode { function FromByte (line 45) | func FromByte(byteOpcode byte) *OpCode { FILE: gen/opcode_gen.go type OpCodeGen (line 10) | type OpCodeGen struct method Gen (line 17) | func (g *OpCodeGen) Gen(taProgram *translator.TAProgram) *OpCodeProgram { method GenGoTo (line 58) | func (g *OpCodeGen) GenGoTo(program *OpCodeProgram, ta *translator.TAI... method GenIf (line 66) | func (g *OpCodeGen) GenIf(program *OpCodeProgram, ta *translator.TAIns... method Relabel (line 71) | func (g *OpCodeGen) Relabel(program *OpCodeProgram, labelMap map[strin... method GenReturn (line 86) | func (g *OpCodeGen) GenReturn(program *OpCodeProgram, ta *translator.T... method GenSP (line 96) | func (g *OpCodeGen) GenSP(program *OpCodeProgram, ta *translator.TAIns... method GenPass (line 105) | func (g *OpCodeGen) GenPass(program *OpCodeProgram, ta *translator.TAI... method GenFuncBegin (line 113) | func (g *OpCodeGen) GenFuncBegin(program *OpCodeProgram, ta *translato... method GenCall (line 118) | func (g *OpCodeGen) GenCall(program *OpCodeProgram, ta *translator.TAI... method GenCopy (line 125) | func (g *OpCodeGen) GenCopy(program *OpCodeProgram, ta *translator.TAI... function NewOpCodeGen (line 13) | func NewOpCodeGen() *OpCodeGen { FILE: gen/opcode_gen_test.go function TestExprEvaluate (line 10) | func TestExprEvaluate(t *testing.T) { function TestFuncEvaluate (line 45) | func TestFuncEvaluate(t *testing.T) { FILE: gen/opcode_program.go type OpCodeProgram (line 9) | type OpCodeProgram struct method Add (line 19) | func (o *OpCodeProgram) Add(instr *Instruction) { method String (line 22) | func (o *OpCodeProgram) String() string { method SetEntry (line 38) | func (o *OpCodeProgram) SetEntry(entry *int) { method AddComment (line 43) | func (o *OpCodeProgram) AddComment(comment string) { method ToByteCode (line 47) | func (o *OpCodeProgram) ToByteCode() []int { method GetStaticArea (line 57) | func (o *OpCodeProgram) GetStaticArea(taProgram *translator.TAProgram)... function NewOpCodeProgram (line 15) | func NewOpCodeProgram() *OpCodeProgram { FILE: gen/opcode_test.go function TestAdd (line 11) | func TestAdd(t *testing.T) { function TestMult (line 18) | func TestMult(t *testing.T) { function TestNewJumpInstruction (line 25) | func TestNewJumpInstruction(t *testing.T) { function TestJR (line 33) | func TestJR(t *testing.T) { function TestSW (line 41) | func TestSW(t *testing.T) { function TestSW1 (line 48) | func TestSW1(t *testing.T) { function TestLW (line 55) | func TestLW(t *testing.T) { function TestLW2 (line 62) | func TestLW2(t *testing.T) { function TestSP (line 69) | func TestSP(t *testing.T) { function TestBNE (line 74) | func TestBNE(t *testing.T) { function AssertSameInstruction (line 80) | func AssertSameInstruction(t *testing.T, a, b *Instruction) { FILE: gen/operand/immediate_number.go type ImmediateNumber (line 7) | type ImmediateNumber struct method String (line 15) | func (i *ImmediateNumber) String() string { method Typ (line 19) | func (*ImmediateNumber) Typ() OperandType { function NewImmediateNumber (line 11) | func NewImmediateNumber(value int) *ImmediateNumber { FILE: gen/operand/label.go type Label (line 5) | type Label struct method String (line 14) | func (l *Label) String() string { method Typ (line 18) | func (*Label) Typ() OperandType { method SetOffset (line 21) | func (l *Label) SetOffset(offset int) { function NewLabel (line 10) | func NewLabel(label string) *Label { FILE: gen/operand/offset.go type Offset (line 7) | type Offset struct method String (line 15) | func (o *Offset) String() string { method GetEncodedOffset (line 19) | func (o *Offset) GetEncodedOffset() int { method Typ (line 33) | func (*Offset) Typ() OperandType { function NewOffset (line 11) | func NewOffset(offset int) *Offset { function DecodeOffset (line 26) | func DecodeOffset(offset int) *Offset { FILE: gen/operand/oprand.go type Operand (line 3) | type Operand interface FILE: gen/operand/register.go type Register (line 23) | type Register struct method Typ (line 34) | func (reg *Register) Typ() OperandType { method String (line 37) | func (reg *Register) String() string { function NewRegister (line 28) | func NewRegister(name string, addr byte) *Register { function RegisterFromAddr (line 41) | func RegisterFromAddr(reg int) *Register { FILE: gen/operand/types.go type OperandType (line 3) | type OperandType constant TYPE_REGISTER (line 6) | TYPE_REGISTER = iota constant TYPE_IMMEDIATE (line 7) | TYPE_IMMEDIATE constant TYPE_LABEL (line 8) | TYPE_LABEL constant TYPE_OFFSET (line 9) | TYPE_OFFSET FILE: gen/types.go type AddressingType (line 4) | type AddressingType constant ADDRESSING_TYPE_IMMEDIATE (line 7) | ADDRESSING_TYPE_IMMEDIATE AddressingType = iota constant ADDRESSING_TYPE_REGISTER (line 8) | ADDRESSING_TYPE_REGISTER constant ADDRESSING_TYPE_JUMP (line 9) | ADDRESSING_TYPE_JUMP constant ADDRESSING_TYPE_BRANCH (line 10) | ADDRESSING_TYPE_BRANCH constant ADDRESSING_TYPE_OFFSET (line 11) | ADDRESSING_TYPE_OFFSET FILE: lexer/alphabet.go function IsLetter (line 12) | func IsLetter(c string) bool { function IsNumber (line 16) | func IsNumber(c string) bool { function IsLiteral (line 20) | func IsLiteral(c string) bool { function IsOperator (line 24) | func IsOperator(c string) bool { FILE: lexer/alphabet_test.go function TestAlphabet (line 8) | func TestAlphabet(t *testing.T) { FILE: lexer/keywords.go function IsKeyword (line 14) | func IsKeyword(key string) bool { FILE: lexer/lexer.go constant EndToken (line 11) | EndToken = "$" type Lexer (line 13) | type Lexer struct method Analyse (line 41) | func (l *Lexer) Analyse() []*Token { method MakeString (line 128) | func (l *Lexer) MakeString() *Token { method MakeVarOrKeyword (line 159) | func (l *Lexer) MakeVarOrKeyword() *Token { method MakeOp (line 181) | func (l *Lexer) MakeOp() *Token { method MakeNumber (line 334) | func (l *Lexer) MakeNumber() *Token { function FromFile (line 18) | func FromFile(path string) []*Token { function Analyse (line 32) | func Analyse(source string) []*Token { function NewLexer (line 36) | func NewLexer(r io.Reader, et string) *Lexer { FILE: lexer/lexer_test.go function TestLexer_MakeVarOrKeyword (line 11) | func TestLexer_MakeVarOrKeyword(t *testing.T) { function TestLexer_MakeString (line 27) | func TestLexer_MakeString(t *testing.T) { function TestLexer_MakeOp (line 33) | func TestLexer_MakeOp(t *testing.T) { function TestLexer_MakeNumber (line 51) | func TestLexer_MakeNumber(t *testing.T) { function TestLexer_Analyse (line 76) | func TestLexer_Analyse(t *testing.T) { function Test_Function (line 95) | func Test_Function(t *testing.T) { function TestDeleteComment (line 127) | func TestDeleteComment(t *testing.T) { function assertToken (line 136) | func assertToken(t *testing.T, token *Token, wantValue string, wantType ... function TestFromFile (line 141) | func TestFromFile(t *testing.T) { FILE: lexer/token.go type TokenType (line 5) | type TokenType method String (line 18) | func (tt TokenType) String() string { constant KEYWORD (line 8) | KEYWORD TokenType = 1 constant VARIABLE (line 9) | VARIABLE TokenType = 2 constant OPERATOR (line 10) | OPERATOR TokenType = 3 constant BRACKET (line 11) | BRACKET TokenType = 4 constant STRING (line 12) | STRING TokenType = 5 constant FLOAT (line 13) | FLOAT TokenType = 6 constant BOOLEAN (line 14) | BOOLEAN TokenType = 7 constant INTEGER (line 15) | INTEGER TokenType = 8 type Token (line 42) | type Token struct method IsVariable (line 51) | func (t *Token) IsVariable() bool { method IsScalar (line 55) | func (t *Token) IsScalar() bool { method IsNumber (line 59) | func (t *Token) IsNumber() bool { method IsOperator (line 63) | func (t *Token) IsOperator() bool { method String (line 67) | func (t *Token) String() string { method IsValue (line 71) | func (t *Token) IsValue() bool { method IsType (line 75) | func (t *Token) IsType() bool { function NewToken (line 47) | func NewToken(t TokenType, v string) *Token { FILE: lexer/util/stream.go type Stream (line 9) | type Stream struct method Next (line 22) | func (s *Stream) Next() string { method HasNext (line 37) | func (s *Stream) HasNext() bool { method Peek (line 54) | func (s *Stream) Peek() string { method PutBack (line 68) | func (s *Stream) PutBack(e string) { function NewStream (line 16) | func NewStream(r io.Reader, et string) *Stream { FILE: lexer/util/stream_test.go function TestNewStream (line 9) | func TestNewStream(t *testing.T) { FILE: main.go function main (line 3) | func main() { FILE: parser/ast/ast.go type ASTNode (line 9) | type ASTNode interface type node (line 32) | type node struct method Prop (line 48) | func (n *node) Prop(key string) interface{} { method SetProp (line 51) | func (n *node) SetProp(key string, value interface{}) { method Lexeme (line 54) | func (n *node) Lexeme() *lexer.Token { method TypeLexeme (line 57) | func (n *node) TypeLexeme() *lexer.Token { method IsValueType (line 60) | func (n *node) IsValueType() bool { method Type (line 63) | func (n *node) Type() NodeType { method Label (line 66) | func (n *node) Label() string { method Children (line 69) | func (n *node) Children() []ASTNode { method GetChild (line 72) | func (n *node) GetChild(index uint) ASTNode { method Parent (line 78) | func (n *node) Parent() ASTNode { method AddChild (line 81) | func (n *node) AddChild(node ASTNode) { method SetLexeme (line 85) | func (n *node) SetLexeme(lexeme *lexer.Token) { method SetTypeLexeme (line 88) | func (n *node) SetTypeLexeme(lexeme *lexer.Token) { method SetType (line 91) | func (n *node) SetType(t NodeType) { method SetLabel (line 94) | func (n *node) SetLabel(str string) { method SetParent (line 97) | func (n *node) SetParent(node ASTNode) { method Print (line 100) | func (n *node) Print(indent int) { function MakeNode (line 45) | func MakeNode() *node { FILE: parser/ast/block.go type Block (line 5) | type Block struct function MakeBlock (line 9) | func MakeBlock() *Block { function BlockParse (line 16) | func BlockParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/expr.go type Expr (line 7) | type Expr struct function MakeExpr (line 11) | func MakeExpr() *Expr { function NewExpr (line 16) | func NewExpr(typ NodeType, token *lexer.Token) *Expr { type ExprHOF (line 24) | type ExprHOF function E (line 34) | func E(stream *PeekTokenStream, k int) ASTNode { function U (line 74) | func U(stream *PeekTokenStream) ASTNode { function F (line 93) | func F(stream *PeekTokenStream) ASTNode { function E_ (line 106) | func E_(stream *PeekTokenStream, k int) ASTNode { function race (line 128) | func race(stream *PeekTokenStream, af ExprHOF, bf ExprHOF) ASTNode { function combine (line 141) | func combine(stream *PeekTokenStream, af ExprHOF, bf ExprHOF) ASTNode { function ExprParse (line 167) | func ExprParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/expr_call.go type CallExpr (line 5) | type CallExpr struct function MakeCallExpr (line 9) | func MakeCallExpr() *CallExpr { function CallExprParse (line 16) | func CallExprParse(factor ASTNode, stream *PeekTokenStream) ASTNode { FILE: parser/ast/factor.go type Factor (line 9) | type Factor struct function MakeFactor (line 13) | func MakeFactor() *Factor { function NewFactor (line 17) | func NewFactor(stream *PeekTokenStream) *Factor { function FactorParse (line 32) | func FactorParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/func_args.go type FuncArgs (line 5) | type FuncArgs struct function MakeFuncArgs (line 9) | func MakeFuncArgs() *FuncArgs { function FuncArgsParse (line 15) | func FuncArgsParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/priority_table.go type priorityTable (line 5) | type priorityTable struct method Size (line 19) | func (pt *priorityTable) Size() int { method Get (line 22) | func (pt *priorityTable) Get(level int) []string { method IsContain (line 25) | func (pt *priorityTable) IsContain(level int, key string) bool { function NewPriorityTable (line 9) | func NewPriorityTable() *priorityTable { FILE: parser/ast/program.go type Program (line 5) | type Program struct function MakeProgram (line 9) | func MakeProgram() *Program { function ProgramParse (line 15) | func ProgramParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/scalar.go type Scalar (line 5) | type Scalar struct function NewScalar (line 9) | func NewScalar(stream *PeekTokenStream) *Scalar { function MakeScalar (line 13) | func MakeScalar() *Scalar { FILE: parser/ast/stmt.go type Stmt (line 5) | type Stmt struct function MakeStmt (line 9) | func MakeStmt() *Stmt { function StmtParse (line 14) | func StmtParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/stmt_assign.go type AssignStmt (line 5) | type AssignStmt struct function MakeAssignStmt (line 9) | func MakeAssignStmt() *AssignStmt { function AssignStmtParse (line 16) | func AssignStmtParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/stmt_assign_test.go function TestAssignStmtParse (line 10) | func TestAssignStmtParse(t *testing.T) { FILE: parser/ast/stmt_declare.go type DeclareStmt (line 5) | type DeclareStmt struct function NewDeclareStmt (line 9) | func NewDeclareStmt() *DeclareStmt { function MakeDeclareStmt (line 15) | func MakeDeclareStmt() *DeclareStmt { function DeclareStmtParse (line 22) | func DeclareStmtParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/stmt_declare_test.go function TestDeclareStmtParse (line 10) | func TestDeclareStmtParse(t *testing.T) { FILE: parser/ast/stmt_for.go type ForStmt (line 5) | type ForStmt struct function MakeForStmt (line 9) | func MakeForStmt() *ForStmt { FILE: parser/ast/stmt_func_declare.go type FuncDeclareStmt (line 5) | type FuncDeclareStmt struct method FuncVariable (line 42) | func (f *FuncDeclareStmt) FuncVariable() ASTNode { method Args (line 45) | func (f *FuncDeclareStmt) Args() ASTNode { method FuncType (line 48) | func (f *FuncDeclareStmt) FuncType() string { method Block (line 51) | func (f *FuncDeclareStmt) Block() ASTNode { function MakeFuncDeclareStmt (line 9) | func MakeFuncDeclareStmt() *FuncDeclareStmt { function FuncDeclareStmtParse (line 16) | func FuncDeclareStmtParse(stream *PeekTokenStream) *FuncDeclareStmt { FILE: parser/ast/stmt_func_declare_test.go function TestFuncDeclareStmtParse (line 9) | func TestFuncDeclareStmtParse(t *testing.T) { function TestFunctionRecursion (line 26) | func TestFunctionRecursion(t *testing.T) { FILE: parser/ast/stmt_if.go type IfStmt (line 5) | type IfStmt struct method GetExpr (line 59) | func (i *IfStmt) GetExpr() ASTNode { method GetBlock (line 63) | func (i *IfStmt) GetBlock() ASTNode { method GetElseBlock (line 66) | func (i *IfStmt) GetElseBlock() ASTNode { method GetElseIfStmt (line 74) | func (i *IfStmt) GetElseIfStmt() ASTNode { function MakeIfStmt (line 9) | func MakeIfStmt() *IfStmt { function IfStmtParse (line 16) | func IfStmtParse(stream *PeekTokenStream) ASTNode { function IfParse (line 21) | func IfParse(stream *PeekTokenStream) ASTNode { function TailParse (line 43) | func TailParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/stmt_if_test.go function TestIfStmtParse (line 10) | func TestIfStmtParse(t *testing.T) { function createTokenStream (line 23) | func createTokenStream(src string) *PeekTokenStream { function TestIfElseStmtParse (line 29) | func TestIfElseStmtParse(t *testing.T) { FILE: parser/ast/stmt_return.go type ReturnStmt (line 5) | type ReturnStmt struct function MakeReturnStmt (line 9) | func MakeReturnStmt() *ReturnStmt { function ReturnStmtParse (line 16) | func ReturnStmtParse(stream *PeekTokenStream) ASTNode { FILE: parser/ast/stream.go type PeekTokenStream (line 8) | type PeekTokenStream struct method Next (line 17) | func (pt *PeekTokenStream) Next() *lexer.Token { method HasNext (line 26) | func (pt *PeekTokenStream) HasNext() bool { method Peek (line 33) | func (pt *PeekTokenStream) Peek() *lexer.Token { method PutBack (line 44) | func (pt *PeekTokenStream) PutBack(n int) { method NextMatch (line 52) | func (pt *PeekTokenStream) NextMatch(value string) *lexer.Token { method NextMatchType (line 61) | func (pt *PeekTokenStream) NextMatchType(typ lexer.TokenType) *lexer.T... function NewPeekTokenStream (line 13) | func NewPeekTokenStream(tokens []*lexer.Token) *PeekTokenStream { FILE: parser/ast/stream_test.go function TestNewPeekTokenStream (line 10) | func TestNewPeekTokenStream(t *testing.T) { function assertToken (line 23) | func assertToken(t *testing.T, token *lexer2.Token, wantValue string, wa... FILE: parser/ast/type.go type NodeType (line 3) | type NodeType method String (line 40) | func (nt NodeType) String() string { constant ASTNODE_TYPE_BLOCK (line 6) | ASTNODE_TYPE_BLOCK NodeType = iota constant ASTNODE_TYPE_BINARY_EXPR (line 8) | ASTNODE_TYPE_BINARY_EXPR constant ASTNODE_TYPE_UNARY_EXPR (line 9) | ASTNODE_TYPE_UNARY_EXPR constant ASTNODE_TYPE_CALL_EXPR (line 10) | ASTNODE_TYPE_CALL_EXPR constant ASTNODE_TYPE_VARIABLE (line 12) | ASTNODE_TYPE_VARIABLE constant ASTNODE_TYPE_SCALAR (line 13) | ASTNODE_TYPE_SCALAR constant ASTNODE_TYPE_IF_STMT (line 15) | ASTNODE_TYPE_IF_STMT constant ASTNODE_TYPE_WHILE_STMT (line 16) | ASTNODE_TYPE_WHILE_STMT constant ASTNODE_TYPE_FOR_STMT (line 17) | ASTNODE_TYPE_FOR_STMT constant ASTNODE_TYPE_RETURN_STMT (line 18) | ASTNODE_TYPE_RETURN_STMT constant ASTNODE_TYPE_ASSIGN_STMT (line 19) | ASTNODE_TYPE_ASSIGN_STMT constant ASTNODE_TYPE_FUNCTION_DECLARE_STMT (line 20) | ASTNODE_TYPE_FUNCTION_DECLARE_STMT constant ASTNODE_TYPE_DECLARE_STMT (line 21) | ASTNODE_TYPE_DECLARE_STMT FILE: parser/ast/util.go function ToPostfixExpr (line 8) | func ToPostfixExpr(node ASTNode) string { function ToBFSString (line 42) | func ToBFSString(node ASTNode, max int) string { FILE: parser/ast/variable.go type Variable (line 5) | type Variable struct function NewVariable (line 9) | func NewVariable(stream *PeekTokenStream) *Variable { function MakeVariable (line 13) | func MakeVariable() *Variable { FILE: parser/parser.go type Parser (line 8) | type Parser struct method parse (line 25) | func (p *Parser) parse() ast.ASTNode { method SimpleParse (line 31) | func (p *Parser) SimpleParse() ast.ASTNode { function Parse (line 12) | func Parse(source string) ast.ASTNode { function ParseFromFile (line 16) | func ParseFromFile(file string) ast.ASTNode { function NewParser (line 21) | func NewParser(tokens []*lexer.Token) *Parser { FILE: parser/parser_test.go function TestParser_Parse (line 11) | func TestParser_Parse(t *testing.T) { function createExpr (line 36) | func createExpr(src string) ast.ASTNode { function TestSimple (line 42) | func TestSimple(t *testing.T) { function TestSimple1 (line 47) | func TestSimple1(t *testing.T) { function TestComplex (line 52) | func TestComplex(t *testing.T) { FILE: translator/static_table_test.go function TestStaticTable (line 9) | func TestStaticTable(t *testing.T) { FILE: translator/symbol/static_table.go type StaticSymbolTable (line 8) | type StaticSymbolTable struct method Add (line 18) | func (s *StaticSymbolTable) Add(symbol *Symbol) { method Size (line 31) | func (s *StaticSymbolTable) Size() int { method String (line 35) | func (s *StaticSymbolTable) String() string { function NewStaticSymbolTable (line 14) | func NewStaticSymbolTable() *StaticSymbolTable { FILE: translator/symbol/symbol.go type Symbol (line 5) | type Symbol struct method String (line 18) | func (s *Symbol) String() string { function NewSymbol (line 14) | func NewSymbol(typ SymbolType) *Symbol { function MakeAddressSymbol (line 26) | func MakeAddressSymbol(lexeme *lexer.Token, offset int) *Symbol { function MakeImmediateSymbol (line 34) | func MakeImmediateSymbol(lexeme *lexer.Token) *Symbol { function MakeLabelSymbol (line 41) | func MakeLabelSymbol(label string, lexeme *lexer.Token) *Symbol { FILE: translator/symbol/table.go type Table (line 10) | type Table struct method AddSymbol (line 26) | func (t *Table) AddSymbol(symbol *Symbol) { method symbolByLexeme (line 31) | func (t *Table) symbolByLexeme(lexeme *lexer.Token) *Symbol { method Exists (line 40) | func (t *Table) Exists(lexeme *lexer.Token) bool { method CloneFromSymbolTree (line 53) | func (t *Table) CloneFromSymbolTree(lexeme *lexer.Token, layoutOffset ... method CreateSymbolByLexeme (line 67) | func (t *Table) CreateSymbolByLexeme(lexeme *lexer.Token) *Symbol { method CreateVariable (line 89) | func (t *Table) CreateVariable() *Symbol { method AddChild (line 98) | func (t *Table) AddChild(child *Table) { method LocalSize (line 104) | func (t *Table) LocalSize() int { method CreateLabel (line 108) | func (t *Table) CreateLabel(label string, lexeme *lexer.Token) { function NewTable (line 19) | func NewTable() *Table { FILE: translator/symbol/table_test.go function TestSymbolTable (line 9) | func TestSymbolTable(t *testing.T) { function TestTableChain (line 17) | func TestTableChain(t *testing.T) { function TestOffset (line 31) | func TestOffset(t *testing.T) { FILE: translator/symbol/types.go type SymbolType (line 3) | type SymbolType method String (line 11) | func (s SymbolType) String() string { constant SYMBOL_ADDRESS (line 6) | SYMBOL_ADDRESS SymbolType = iota constant SYMBOL_IMMEDIATE (line 7) | SYMBOL_IMMEDIATE constant SYMBOL_LABEL (line 8) | SYMBOL_LABEL FILE: translator/tainstruction.go type TAInstruction (line 8) | type TAInstruction struct method String (line 21) | func (t TAInstruction) String() string { function NewTAInstruction (line 17) | func NewTAInstruction(typ TAInstructionType, result *symbol.Symbol, op s... FILE: translator/tainstruction_type.go type TAInstructionType (line 3) | type TAInstructionType constant TAINSTR_TYPE_ASSIGN (line 6) | TAINSTR_TYPE_ASSIGN TAInstructionType = iota constant TAINSTR_TYPE_GOTO (line 7) | TAINSTR_TYPE_GOTO constant TAINSTR_TYPE_IF (line 8) | TAINSTR_TYPE_IF constant TAINSTR_TYPE_LABEL (line 9) | TAINSTR_TYPE_LABEL constant TAINSTR_TYPE_CALL (line 10) | TAINSTR_TYPE_CALL constant TAINSTR_TYPE_RETURN (line 11) | TAINSTR_TYPE_RETURN constant TAINSTR_TYPE_SP (line 12) | TAINSTR_TYPE_SP constant TAINSTR_TYPE_PARAM (line 13) | TAINSTR_TYPE_PARAM constant TAINSTR_TYPE_FUNC_BEGIN (line 14) | TAINSTR_TYPE_FUNC_BEGIN FILE: translator/taprogram.go type TAProgram (line 9) | type TAProgram struct method Add (line 19) | func (t *TAProgram) Add(instr *TAInstruction) { method AddLabel (line 23) | func (t *TAProgram) AddLabel() *TAInstruction { method String (line 32) | func (t *TAProgram) String() string { method SetStaticSymbols (line 42) | func (t *TAProgram) SetStaticSymbols(table *symbol.Table) { function NewTAProgram (line 15) | func NewTAProgram() *TAProgram { FILE: translator/translator.go type Translator (line 10) | type Translator struct method Translate (line 20) | func (t *Translator) Translate(node ast.ASTNode) *TAProgram { method TranslateStmt (line 40) | func (t *Translator) TranslateStmt(program *TAProgram, node ast.ASTNod... method TranslateDeclareStmt (line 68) | func (t *Translator) TranslateDeclareStmt(program *TAProgram, node ast... method TranslateAssignStmt (line 79) | func (t *Translator) TranslateAssignStmt(program *TAProgram, node ast.... method TranslateExpr (line 91) | func (t *Translator) TranslateExpr(program *TAProgram, node ast.ASTNod... method TranslateBlock (line 124) | func (t *Translator) TranslateBlock(program *TAProgram, node ast.ASTNo... method TranslateIfStmt (line 143) | func (t *Translator) TranslateIfStmt(program *TAProgram, node *ast.IfS... method TranslateFunctionDeclareStmt (line 173) | func (t *Translator) TranslateFunctionDeclareStmt(program *TAProgram, ... method TranslateCallExpr (line 196) | func (t *Translator) TranslateCallExpr(program *TAProgram, node ast.AS... method TranslateReturnStmt (line 227) | func (t *Translator) TranslateReturnStmt(program *TAProgram, node ast.... function NewTranslator (line 13) | func NewTranslator() *Translator { FILE: translator/translator_test.go function TestExprTranslator (line 10) | func TestExprTranslator(t *testing.T) { function TestAssignStmt (line 28) | func TestAssignStmt(t *testing.T) { function TestTranslator_TranslateDeclareStmt (line 40) | func TestTranslator_TranslateDeclareStmt(t *testing.T) { function TestAssignStmt2 (line 52) | func TestAssignStmt2(t *testing.T) { function TestBlock (line 61) | func TestBlock(t *testing.T) { function TestTranslator_TranslateIfStmt (line 81) | func TestTranslator_TranslateIfStmt(t *testing.T) { function TestTranslator_TranslateIfElseStmt (line 95) | func TestTranslator_TranslateIfElseStmt(t *testing.T) { function TestTranslator_TranslateIfElseIfStmt (line 114) | func TestTranslator_TranslateIfElseIfStmt(t *testing.T) { function TestSimpleFunction (line 141) | func TestSimpleFunction(t *testing.T) { function TestRecursionFunc (line 152) | func TestRecursionFunc(t *testing.T) { FILE: translator/util.go function IsInstanceOfExpr (line 8) | func IsInstanceOfExpr(instance interface{}) bool { function IsNil (line 13) | func IsNil(i interface{}) bool { FILE: translator/util_test.go function TestIsInstanceOf (line 9) | func TestIsInstanceOf(t *testing.T) { FILE: vm/vm.go type VM (line 9) | type VM struct method Fetch (line 37) | func (vm *VM) Fetch() int { method Decode (line 42) | func (vm *VM) Decode(code int) *gen.Instruction { method Exec (line 46) | func (vm *VM) Exec(instr *gen.Instruction) { method run (line 114) | func (vm *VM) run() { method GetSpMemory (line 124) | func (vm *VM) GetSpMemory(offset int) int { method runOneStep (line 129) | func (vm *VM) runOneStep() bool { function NewVM (line 16) | func NewVM(staticArea []int, opcodes []int, entry *int) *VM { FILE: vm/vm_test.go function TestCalcExpr (line 12) | func TestCalcExpr(t *testing.T) { function TestRecursiveFunction (line 66) | func TestRecursiveFunction(t *testing.T) { function TestRecursivefunction1 (line 205) | func TestRecursivefunction1(t *testing.T) {