Peter, Thanks for that. I've applied it to SVN so unless someone objects that it has messed up their error message parsing it will be in the next release. Regards, David
On 14/03/2015 20:39, Peter Gammie wrote:
David,
On 14 Dec 2014, at 9:23, David Matthews <David.Matthews at prolingua.co.uk> wrote:
I seem to recall that the current format of error messages was designed to be parsed by emacs but probably as long ago as the 1980s. I have no objection at all to changing the format to something more appropriate. It probably needs no more than a change to the bit of code around line 443 in basis/FinalPolyML.sml that assembles a text error message from the location information. If you want to experiment and send me a patch that works for you I?m happy to look at it.
Here?s a very minor patch to generate Emacs-compatible errors and warnings. See below. It?s an SVN diff - hope that works for you.
cheers, peter
Index: basis/FinalPolyML.sml
--- basis/FinalPolyML.sml (revision 1980) +++ basis/FinalPolyML.sml (working copy) @@ -441,10 +441,14 @@ else (* Plain text form. *) ( printString(concat
( (if hard then ["Error-"] else ["Warning-"]) @
( (if file = "" then ["poly: "] else [file, ":"]) @(if startLine = 0 then [] else [Int.toString startLine]) @(if startPosition = 0 then [": "] else [".", Int.toString startPosition, "-", Int.toString endPosition, ": "]) @(if hard then ["error: "] else ["warning: "]) ));+(* ( (if hard then ["Error-"] else ["Warning-"]) @ (if file = "" then [] else [" in '", file, "',"]) @ (if startLine = 0 then [] else [" line ", Int.toString startLine]) @
(if startLine = 0 andalso file = "" then [] else [".\n"])));
(if startLine = 0 andalso file = "" then [] else [".\n"]))); *) PolyML.prettyPrint(printString, !lineLength) fullMessage ) end
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml