Antlr4.Tool.ANTLRMessage.GetMessageTemplate C# (CSharp) Method

GetMessageTemplate() public method

public GetMessageTemplate ( bool verbose ) : Template
verbose bool
return Template
        public virtual Template GetMessageTemplate(bool verbose)
        {
            Template messageST = new Template(GetErrorType().msg);
            messageST.impl.Name = errorType.Name;

            messageST.Add("verbose", verbose);
            object[] args = GetArgs();
            for (int i = 0; i < args.Length; i++)
            {
                string attr = "arg";
                if (i > 0)
                    attr += i + 1;
                messageST.Add(attr, args[i]);
            }
            if (args.Length < 2)
                messageST.Add("arg2", null); // some messages ref arg2

            Exception cause = GetCause();
            if (cause != null)
            {
                messageST.Add("exception", cause);
                messageST.Add("stackTrace", cause.StackTrace);
            }
            else
            {
                messageST.Add("exception", null); // avoid ST error msg
                messageST.Add("stackTrace", null);
            }

            return messageST;
        }

Usage Example

Example #1
0
        public virtual Template GetMessageTemplate(ANTLRMessage msg)
        {
            Template messageST       = msg.GetMessageTemplate(tool.longMessages);
            Template locationST      = GetLocationFormat();
            Template reportST        = GetReportFormat(msg.GetErrorType().severity);
            Template messageFormatST = GetMessageFormat();

            bool locationValid = false;

            if (msg.line != -1)
            {
                locationST.Add("line", msg.line);
                locationValid = true;
            }
            if (msg.charPosition != -1)
            {
                locationST.Add("column", msg.charPosition);
                locationValid = true;
            }
            if (msg.fileName != null)
            {
                string f = msg.fileName;
                // Don't show path to file in messages; too long.
                string displayFileName = msg.fileName;
                if (File.Exists(f))
                {
                    displayFileName = Path.GetFileName(f);
                }
                locationST.Add("file", displayFileName);
                locationValid = true;
            }

            messageFormatST.Add("id", msg.GetErrorType().code);
            messageFormatST.Add("text", messageST);

            if (locationValid)
            {
                reportST.Add("location", locationST);
            }
            reportST.Add("message", messageFormatST);
            //((DebugST)reportST).inspect();
            //		reportST.impl.dump();
            return(reportST);
        }
All Usage Examples Of Antlr4.Tool.ANTLRMessage::GetMessageTemplate