public FunctionDefinitionExpression(LuaParser.FuncbodyContext context, ScriptLoadingContext lcontext, ParserRuleContext declarationContext, bool pushSelfParam = false, Table globalContext = null) : base(context, lcontext) { var parlist = context.parlist(); List <string> paramnames = new List <string>(); if (pushSelfParam) { paramnames.Add("self"); } if (parlist != null) { var namelist = parlist.namelist(); if (namelist != null) { paramnames.AddRange(namelist.NAME() .Select(t => t.GetText())); } } m_HasVarArgs = (parlist != null && parlist.vararg() != null); if (m_HasVarArgs) { paramnames.Add(WellKnownSymbols.VARARGS); } lcontext.Scope.PushFunction(this, m_HasVarArgs); if (globalContext != null) { m_GlobalEnv = globalContext; m_Env = lcontext.Scope.TryDefineLocal(WellKnownSymbols.ENV); } else { lcontext.Scope.ForceEnvUpValue(); } m_ParamNames = DefineArguments(paramnames, lcontext); m_Statement = NodeFactory.CreateStatement(context.block(), lcontext); m_StackFrame = lcontext.Scope.PopFunction(); m_Begin = BuildSourceRef(declarationContext.Start, context.PAREN_CLOSE().Symbol); m_End = BuildSourceRef(context.Stop, context.END()); }
public void ExitFuncbody([NotNull] LuaParser.FuncbodyContext context) { throw new NotImplementedException(); }
public virtual void ExitFuncbody([NotNull] LuaParser.FuncbodyContext context) { }
public virtual Result VisitFuncbody([NotNull] LuaParser.FuncbodyContext context) { return(VisitChildren(context)); }
public void EnterFuncbody([NotNull] LuaParser.FuncbodyContext context) => DefaultEnter(context);
public void ExitFuncbody([NotNull] LuaParser.FuncbodyContext context) => DefaultExit(context);