001 // Copyright 2008 Waterken Inc. under the terms of the MIT X license 002 // found at http://www.opensource.org/licenses/mit-license.html 003 package org.waterken.syntax; 004 005 import org.joe_e.Powerless; 006 import org.joe_e.array.IntArray; 007 import org.joe_e.array.PowerlessArray; 008 import org.ref_send.deserializer; 009 import org.ref_send.name; 010 011 /** 012 * Signals invalid syntax. 013 */ 014 public class 015 BadSyntax extends Exception implements Powerless { 016 static private final long serialVersionUID = 1L; 017 018 /** 019 * path to the source code 020 */ 021 public final String source; 022 023 /** 024 * location within {@link #source} 025 */ 026 public final PowerlessArray<IntArray> span; 027 028 /** 029 * Constructs an instance. 030 * @param source {@link #source} 031 * @param span {@link #span} 032 * @param cause {@link #getCause} 033 */ 034 public @deserializer 035 BadSyntax(@name("source") final String source, 036 @name("span") final PowerlessArray<IntArray> span, 037 @name("cause") final Exception cause) { 038 super("<" + source + "> " + span + " : ", cause); 039 this.source = source; 040 this.span = span; 041 } 042 }