@@ -20,12 +20,9 @@ immutable int column; /// 1-origin mixin SimpleClass; override string toString() const - { - return sprintf!("%s:%d:%d")(filename, lineno, column); - } - + { return sprintf!("%s:%d:%d")(filename, lineno, column); } static LexPosition dummy; static this(){ dummy = new LexPosition("",0,0); } } @@ -53,16 +50,51 @@ { LexPosition pos; this( LexPosition pos, string msg, string file=null, size_t line=0, Throwable next=null ) { - if(pos is null) - super(sprintf!("[??] %s")(msg), file, line, next); - else - super(sprintf!("[%s] %s")(pos, msg), file, line, next); + string fullmsg = pos is null ? sprintf!("\n[??] %s")(msg) + : sprintf!("\n[%s] %s")(pos, msg); + for(int i=0; i