private void CGNameExp(FuncInfo funcInfo, ConstExpNode node, int a) { LocalVarInfo varInfo = null; int r = 0; if (funcInfo.VarDic1.TryGetValue(node.name, out varInfo)) { funcInfo.EmitMove(a, varInfo.RegIndex); } else if (funcInfo.UpValOfIndex(node.name) != -1) { r = funcInfo.UpValOfIndex(node.name); funcInfo.EmitGetUpval(a, r); } //else if (funcInfo.ConstDic.TryGetValue(node.name, out r)) // { // funcInfo.EmitLoadK(a, node.name); // } else { var exp = new TableAccessExpNode(); exp.PreExp = new ConstExpNode(new Token(TokenType.Identifier, "_ENV", -1)); exp.Exp = new ConstExpNode(new Token(TokenType.String, node.name, -1)); CGTableAccessExp(funcInfo, exp, a); } }