Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Common/SemanticError.h

    rfb114fa1 r138e29e  
    2323#include <iostream>
    2424
     25#include "utility.h"
     26
     27struct error {
     28        std::string description;
     29        CodeLocation location;
     30
     31        error() = default;
     32        error( const std::string& str ) : description( str ) {}
     33
     34        void maybeSet( const CodeLocation& location ) {
     35                if( this->location.linenumber < 0 ) {
     36                        this->location = location;
     37                }
     38        }
     39};
     40
    2541class SemanticError : public std::exception {
    2642  public:
     
    3551        void print( std::ostream &os );
    3652
     53        void set_location( const CodeLocation& location );
    3754        // constructs an exception using the given message and the printed
    3855        // representation of the obj (T must have a print method)
    3956  private:
    40         std::list< std::string > errors;
     57        std::list< error > errors;
    4158};
    4259
Note: See TracChangeset for help on using the changeset viewer.