public override void ExitVodll([NotNull] XSharpParser.VodllContext context) { if (context.Ordinal != null) { _parseErrors.Add(new ParseErrorData(context, ErrorCode.ERR_InvalidDLLEntryPoint, "A numeric entrypoint (" + context.Ordinal.Text.Substring(1) + ") is not supported in .Net")); } if (context.Address != null || context.Number != null) { if (context.Address == null || context.Number == null) { _parseErrors.Add(new ParseErrorData(context, ErrorCode.ERR_InvalidDLLEntryPoint, "Both the @ sign and the number must be specified")); } else if (context.Address.StartIndex > context.Entrypoint.stop.StopIndex + 1 || context.Number.StartIndex > context.Address.StopIndex + 1) { _parseErrors.Add(new ParseErrorData(context, ErrorCode.ERR_InvalidDLLEntryPoint, "No spaces allowed in entrypoint name")); } } if (context.CharSet != null) { var text = context.CharSet.Text.ToUpper(); if (text != "AUTO" && text != "ANSI" && text != "UNICODE") { _parseErrors.Add(new ParseErrorData(context, ErrorCode.ERR_UnexpectedToken, context.CharSet.Text)); } } }
public override void EnterVodll([NotNull] XSharpParser.VodllContext context) { var tokens = context.Modifiers?._Tokens; XTypeMember newMethod = new XTypeMember(context.ShortName, Kind.VODLL, decodeModifiers(tokens), decodeVisibility(tokens), new TextRange(context), new TextInterval(context), context.ReturnType == null ? "Void" : context.ReturnType.GetText(), isStatic(tokens)); // addParameters(context.Params, newMethod); addGlobalMember(newMethod); }
public override void ExitVodll([NotNull] XSharpParser.VodllContext context) { endMember(context); }