public override void ExitFuncproc([NotNull] XSharpParser.FuncprocContext context) { if (context.InitExit != null) { if (!_options.HasRuntime) { _parseErrors.Add(new ParseErrorData(context, ErrorCode.ERR_FeatureNotAvailableInDialect, "Init/Exit procedure", _options.Dialect.ToString())); } if (context.T.Type != XSharpParser.PROCEDURE) { _parseErrors.Add(new ParseErrorData(context.InitExit, ErrorCode.ERR_FunctionsCannotHaveInitExit)); } else { if (context.Sig.ParamList?._Params.Count > 0) { _parseErrors.Add(new ParseErrorData(context, ErrorCode.ERR_InitProceduresCannotDefineParameters)); } } } if (context.T2 != null) { var endToken = context.T2 as XSharpToken; if (endToken != null && endToken.Type != context.T.Type) { _parseErrors.Add(new ParseErrorData(endToken, ErrorCode.ERR_UnexpectedToken, endToken.Text)); } } }
public override void EnterFuncproc([NotNull] XSharpParser.FuncprocContext context) => AddMethodInfo(GetMethodName(context.Sig), "", MethodInfoType.FuncProc, context.statementBlock());