// $Id: LineNo.java,v 1.2 1999/05/20 09:32:26 m-hirano Exp $
// $RWC_Release: Omni-1.6 $
// $RWC_Copyright:
//  Omni Compiler Software Version 1.5-1.6
//  Copyright (C) 2002 PC Cluster Consortium
//  
//  This software is free software; you can redistribute it and/or modify
//  it under the terms of the GNU Lesser General Public License version
//  2.1 published by the Free Software Foundation.
//  
//  Omni Compiler Software Version 1.0-1.4
//  Copyright (C) 1999, 2000, 2001.
//   Tsukuba Research Center, Real World Computing Partnership, Japan.
//  
//  Please check the Copyright and License information in the files named
//  COPYRIGHT and LICENSE under the top  directory of the Omni Compiler
//  Software release kit.
//  
//  
//  $
package exc.object;

public class LineNo {
  String fname;
  int ln;

  static LineNo current_lineno;

  public LineNo(String fname,int ln){
    this.fname = fname.intern();
    this.ln = ln;
  }
  
  public int lineNo() { return ln; }
  public String fileName() { return fname; }

  public static LineNo make(String fname,int ln){
    if(current_lineno == null ||
       current_lineno.ln != ln ||
       !current_lineno.fname.equals(fname)){
      if(fname == null) {
	if(current_lineno == null) fname = "*";
	else fname = current_lineno.fname;
      }
      current_lineno =  new LineNo(fname,ln);
    }
    return current_lineno;
  }
}

