/*
Компилятор языка программирования
Объектно-ориентированный продвинутый векторный транслятор
Copyright © 2021, 2024 Малик Разработчик
Это свободная программа: вы можете перераспространять ее и/или изменять
ее на условиях Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Стандартной
общественной лицензии GNU.
Вы должны были получить копию Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<https://www.gnu.org/licenses/>.
*/
package ru.malik.elaborarer.avtoo.lang;
import platform.independent.streamformat.*;
public class CompilerException(Exception)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class BinarySourceException(SourceException)
{
private int fldOffset;
private int fldPosition;
private BinarySource fldSource;
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
public String toString() {
String message = super.toString();
String offset = Int.toHexString(fldOffset);
String eoln = Platform.instance.lineSeparator;
return (new StringBuilder() + (message != null ? message : "") +
eoln + package.getResourceString("property.offset") + "0x" + offset
).toString();
}
public final int offset { read = fldOffset, write = fldOffset }
public final int position { read = fldPosition, write = setPosition }
public final BinarySource source { read = fldSource, write = setSource }
private void setPosition(int newPosition) {
fldPosition = newPosition;
ChunkArray chunks = null;
BinarySource source = fldSource;
if(source != null && (chunks = source.chunks) != null && newPosition >= 0 && newPosition < chunks.length) fldOffset = chunks[newPosition].offset;
}
private void setSource(BinarySource newSource) {
if((fldSource = newSource) != null) fldRelativePath = newSource.relativePath;
}
}
public class IllegalArrayDimensionsCountException(IllegalArgumentException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalClassTypeStateException(IllegalCompilerObjectStateException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalCompilerObjectStateException(IllegalStateException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalConstantTypeException(RuntimeException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalFieldStateException(IllegalMemberStateException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalFieldsMapStateException(IllegalCompilerObjectStateException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalLexemeTypeException(RuntimeException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalMemberStateException(IllegalCompilerObjectStateException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalProgrammeStateException(IllegalCompilerObjectStateException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class IllegalSourceStateException(IllegalCompilerObjectStateException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}
public class SourceException(CompilerException)
{
String fldRelativePath;
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
public String toString() {
String message = message;
String relativePath = fldRelativePath;
String eoln = Platform.instance.lineSeparator;
return (new StringBuilder() + (message != null ? message : "") +
eoln + package.getResourceString("property.source") + (relativePath != null && relativePath.length > 0 ? relativePath : package.getResourceString("value.source.unknown"))
).toString();
}
public final String relativePath { read = fldRelativePath, write = fldRelativePath }
}
public class TextSourceException(SourceException)
{
private int fldPosition;
private int fldLineIndex;
private int fldCharIndex;
private TextSource fldSource;
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
public String toString() {
String message = super.toString();
String lineNumber = Int.toString(fldLineIndex + 1);
String charNumber = Int.toString(fldCharIndex + 1);
String eoln = Platform.instance.lineSeparator;
return (new StringBuilder() + (message != null ? message : "") +
eoln + package.getResourceString("property.line") + lineNumber +
eoln + package.getResourceString("property.char") + charNumber
).toString();
}
public final int lineIndex { read = fldLineIndex, write = fldLineIndex }
public final int charIndex { read = fldCharIndex, write = fldCharIndex }
public final int position { read = fldPosition, write = setPosition }
public final TextSource source { read = fldSource, write = setSource }
private void setPosition(int newPosition) {
fldPosition = newPosition;
TextSource source = fldSource;
if(source != null && newPosition >= 0 && newPosition < source.length)
{
int2 location = source.getLexemeLocation(newPosition);
fldLineIndex = location[0];
fldCharIndex = location[1];
}
}
private void setSource(TextSource newSource) {
if((fldSource = newSource) != null) fldRelativePath = newSource.relativePath;
}
}
public class UnencodableDataException(UnsupportedDataException)
{
public () { }
public (String message): super(message) { }
public (Throwable cause): super(cause) { }
public (String message, Throwable cause): super(message, cause) { }
}