!exceptions.avt

Переключить прокрутку окна
Загрузить этот исходный код

/*
    Компилятор языка программирования
    Объектно-ориентированный продвинутый векторный транслятор

    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) {  }
}