@@ -0,0 +1,1386 @@
+package parse;%0A%0Aimport java_cup.runtime.ComplexSymbolFactory.Location;%0A%0Apublic class Loc %7B%0A%0A   public final Location left;%0A   public final Location right;%0A%0A   private Loc(Location left, Location right) %7B%0A      this.left = left;%0A      this.right = right;%0A   %7D%0A%0A   public static Loc loc() %7B%0A      return loc(new Location(-1, -1));%0A   %7D%0A%0A   public static Loc loc(Location left) %7B%0A      return loc(left, left);%0A   %7D%0A%0A   public static Loc loc(Location left, Location right) %7B%0A      return new Loc(left, right);%0A   %7D%0A%0A   @Override%0A   public String toString() %7B%0A      if (left.getUnit().equals(%22unknown%22) && right.getUnit().equals(%22unknown%22))%0A         return String.format(%22%25d/%25d-%25d/%25d%22,%0A                              left.getLine(), left.getColumn(),%0A                              right.getLine(), right.getColumn());%0A      else if (left.getUnit().equals(right.getUnit()))%0A         return String.format(%22%25s:%25d/%25d-%25d/%25d%22,%0A                              left.getUnit(),%0A                              left.getLine(), left.getColumn(),%0A                              right.getLine(), right.getColumn());%0A      else%0A         return String.format(%22%25s:%25d/%25d-%25s:%25d/%25d%22,%0A                              left.getUnit(),%0A                              left.getLine(), left.getColumn(),%0A                              right.getUnit(),%0A                              right.getLine(), right.getColumn());%0A   %7D%0A%0A%7D%0A

Add range locations