LuaFuncName getFuncname(LuaAST funcname) { LuaFuncName rst = new LuaFuncName(); foreach (LuaAST n in funcname.ComponentGroup) { LuaVariable v = getVariable(n); rst.Names.Add(v.Name); } if (funcname.Components.ContainsKey("colonName")) { LuaVariable v = getVariable(funcname.Components["colonName"]); rst.Names.Add(v.Name); rst.isColon = true; } return(rst); }
void walkFunctionExp(LuaAST st) { LuaFuncName funcname = getFuncname(st.Components["funcname"]); if (funcname.Names.Count == 1) { Function f = new Function(funcname.Names[0]); f.ReturnType = m_ac.Types.NullType; f.StartPos = st.Components["funcname"].start; string param = "()"; LuaAST body = st.Components["funcbody"]; if (body.Components.ContainsKey("parlist")) { param = "("; List <LuaVariable> vl = null; if (body.Components["parlist"].Components.ContainsKey("namelist")) { vl = getNamelist(body.Components["parlist"].Components["namelist"]); for (int i = 0; i < vl.Count; i++) { param += (i == 0 ? "" : ",") + vl[i].Name; } } if (body.Components["parlist"].Token != null) { param += ((vl == null || vl.Count == 0) ? "" : ",") + "..."; } param += ")"; } f.Param.Add(param); f.Desc.Add(""); f.Static = true; m_currentScope.addFunction(f); } walkFuncionBody(st.Components["funcbody"]); }
LuaFuncName getFuncname(LuaAST funcname) { LuaFuncName rst = new LuaFuncName(); foreach (LuaAST n in funcname.ComponentGroup) { LuaVariable v = getVariable(n); rst.Names.Add(v.Name); } if(funcname.Components.ContainsKey("colonName")){ LuaVariable v = getVariable(funcname.Components["colonName"]); rst.Names.Add(v.Name); rst.isColon = true; } return rst; }