Skip to main content

nwnrs_nwscript/
diag.rs

1use std::{error::Error, fmt};
2
3use serde::{Deserialize, Serialize};
4
5/// Stable compiler and VM error codes used by the upstream `NWScript` compiler.
6#[derive(#[automatically_derived]
impl ::core::fmt::Debug for CompilerErrorCode {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::write_str(f,
            match self {
                CompilerErrorCode::UnexpectedCharacter =>
                    "UnexpectedCharacter",
                CompilerErrorCode::FatalCompilerError => "FatalCompilerError",
                CompilerErrorCode::ProgramCompoundStatementAtStart =>
                    "ProgramCompoundStatementAtStart",
                CompilerErrorCode::UnexpectedEndCompoundStatement =>
                    "UnexpectedEndCompoundStatement",
                CompilerErrorCode::AfterCompoundStatementAtEnd =>
                    "AfterCompoundStatementAtEnd",
                CompilerErrorCode::ParsingVariableList =>
                    "ParsingVariableList",
                CompilerErrorCode::UnknownStateInCompiler =>
                    "UnknownStateInCompiler",
                CompilerErrorCode::InvalidDeclarationType =>
                    "InvalidDeclarationType",
                CompilerErrorCode::NoLeftBracketOnExpression =>
                    "NoLeftBracketOnExpression",
                CompilerErrorCode::NoRightBracketOnExpression =>
                    "NoRightBracketOnExpression",
                CompilerErrorCode::BadStartOfStatement =>
                    "BadStartOfStatement",
                CompilerErrorCode::NoLeftBracketOnArgList =>
                    "NoLeftBracketOnArgList",
                CompilerErrorCode::NoRightBracketOnArgList =>
                    "NoRightBracketOnArgList",
                CompilerErrorCode::NoSemicolonAfterExpression =>
                    "NoSemicolonAfterExpression",
                CompilerErrorCode::ParsingAssignmentStatement =>
                    "ParsingAssignmentStatement",
                CompilerErrorCode::BadLValue => "BadLValue",
                CompilerErrorCode::BadConstantType => "BadConstantType",
                CompilerErrorCode::IdentifierListFull => "IdentifierListFull",
                CompilerErrorCode::NonIntegerIdForIntegerConstant =>
                    "NonIntegerIdForIntegerConstant",
                CompilerErrorCode::NonFloatIdForFloatConstant =>
                    "NonFloatIdForFloatConstant",
                CompilerErrorCode::NonStringIdForStringConstant =>
                    "NonStringIdForStringConstant",
                CompilerErrorCode::VariableAlreadyUsedWithinScope =>
                    "VariableAlreadyUsedWithinScope",
                CompilerErrorCode::VariableDefinedWithoutType =>
                    "VariableDefinedWithoutType",
                CompilerErrorCode::IncorrectVariableStateLeftOnStack =>
                    "IncorrectVariableStateLeftOnStack",
                CompilerErrorCode::NonIntegerExpressionWhereIntegerRequired =>
                    "NonIntegerExpressionWhereIntegerRequired",
                CompilerErrorCode::VoidExpressionWhereNonVoidRequired =>
                    "VoidExpressionWhereNonVoidRequired",
                CompilerErrorCode::InvalidParametersForAssignment =>
                    "InvalidParametersForAssignment",
                CompilerErrorCode::DeclarationDoesNotMatchParameters =>
                    "DeclarationDoesNotMatchParameters",
                CompilerErrorCode::LogicalOperationHasInvalidOperands =>
                    "LogicalOperationHasInvalidOperands",
                CompilerErrorCode::EqualityTestHasInvalidOperands =>
                    "EqualityTestHasInvalidOperands",
                CompilerErrorCode::ComparisonTestHasInvalidOperands =>
                    "ComparisonTestHasInvalidOperands",
                CompilerErrorCode::ShiftOperationHasInvalidOperands =>
                    "ShiftOperationHasInvalidOperands",
                CompilerErrorCode::ArithmeticOperationHasInvalidOperands =>
                    "ArithmeticOperationHasInvalidOperands",
                CompilerErrorCode::UnknownOperationInSemanticCheck =>
                    "UnknownOperationInSemanticCheck",
                CompilerErrorCode::ScriptTooLarge => "ScriptTooLarge",
                CompilerErrorCode::ReturnStatementHasNoParameters =>
                    "ReturnStatementHasNoParameters",
                CompilerErrorCode::NoWhileAfterDoKeyword =>
                    "NoWhileAfterDoKeyword",
                CompilerErrorCode::FunctionDefinitionMissingName =>
                    "FunctionDefinitionMissingName",
                CompilerErrorCode::FunctionDefinitionMissingParameterList =>
                    "FunctionDefinitionMissingParameterList",
                CompilerErrorCode::MalformedParameterList =>
                    "MalformedParameterList",
                CompilerErrorCode::BadTypeSpecifier => "BadTypeSpecifier",
                CompilerErrorCode::NoSemicolonAfterStructure =>
                    "NoSemicolonAfterStructure",
                CompilerErrorCode::EllipsisInIdentifier =>
                    "EllipsisInIdentifier",
                CompilerErrorCode::FileNotFound => "FileNotFound",
                CompilerErrorCode::IncludeRecursive => "IncludeRecursive",
                CompilerErrorCode::IncludeTooManyLevels =>
                    "IncludeTooManyLevels",
                CompilerErrorCode::ParsingReturnStatement =>
                    "ParsingReturnStatement",
                CompilerErrorCode::ParsingIdentifierList =>
                    "ParsingIdentifierList",
                CompilerErrorCode::ParsingFunctionDeclaration =>
                    "ParsingFunctionDeclaration",
                CompilerErrorCode::DuplicateFunctionImplementation =>
                    "DuplicateFunctionImplementation",
                CompilerErrorCode::TokenTooLong => "TokenTooLong",
                CompilerErrorCode::UndefinedStructure => "UndefinedStructure",
                CompilerErrorCode::LeftOfStructurePartNotStructure =>
                    "LeftOfStructurePartNotStructure",
                CompilerErrorCode::RightOfStructurePartNotFieldInStructure =>
                    "RightOfStructurePartNotFieldInStructure",
                CompilerErrorCode::UndefinedFieldInStructure =>
                    "UndefinedFieldInStructure",
                CompilerErrorCode::StructureRedefined => "StructureRedefined",
                CompilerErrorCode::VariableUsedTwiceInSameStructure =>
                    "VariableUsedTwiceInSameStructure",
                CompilerErrorCode::FunctionImplementationAndDefinitionDiffer
                    => "FunctionImplementationAndDefinitionDiffer",
                CompilerErrorCode::MismatchedTypes => "MismatchedTypes",
                CompilerErrorCode::IntegerNotAtTopOfStack =>
                    "IntegerNotAtTopOfStack",
                CompilerErrorCode::ReturnTypeAndFunctionTypeMismatched =>
                    "ReturnTypeAndFunctionTypeMismatched",
                CompilerErrorCode::NotAllControlPathsReturnAValue =>
                    "NotAllControlPathsReturnAValue",
                CompilerErrorCode::UndefinedIdentifier =>
                    "UndefinedIdentifier",
                CompilerErrorCode::NoFunctionMainInScript =>
                    "NoFunctionMainInScript",
                CompilerErrorCode::FunctionMainMustHaveVoidReturnValue =>
                    "FunctionMainMustHaveVoidReturnValue",
                CompilerErrorCode::FunctionMainMustHaveNoParameters =>
                    "FunctionMainMustHaveNoParameters",
                CompilerErrorCode::NonVoidFunctionCannotBeAStatement =>
                    "NonVoidFunctionCannotBeAStatement",
                CompilerErrorCode::BadVariableName => "BadVariableName",
                CompilerErrorCode::NonOptionalParameterCannotFollowOptionalParameter
                    => "NonOptionalParameterCannotFollowOptionalParameter",
                CompilerErrorCode::TypeDoesNotHaveAnOptionalParameter =>
                    "TypeDoesNotHaveAnOptionalParameter",
                CompilerErrorCode::NonConstantInFunctionDeclaration =>
                    "NonConstantInFunctionDeclaration",
                CompilerErrorCode::ParsingConstantVector =>
                    "ParsingConstantVector",
                CompilerErrorCode::OperandMustBeAnIntegerLValue =>
                    "OperandMustBeAnIntegerLValue",
                CompilerErrorCode::ConditionalRequiresSecondExpression =>
                    "ConditionalRequiresSecondExpression",
                CompilerErrorCode::ConditionalMustHaveMatchingReturnTypes =>
                    "ConditionalMustHaveMatchingReturnTypes",
                CompilerErrorCode::MultipleDefaultStatementsWithinSwitch =>
                    "MultipleDefaultStatementsWithinSwitch",
                CompilerErrorCode::MultipleCaseConstantStatementsWithinSwitch
                    => "MultipleCaseConstantStatementsWithinSwitch",
                CompilerErrorCode::CaseParameterNotAConstantInteger =>
                    "CaseParameterNotAConstantInteger",
                CompilerErrorCode::SwitchMustEvaluateToAnInteger =>
                    "SwitchMustEvaluateToAnInteger",
                CompilerErrorCode::NoColonAfterDefaultLabel =>
                    "NoColonAfterDefaultLabel",
                CompilerErrorCode::NoColonAfterCaseLabel =>
                    "NoColonAfterCaseLabel",
                CompilerErrorCode::NoSemicolonAfterStatement =>
                    "NoSemicolonAfterStatement",
                CompilerErrorCode::BreakOutsideOfLoopOrCaseStatement =>
                    "BreakOutsideOfLoopOrCaseStatement",
                CompilerErrorCode::TooManyParametersOnFunction =>
                    "TooManyParametersOnFunction",
                CompilerErrorCode::UnableToOpenFileForWriting =>
                    "UnableToOpenFileForWriting",
                CompilerErrorCode::UnterminatedStringConstant =>
                    "UnterminatedStringConstant",
                CompilerErrorCode::NoFunctionIntscInScript =>
                    "NoFunctionIntscInScript",
                CompilerErrorCode::FunctionIntscMustHaveVoidReturnValue =>
                    "FunctionIntscMustHaveVoidReturnValue",
                CompilerErrorCode::FunctionIntscMustHaveNoParameters =>
                    "FunctionIntscMustHaveNoParameters",
                CompilerErrorCode::JumpingOverDeclarationStatementsCaseDisallowed
                    => "JumpingOverDeclarationStatementsCaseDisallowed",
                CompilerErrorCode::JumpingOverDeclarationStatementsDefaultDisallowed
                    => "JumpingOverDeclarationStatementsDefaultDisallowed",
                CompilerErrorCode::ElseWithoutCorrespondingIf =>
                    "ElseWithoutCorrespondingIf",
                CompilerErrorCode::IfConditionCannotBeFollowedByANullStatement
                    => "IfConditionCannotBeFollowedByANullStatement",
                CompilerErrorCode::InvalidTypeForConstKeyword =>
                    "InvalidTypeForConstKeyword",
                CompilerErrorCode::ConstKeywordCannotBeUsedOnNonGlobalVariables
                    => "ConstKeywordCannotBeUsedOnNonGlobalVariables",
                CompilerErrorCode::InvalidValueAssignedToConstant =>
                    "InvalidValueAssignedToConstant",
                CompilerErrorCode::SwitchConditionCannotBeFollowedByANullStatement
                    => "SwitchConditionCannotBeFollowedByANullStatement",
                CompilerErrorCode::WhileConditionCannotBeFollowedByANullStatement
                    => "WhileConditionCannotBeFollowedByANullStatement",
                CompilerErrorCode::ForStatementCannotBeFollowedByANullStatement
                    => "ForStatementCannotBeFollowedByANullStatement",
                CompilerErrorCode::CannotIncludeThisFileTwice =>
                    "CannotIncludeThisFileTwice",
                CompilerErrorCode::ElseCannotBeFollowedByANullStatement =>
                    "ElseCannotBeFollowedByANullStatement",
                CompilerErrorCode::VmTooManyInstructions =>
                    "VmTooManyInstructions",
                CompilerErrorCode::VmTooManyLevelsOfRecursion =>
                    "VmTooManyLevelsOfRecursion",
                CompilerErrorCode::VmFileNotOpened => "VmFileNotOpened",
                CompilerErrorCode::VmFileNotCompiledSuccessfully =>
                    "VmFileNotCompiledSuccessfully",
                CompilerErrorCode::VmInvalidAuxCode => "VmInvalidAuxCode",
                CompilerErrorCode::VmNullVirtualMachineNode =>
                    "VmNullVirtualMachineNode",
                CompilerErrorCode::VmStackOverflow => "VmStackOverflow",
                CompilerErrorCode::VmStackUnderflow => "VmStackUnderflow",
                CompilerErrorCode::VmInvalidOpCode => "VmInvalidOpCode",
                CompilerErrorCode::VmInvalidExtraDataOnOpCode =>
                    "VmInvalidExtraDataOnOpCode",
                CompilerErrorCode::VmInvalidCommand => "VmInvalidCommand",
                CompilerErrorCode::VmFakeShortcutLogicalOperation =>
                    "VmFakeShortcutLogicalOperation",
                CompilerErrorCode::VmDivideByZero => "VmDivideByZero",
                CompilerErrorCode::VmFakeAbortScript => "VmFakeAbortScript",
                CompilerErrorCode::VmIpOutOfCodeSegment =>
                    "VmIpOutOfCodeSegment",
                CompilerErrorCode::VmCommandImplementerNotSet =>
                    "VmCommandImplementerNotSet",
                CompilerErrorCode::VmUnknownTypeOnRunTimeStack =>
                    "VmUnknownTypeOnRunTimeStack",
                CompilerErrorCode::AlreadyPrinted => "AlreadyPrinted",
            })
    }
}Debug, #[automatically_derived]
impl ::core::clone::Clone for CompilerErrorCode {
    #[inline]
    fn clone(&self) -> CompilerErrorCode { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for CompilerErrorCode { }Copy, #[automatically_derived]
impl ::core::cmp::PartialEq for CompilerErrorCode {
    #[inline]
    fn eq(&self, other: &CompilerErrorCode) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for CompilerErrorCode {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::hash::Hash for CompilerErrorCode {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        ::core::hash::Hash::hash(&__self_discr, state)
    }
}Hash, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
    {
        #[allow(unused_extern_crates, clippy :: useless_attribute)]
        extern crate serde as _serde;
        ;
        #[automatically_derived]
        impl _serde::Serialize for CompilerErrorCode {
            fn serialize<__S>(&self, __serializer: __S)
                -> _serde::__private228::Result<__S::Ok, __S::Error> where
                __S: _serde::Serializer {
                match *self {
                    CompilerErrorCode::UnexpectedCharacter =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 0u32, "UnexpectedCharacter"),
                    CompilerErrorCode::FatalCompilerError =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 1u32, "FatalCompilerError"),
                    CompilerErrorCode::ProgramCompoundStatementAtStart =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 2u32,
                            "ProgramCompoundStatementAtStart"),
                    CompilerErrorCode::UnexpectedEndCompoundStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 3u32,
                            "UnexpectedEndCompoundStatement"),
                    CompilerErrorCode::AfterCompoundStatementAtEnd =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 4u32, "AfterCompoundStatementAtEnd"),
                    CompilerErrorCode::ParsingVariableList =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 5u32, "ParsingVariableList"),
                    CompilerErrorCode::UnknownStateInCompiler =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 6u32, "UnknownStateInCompiler"),
                    CompilerErrorCode::InvalidDeclarationType =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 7u32, "InvalidDeclarationType"),
                    CompilerErrorCode::NoLeftBracketOnExpression =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 8u32, "NoLeftBracketOnExpression"),
                    CompilerErrorCode::NoRightBracketOnExpression =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 9u32, "NoRightBracketOnExpression"),
                    CompilerErrorCode::BadStartOfStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 10u32, "BadStartOfStatement"),
                    CompilerErrorCode::NoLeftBracketOnArgList =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 11u32, "NoLeftBracketOnArgList"),
                    CompilerErrorCode::NoRightBracketOnArgList =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 12u32, "NoRightBracketOnArgList"),
                    CompilerErrorCode::NoSemicolonAfterExpression =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 13u32, "NoSemicolonAfterExpression"),
                    CompilerErrorCode::ParsingAssignmentStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 14u32, "ParsingAssignmentStatement"),
                    CompilerErrorCode::BadLValue =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 15u32, "BadLValue"),
                    CompilerErrorCode::BadConstantType =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 16u32, "BadConstantType"),
                    CompilerErrorCode::IdentifierListFull =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 17u32, "IdentifierListFull"),
                    CompilerErrorCode::NonIntegerIdForIntegerConstant =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 18u32,
                            "NonIntegerIdForIntegerConstant"),
                    CompilerErrorCode::NonFloatIdForFloatConstant =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 19u32, "NonFloatIdForFloatConstant"),
                    CompilerErrorCode::NonStringIdForStringConstant =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 20u32, "NonStringIdForStringConstant"),
                    CompilerErrorCode::VariableAlreadyUsedWithinScope =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 21u32,
                            "VariableAlreadyUsedWithinScope"),
                    CompilerErrorCode::VariableDefinedWithoutType =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 22u32, "VariableDefinedWithoutType"),
                    CompilerErrorCode::IncorrectVariableStateLeftOnStack =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 23u32,
                            "IncorrectVariableStateLeftOnStack"),
                    CompilerErrorCode::NonIntegerExpressionWhereIntegerRequired
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 24u32,
                            "NonIntegerExpressionWhereIntegerRequired"),
                    CompilerErrorCode::VoidExpressionWhereNonVoidRequired =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 25u32,
                            "VoidExpressionWhereNonVoidRequired"),
                    CompilerErrorCode::InvalidParametersForAssignment =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 26u32,
                            "InvalidParametersForAssignment"),
                    CompilerErrorCode::DeclarationDoesNotMatchParameters =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 27u32,
                            "DeclarationDoesNotMatchParameters"),
                    CompilerErrorCode::LogicalOperationHasInvalidOperands =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 28u32,
                            "LogicalOperationHasInvalidOperands"),
                    CompilerErrorCode::EqualityTestHasInvalidOperands =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 29u32,
                            "EqualityTestHasInvalidOperands"),
                    CompilerErrorCode::ComparisonTestHasInvalidOperands =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 30u32,
                            "ComparisonTestHasInvalidOperands"),
                    CompilerErrorCode::ShiftOperationHasInvalidOperands =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 31u32,
                            "ShiftOperationHasInvalidOperands"),
                    CompilerErrorCode::ArithmeticOperationHasInvalidOperands =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 32u32,
                            "ArithmeticOperationHasInvalidOperands"),
                    CompilerErrorCode::UnknownOperationInSemanticCheck =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 33u32,
                            "UnknownOperationInSemanticCheck"),
                    CompilerErrorCode::ScriptTooLarge =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 34u32, "ScriptTooLarge"),
                    CompilerErrorCode::ReturnStatementHasNoParameters =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 35u32,
                            "ReturnStatementHasNoParameters"),
                    CompilerErrorCode::NoWhileAfterDoKeyword =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 36u32, "NoWhileAfterDoKeyword"),
                    CompilerErrorCode::FunctionDefinitionMissingName =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 37u32,
                            "FunctionDefinitionMissingName"),
                    CompilerErrorCode::FunctionDefinitionMissingParameterList =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 38u32,
                            "FunctionDefinitionMissingParameterList"),
                    CompilerErrorCode::MalformedParameterList =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 39u32, "MalformedParameterList"),
                    CompilerErrorCode::BadTypeSpecifier =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 40u32, "BadTypeSpecifier"),
                    CompilerErrorCode::NoSemicolonAfterStructure =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 41u32, "NoSemicolonAfterStructure"),
                    CompilerErrorCode::EllipsisInIdentifier =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 42u32, "EllipsisInIdentifier"),
                    CompilerErrorCode::FileNotFound =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 43u32, "FileNotFound"),
                    CompilerErrorCode::IncludeRecursive =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 44u32, "IncludeRecursive"),
                    CompilerErrorCode::IncludeTooManyLevels =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 45u32, "IncludeTooManyLevels"),
                    CompilerErrorCode::ParsingReturnStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 46u32, "ParsingReturnStatement"),
                    CompilerErrorCode::ParsingIdentifierList =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 47u32, "ParsingIdentifierList"),
                    CompilerErrorCode::ParsingFunctionDeclaration =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 48u32, "ParsingFunctionDeclaration"),
                    CompilerErrorCode::DuplicateFunctionImplementation =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 49u32,
                            "DuplicateFunctionImplementation"),
                    CompilerErrorCode::TokenTooLong =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 50u32, "TokenTooLong"),
                    CompilerErrorCode::UndefinedStructure =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 51u32, "UndefinedStructure"),
                    CompilerErrorCode::LeftOfStructurePartNotStructure =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 52u32,
                            "LeftOfStructurePartNotStructure"),
                    CompilerErrorCode::RightOfStructurePartNotFieldInStructure
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 53u32,
                            "RightOfStructurePartNotFieldInStructure"),
                    CompilerErrorCode::UndefinedFieldInStructure =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 54u32, "UndefinedFieldInStructure"),
                    CompilerErrorCode::StructureRedefined =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 55u32, "StructureRedefined"),
                    CompilerErrorCode::VariableUsedTwiceInSameStructure =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 56u32,
                            "VariableUsedTwiceInSameStructure"),
                    CompilerErrorCode::FunctionImplementationAndDefinitionDiffer
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 57u32,
                            "FunctionImplementationAndDefinitionDiffer"),
                    CompilerErrorCode::MismatchedTypes =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 58u32, "MismatchedTypes"),
                    CompilerErrorCode::IntegerNotAtTopOfStack =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 59u32, "IntegerNotAtTopOfStack"),
                    CompilerErrorCode::ReturnTypeAndFunctionTypeMismatched =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 60u32,
                            "ReturnTypeAndFunctionTypeMismatched"),
                    CompilerErrorCode::NotAllControlPathsReturnAValue =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 61u32,
                            "NotAllControlPathsReturnAValue"),
                    CompilerErrorCode::UndefinedIdentifier =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 62u32, "UndefinedIdentifier"),
                    CompilerErrorCode::NoFunctionMainInScript =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 63u32, "NoFunctionMainInScript"),
                    CompilerErrorCode::FunctionMainMustHaveVoidReturnValue =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 64u32,
                            "FunctionMainMustHaveVoidReturnValue"),
                    CompilerErrorCode::FunctionMainMustHaveNoParameters =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 65u32,
                            "FunctionMainMustHaveNoParameters"),
                    CompilerErrorCode::NonVoidFunctionCannotBeAStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 66u32,
                            "NonVoidFunctionCannotBeAStatement"),
                    CompilerErrorCode::BadVariableName =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 67u32, "BadVariableName"),
                    CompilerErrorCode::NonOptionalParameterCannotFollowOptionalParameter
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 68u32,
                            "NonOptionalParameterCannotFollowOptionalParameter"),
                    CompilerErrorCode::TypeDoesNotHaveAnOptionalParameter =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 69u32,
                            "TypeDoesNotHaveAnOptionalParameter"),
                    CompilerErrorCode::NonConstantInFunctionDeclaration =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 70u32,
                            "NonConstantInFunctionDeclaration"),
                    CompilerErrorCode::ParsingConstantVector =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 71u32, "ParsingConstantVector"),
                    CompilerErrorCode::OperandMustBeAnIntegerLValue =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 72u32, "OperandMustBeAnIntegerLValue"),
                    CompilerErrorCode::ConditionalRequiresSecondExpression =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 73u32,
                            "ConditionalRequiresSecondExpression"),
                    CompilerErrorCode::ConditionalMustHaveMatchingReturnTypes =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 74u32,
                            "ConditionalMustHaveMatchingReturnTypes"),
                    CompilerErrorCode::MultipleDefaultStatementsWithinSwitch =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 75u32,
                            "MultipleDefaultStatementsWithinSwitch"),
                    CompilerErrorCode::MultipleCaseConstantStatementsWithinSwitch
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 76u32,
                            "MultipleCaseConstantStatementsWithinSwitch"),
                    CompilerErrorCode::CaseParameterNotAConstantInteger =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 77u32,
                            "CaseParameterNotAConstantInteger"),
                    CompilerErrorCode::SwitchMustEvaluateToAnInteger =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 78u32,
                            "SwitchMustEvaluateToAnInteger"),
                    CompilerErrorCode::NoColonAfterDefaultLabel =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 79u32, "NoColonAfterDefaultLabel"),
                    CompilerErrorCode::NoColonAfterCaseLabel =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 80u32, "NoColonAfterCaseLabel"),
                    CompilerErrorCode::NoSemicolonAfterStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 81u32, "NoSemicolonAfterStatement"),
                    CompilerErrorCode::BreakOutsideOfLoopOrCaseStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 82u32,
                            "BreakOutsideOfLoopOrCaseStatement"),
                    CompilerErrorCode::TooManyParametersOnFunction =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 83u32, "TooManyParametersOnFunction"),
                    CompilerErrorCode::UnableToOpenFileForWriting =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 84u32, "UnableToOpenFileForWriting"),
                    CompilerErrorCode::UnterminatedStringConstant =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 85u32, "UnterminatedStringConstant"),
                    CompilerErrorCode::NoFunctionIntscInScript =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 86u32, "NoFunctionIntscInScript"),
                    CompilerErrorCode::FunctionIntscMustHaveVoidReturnValue =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 87u32,
                            "FunctionIntscMustHaveVoidReturnValue"),
                    CompilerErrorCode::FunctionIntscMustHaveNoParameters =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 88u32,
                            "FunctionIntscMustHaveNoParameters"),
                    CompilerErrorCode::JumpingOverDeclarationStatementsCaseDisallowed
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 89u32,
                            "JumpingOverDeclarationStatementsCaseDisallowed"),
                    CompilerErrorCode::JumpingOverDeclarationStatementsDefaultDisallowed
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 90u32,
                            "JumpingOverDeclarationStatementsDefaultDisallowed"),
                    CompilerErrorCode::ElseWithoutCorrespondingIf =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 91u32, "ElseWithoutCorrespondingIf"),
                    CompilerErrorCode::IfConditionCannotBeFollowedByANullStatement
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 92u32,
                            "IfConditionCannotBeFollowedByANullStatement"),
                    CompilerErrorCode::InvalidTypeForConstKeyword =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 93u32, "InvalidTypeForConstKeyword"),
                    CompilerErrorCode::ConstKeywordCannotBeUsedOnNonGlobalVariables
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 94u32,
                            "ConstKeywordCannotBeUsedOnNonGlobalVariables"),
                    CompilerErrorCode::InvalidValueAssignedToConstant =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 95u32,
                            "InvalidValueAssignedToConstant"),
                    CompilerErrorCode::SwitchConditionCannotBeFollowedByANullStatement
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 96u32,
                            "SwitchConditionCannotBeFollowedByANullStatement"),
                    CompilerErrorCode::WhileConditionCannotBeFollowedByANullStatement
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 97u32,
                            "WhileConditionCannotBeFollowedByANullStatement"),
                    CompilerErrorCode::ForStatementCannotBeFollowedByANullStatement
                        =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 98u32,
                            "ForStatementCannotBeFollowedByANullStatement"),
                    CompilerErrorCode::CannotIncludeThisFileTwice =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 99u32, "CannotIncludeThisFileTwice"),
                    CompilerErrorCode::ElseCannotBeFollowedByANullStatement =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 100u32,
                            "ElseCannotBeFollowedByANullStatement"),
                    CompilerErrorCode::VmTooManyInstructions =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 101u32, "VmTooManyInstructions"),
                    CompilerErrorCode::VmTooManyLevelsOfRecursion =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 102u32, "VmTooManyLevelsOfRecursion"),
                    CompilerErrorCode::VmFileNotOpened =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 103u32, "VmFileNotOpened"),
                    CompilerErrorCode::VmFileNotCompiledSuccessfully =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 104u32,
                            "VmFileNotCompiledSuccessfully"),
                    CompilerErrorCode::VmInvalidAuxCode =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 105u32, "VmInvalidAuxCode"),
                    CompilerErrorCode::VmNullVirtualMachineNode =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 106u32, "VmNullVirtualMachineNode"),
                    CompilerErrorCode::VmStackOverflow =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 107u32, "VmStackOverflow"),
                    CompilerErrorCode::VmStackUnderflow =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 108u32, "VmStackUnderflow"),
                    CompilerErrorCode::VmInvalidOpCode =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 109u32, "VmInvalidOpCode"),
                    CompilerErrorCode::VmInvalidExtraDataOnOpCode =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 110u32, "VmInvalidExtraDataOnOpCode"),
                    CompilerErrorCode::VmInvalidCommand =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 111u32, "VmInvalidCommand"),
                    CompilerErrorCode::VmFakeShortcutLogicalOperation =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 112u32,
                            "VmFakeShortcutLogicalOperation"),
                    CompilerErrorCode::VmDivideByZero =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 113u32, "VmDivideByZero"),
                    CompilerErrorCode::VmFakeAbortScript =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 114u32, "VmFakeAbortScript"),
                    CompilerErrorCode::VmIpOutOfCodeSegment =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 115u32, "VmIpOutOfCodeSegment"),
                    CompilerErrorCode::VmCommandImplementerNotSet =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 116u32, "VmCommandImplementerNotSet"),
                    CompilerErrorCode::VmUnknownTypeOnRunTimeStack =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 117u32, "VmUnknownTypeOnRunTimeStack"),
                    CompilerErrorCode::AlreadyPrinted =>
                        _serde::Serializer::serialize_unit_variant(__serializer,
                            "CompilerErrorCode", 118u32, "AlreadyPrinted"),
                }
            }
        }
    };Serialize, #[doc(hidden)]
#[allow(non_upper_case_globals, unused_attributes, unused_qualifications,
clippy :: absolute_paths,)]
const _: () =
    {
        #[allow(unused_extern_crates, clippy :: useless_attribute)]
        extern crate serde as _serde;
        ;
        #[automatically_derived]
        impl<'de> _serde::Deserialize<'de> for CompilerErrorCode {
            fn deserialize<__D>(__deserializer: __D)
                -> _serde::__private228::Result<Self, __D::Error> where
                __D: _serde::Deserializer<'de> {
                #[allow(non_camel_case_types)]
                #[doc(hidden)]
                enum __Field {
                    __field0,
                    __field1,
                    __field2,
                    __field3,
                    __field4,
                    __field5,
                    __field6,
                    __field7,
                    __field8,
                    __field9,
                    __field10,
                    __field11,
                    __field12,
                    __field13,
                    __field14,
                    __field15,
                    __field16,
                    __field17,
                    __field18,
                    __field19,
                    __field20,
                    __field21,
                    __field22,
                    __field23,
                    __field24,
                    __field25,
                    __field26,
                    __field27,
                    __field28,
                    __field29,
                    __field30,
                    __field31,
                    __field32,
                    __field33,
                    __field34,
                    __field35,
                    __field36,
                    __field37,
                    __field38,
                    __field39,
                    __field40,
                    __field41,
                    __field42,
                    __field43,
                    __field44,
                    __field45,
                    __field46,
                    __field47,
                    __field48,
                    __field49,
                    __field50,
                    __field51,
                    __field52,
                    __field53,
                    __field54,
                    __field55,
                    __field56,
                    __field57,
                    __field58,
                    __field59,
                    __field60,
                    __field61,
                    __field62,
                    __field63,
                    __field64,
                    __field65,
                    __field66,
                    __field67,
                    __field68,
                    __field69,
                    __field70,
                    __field71,
                    __field72,
                    __field73,
                    __field74,
                    __field75,
                    __field76,
                    __field77,
                    __field78,
                    __field79,
                    __field80,
                    __field81,
                    __field82,
                    __field83,
                    __field84,
                    __field85,
                    __field86,
                    __field87,
                    __field88,
                    __field89,
                    __field90,
                    __field91,
                    __field92,
                    __field93,
                    __field94,
                    __field95,
                    __field96,
                    __field97,
                    __field98,
                    __field99,
                    __field100,
                    __field101,
                    __field102,
                    __field103,
                    __field104,
                    __field105,
                    __field106,
                    __field107,
                    __field108,
                    __field109,
                    __field110,
                    __field111,
                    __field112,
                    __field113,
                    __field114,
                    __field115,
                    __field116,
                    __field117,
                    __field118,
                }
                #[doc(hidden)]
                struct __FieldVisitor;
                #[automatically_derived]
                impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
                    type Value = __Field;
                    fn expecting(&self,
                        __formatter: &mut _serde::__private228::Formatter)
                        -> _serde::__private228::fmt::Result {
                        _serde::__private228::Formatter::write_str(__formatter,
                            "variant identifier")
                    }
                    fn visit_u64<__E>(self, __value: u64)
                        -> _serde::__private228::Result<Self::Value, __E> where
                        __E: _serde::de::Error {
                        match __value {
                            0u64 => _serde::__private228::Ok(__Field::__field0),
                            1u64 => _serde::__private228::Ok(__Field::__field1),
                            2u64 => _serde::__private228::Ok(__Field::__field2),
                            3u64 => _serde::__private228::Ok(__Field::__field3),
                            4u64 => _serde::__private228::Ok(__Field::__field4),
                            5u64 => _serde::__private228::Ok(__Field::__field5),
                            6u64 => _serde::__private228::Ok(__Field::__field6),
                            7u64 => _serde::__private228::Ok(__Field::__field7),
                            8u64 => _serde::__private228::Ok(__Field::__field8),
                            9u64 => _serde::__private228::Ok(__Field::__field9),
                            10u64 => _serde::__private228::Ok(__Field::__field10),
                            11u64 => _serde::__private228::Ok(__Field::__field11),
                            12u64 => _serde::__private228::Ok(__Field::__field12),
                            13u64 => _serde::__private228::Ok(__Field::__field13),
                            14u64 => _serde::__private228::Ok(__Field::__field14),
                            15u64 => _serde::__private228::Ok(__Field::__field15),
                            16u64 => _serde::__private228::Ok(__Field::__field16),
                            17u64 => _serde::__private228::Ok(__Field::__field17),
                            18u64 => _serde::__private228::Ok(__Field::__field18),
                            19u64 => _serde::__private228::Ok(__Field::__field19),
                            20u64 => _serde::__private228::Ok(__Field::__field20),
                            21u64 => _serde::__private228::Ok(__Field::__field21),
                            22u64 => _serde::__private228::Ok(__Field::__field22),
                            23u64 => _serde::__private228::Ok(__Field::__field23),
                            24u64 => _serde::__private228::Ok(__Field::__field24),
                            25u64 => _serde::__private228::Ok(__Field::__field25),
                            26u64 => _serde::__private228::Ok(__Field::__field26),
                            27u64 => _serde::__private228::Ok(__Field::__field27),
                            28u64 => _serde::__private228::Ok(__Field::__field28),
                            29u64 => _serde::__private228::Ok(__Field::__field29),
                            30u64 => _serde::__private228::Ok(__Field::__field30),
                            31u64 => _serde::__private228::Ok(__Field::__field31),
                            32u64 => _serde::__private228::Ok(__Field::__field32),
                            33u64 => _serde::__private228::Ok(__Field::__field33),
                            34u64 => _serde::__private228::Ok(__Field::__field34),
                            35u64 => _serde::__private228::Ok(__Field::__field35),
                            36u64 => _serde::__private228::Ok(__Field::__field36),
                            37u64 => _serde::__private228::Ok(__Field::__field37),
                            38u64 => _serde::__private228::Ok(__Field::__field38),
                            39u64 => _serde::__private228::Ok(__Field::__field39),
                            40u64 => _serde::__private228::Ok(__Field::__field40),
                            41u64 => _serde::__private228::Ok(__Field::__field41),
                            42u64 => _serde::__private228::Ok(__Field::__field42),
                            43u64 => _serde::__private228::Ok(__Field::__field43),
                            44u64 => _serde::__private228::Ok(__Field::__field44),
                            45u64 => _serde::__private228::Ok(__Field::__field45),
                            46u64 => _serde::__private228::Ok(__Field::__field46),
                            47u64 => _serde::__private228::Ok(__Field::__field47),
                            48u64 => _serde::__private228::Ok(__Field::__field48),
                            49u64 => _serde::__private228::Ok(__Field::__field49),
                            50u64 => _serde::__private228::Ok(__Field::__field50),
                            51u64 => _serde::__private228::Ok(__Field::__field51),
                            52u64 => _serde::__private228::Ok(__Field::__field52),
                            53u64 => _serde::__private228::Ok(__Field::__field53),
                            54u64 => _serde::__private228::Ok(__Field::__field54),
                            55u64 => _serde::__private228::Ok(__Field::__field55),
                            56u64 => _serde::__private228::Ok(__Field::__field56),
                            57u64 => _serde::__private228::Ok(__Field::__field57),
                            58u64 => _serde::__private228::Ok(__Field::__field58),
                            59u64 => _serde::__private228::Ok(__Field::__field59),
                            60u64 => _serde::__private228::Ok(__Field::__field60),
                            61u64 => _serde::__private228::Ok(__Field::__field61),
                            62u64 => _serde::__private228::Ok(__Field::__field62),
                            63u64 => _serde::__private228::Ok(__Field::__field63),
                            64u64 => _serde::__private228::Ok(__Field::__field64),
                            65u64 => _serde::__private228::Ok(__Field::__field65),
                            66u64 => _serde::__private228::Ok(__Field::__field66),
                            67u64 => _serde::__private228::Ok(__Field::__field67),
                            68u64 => _serde::__private228::Ok(__Field::__field68),
                            69u64 => _serde::__private228::Ok(__Field::__field69),
                            70u64 => _serde::__private228::Ok(__Field::__field70),
                            71u64 => _serde::__private228::Ok(__Field::__field71),
                            72u64 => _serde::__private228::Ok(__Field::__field72),
                            73u64 => _serde::__private228::Ok(__Field::__field73),
                            74u64 => _serde::__private228::Ok(__Field::__field74),
                            75u64 => _serde::__private228::Ok(__Field::__field75),
                            76u64 => _serde::__private228::Ok(__Field::__field76),
                            77u64 => _serde::__private228::Ok(__Field::__field77),
                            78u64 => _serde::__private228::Ok(__Field::__field78),
                            79u64 => _serde::__private228::Ok(__Field::__field79),
                            80u64 => _serde::__private228::Ok(__Field::__field80),
                            81u64 => _serde::__private228::Ok(__Field::__field81),
                            82u64 => _serde::__private228::Ok(__Field::__field82),
                            83u64 => _serde::__private228::Ok(__Field::__field83),
                            84u64 => _serde::__private228::Ok(__Field::__field84),
                            85u64 => _serde::__private228::Ok(__Field::__field85),
                            86u64 => _serde::__private228::Ok(__Field::__field86),
                            87u64 => _serde::__private228::Ok(__Field::__field87),
                            88u64 => _serde::__private228::Ok(__Field::__field88),
                            89u64 => _serde::__private228::Ok(__Field::__field89),
                            90u64 => _serde::__private228::Ok(__Field::__field90),
                            91u64 => _serde::__private228::Ok(__Field::__field91),
                            92u64 => _serde::__private228::Ok(__Field::__field92),
                            93u64 => _serde::__private228::Ok(__Field::__field93),
                            94u64 => _serde::__private228::Ok(__Field::__field94),
                            95u64 => _serde::__private228::Ok(__Field::__field95),
                            96u64 => _serde::__private228::Ok(__Field::__field96),
                            97u64 => _serde::__private228::Ok(__Field::__field97),
                            98u64 => _serde::__private228::Ok(__Field::__field98),
                            99u64 => _serde::__private228::Ok(__Field::__field99),
                            100u64 => _serde::__private228::Ok(__Field::__field100),
                            101u64 => _serde::__private228::Ok(__Field::__field101),
                            102u64 => _serde::__private228::Ok(__Field::__field102),
                            103u64 => _serde::__private228::Ok(__Field::__field103),
                            104u64 => _serde::__private228::Ok(__Field::__field104),
                            105u64 => _serde::__private228::Ok(__Field::__field105),
                            106u64 => _serde::__private228::Ok(__Field::__field106),
                            107u64 => _serde::__private228::Ok(__Field::__field107),
                            108u64 => _serde::__private228::Ok(__Field::__field108),
                            109u64 => _serde::__private228::Ok(__Field::__field109),
                            110u64 => _serde::__private228::Ok(__Field::__field110),
                            111u64 => _serde::__private228::Ok(__Field::__field111),
                            112u64 => _serde::__private228::Ok(__Field::__field112),
                            113u64 => _serde::__private228::Ok(__Field::__field113),
                            114u64 => _serde::__private228::Ok(__Field::__field114),
                            115u64 => _serde::__private228::Ok(__Field::__field115),
                            116u64 => _serde::__private228::Ok(__Field::__field116),
                            117u64 => _serde::__private228::Ok(__Field::__field117),
                            118u64 => _serde::__private228::Ok(__Field::__field118),
                            _ =>
                                _serde::__private228::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value),
                                        &"variant index 0 <= i < 119")),
                        }
                    }
                    fn visit_str<__E>(self, __value: &str)
                        -> _serde::__private228::Result<Self::Value, __E> where
                        __E: _serde::de::Error {
                        match __value {
                            "UnexpectedCharacter" =>
                                _serde::__private228::Ok(__Field::__field0),
                            "FatalCompilerError" =>
                                _serde::__private228::Ok(__Field::__field1),
                            "ProgramCompoundStatementAtStart" =>
                                _serde::__private228::Ok(__Field::__field2),
                            "UnexpectedEndCompoundStatement" =>
                                _serde::__private228::Ok(__Field::__field3),
                            "AfterCompoundStatementAtEnd" =>
                                _serde::__private228::Ok(__Field::__field4),
                            "ParsingVariableList" =>
                                _serde::__private228::Ok(__Field::__field5),
                            "UnknownStateInCompiler" =>
                                _serde::__private228::Ok(__Field::__field6),
                            "InvalidDeclarationType" =>
                                _serde::__private228::Ok(__Field::__field7),
                            "NoLeftBracketOnExpression" =>
                                _serde::__private228::Ok(__Field::__field8),
                            "NoRightBracketOnExpression" =>
                                _serde::__private228::Ok(__Field::__field9),
                            "BadStartOfStatement" =>
                                _serde::__private228::Ok(__Field::__field10),
                            "NoLeftBracketOnArgList" =>
                                _serde::__private228::Ok(__Field::__field11),
                            "NoRightBracketOnArgList" =>
                                _serde::__private228::Ok(__Field::__field12),
                            "NoSemicolonAfterExpression" =>
                                _serde::__private228::Ok(__Field::__field13),
                            "ParsingAssignmentStatement" =>
                                _serde::__private228::Ok(__Field::__field14),
                            "BadLValue" => _serde::__private228::Ok(__Field::__field15),
                            "BadConstantType" =>
                                _serde::__private228::Ok(__Field::__field16),
                            "IdentifierListFull" =>
                                _serde::__private228::Ok(__Field::__field17),
                            "NonIntegerIdForIntegerConstant" =>
                                _serde::__private228::Ok(__Field::__field18),
                            "NonFloatIdForFloatConstant" =>
                                _serde::__private228::Ok(__Field::__field19),
                            "NonStringIdForStringConstant" =>
                                _serde::__private228::Ok(__Field::__field20),
                            "VariableAlreadyUsedWithinScope" =>
                                _serde::__private228::Ok(__Field::__field21),
                            "VariableDefinedWithoutType" =>
                                _serde::__private228::Ok(__Field::__field22),
                            "IncorrectVariableStateLeftOnStack" =>
                                _serde::__private228::Ok(__Field::__field23),
                            "NonIntegerExpressionWhereIntegerRequired" =>
                                _serde::__private228::Ok(__Field::__field24),
                            "VoidExpressionWhereNonVoidRequired" =>
                                _serde::__private228::Ok(__Field::__field25),
                            "InvalidParametersForAssignment" =>
                                _serde::__private228::Ok(__Field::__field26),
                            "DeclarationDoesNotMatchParameters" =>
                                _serde::__private228::Ok(__Field::__field27),
                            "LogicalOperationHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field28),
                            "EqualityTestHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field29),
                            "ComparisonTestHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field30),
                            "ShiftOperationHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field31),
                            "ArithmeticOperationHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field32),
                            "UnknownOperationInSemanticCheck" =>
                                _serde::__private228::Ok(__Field::__field33),
                            "ScriptTooLarge" =>
                                _serde::__private228::Ok(__Field::__field34),
                            "ReturnStatementHasNoParameters" =>
                                _serde::__private228::Ok(__Field::__field35),
                            "NoWhileAfterDoKeyword" =>
                                _serde::__private228::Ok(__Field::__field36),
                            "FunctionDefinitionMissingName" =>
                                _serde::__private228::Ok(__Field::__field37),
                            "FunctionDefinitionMissingParameterList" =>
                                _serde::__private228::Ok(__Field::__field38),
                            "MalformedParameterList" =>
                                _serde::__private228::Ok(__Field::__field39),
                            "BadTypeSpecifier" =>
                                _serde::__private228::Ok(__Field::__field40),
                            "NoSemicolonAfterStructure" =>
                                _serde::__private228::Ok(__Field::__field41),
                            "EllipsisInIdentifier" =>
                                _serde::__private228::Ok(__Field::__field42),
                            "FileNotFound" =>
                                _serde::__private228::Ok(__Field::__field43),
                            "IncludeRecursive" =>
                                _serde::__private228::Ok(__Field::__field44),
                            "IncludeTooManyLevels" =>
                                _serde::__private228::Ok(__Field::__field45),
                            "ParsingReturnStatement" =>
                                _serde::__private228::Ok(__Field::__field46),
                            "ParsingIdentifierList" =>
                                _serde::__private228::Ok(__Field::__field47),
                            "ParsingFunctionDeclaration" =>
                                _serde::__private228::Ok(__Field::__field48),
                            "DuplicateFunctionImplementation" =>
                                _serde::__private228::Ok(__Field::__field49),
                            "TokenTooLong" =>
                                _serde::__private228::Ok(__Field::__field50),
                            "UndefinedStructure" =>
                                _serde::__private228::Ok(__Field::__field51),
                            "LeftOfStructurePartNotStructure" =>
                                _serde::__private228::Ok(__Field::__field52),
                            "RightOfStructurePartNotFieldInStructure" =>
                                _serde::__private228::Ok(__Field::__field53),
                            "UndefinedFieldInStructure" =>
                                _serde::__private228::Ok(__Field::__field54),
                            "StructureRedefined" =>
                                _serde::__private228::Ok(__Field::__field55),
                            "VariableUsedTwiceInSameStructure" =>
                                _serde::__private228::Ok(__Field::__field56),
                            "FunctionImplementationAndDefinitionDiffer" =>
                                _serde::__private228::Ok(__Field::__field57),
                            "MismatchedTypes" =>
                                _serde::__private228::Ok(__Field::__field58),
                            "IntegerNotAtTopOfStack" =>
                                _serde::__private228::Ok(__Field::__field59),
                            "ReturnTypeAndFunctionTypeMismatched" =>
                                _serde::__private228::Ok(__Field::__field60),
                            "NotAllControlPathsReturnAValue" =>
                                _serde::__private228::Ok(__Field::__field61),
                            "UndefinedIdentifier" =>
                                _serde::__private228::Ok(__Field::__field62),
                            "NoFunctionMainInScript" =>
                                _serde::__private228::Ok(__Field::__field63),
                            "FunctionMainMustHaveVoidReturnValue" =>
                                _serde::__private228::Ok(__Field::__field64),
                            "FunctionMainMustHaveNoParameters" =>
                                _serde::__private228::Ok(__Field::__field65),
                            "NonVoidFunctionCannotBeAStatement" =>
                                _serde::__private228::Ok(__Field::__field66),
                            "BadVariableName" =>
                                _serde::__private228::Ok(__Field::__field67),
                            "NonOptionalParameterCannotFollowOptionalParameter" =>
                                _serde::__private228::Ok(__Field::__field68),
                            "TypeDoesNotHaveAnOptionalParameter" =>
                                _serde::__private228::Ok(__Field::__field69),
                            "NonConstantInFunctionDeclaration" =>
                                _serde::__private228::Ok(__Field::__field70),
                            "ParsingConstantVector" =>
                                _serde::__private228::Ok(__Field::__field71),
                            "OperandMustBeAnIntegerLValue" =>
                                _serde::__private228::Ok(__Field::__field72),
                            "ConditionalRequiresSecondExpression" =>
                                _serde::__private228::Ok(__Field::__field73),
                            "ConditionalMustHaveMatchingReturnTypes" =>
                                _serde::__private228::Ok(__Field::__field74),
                            "MultipleDefaultStatementsWithinSwitch" =>
                                _serde::__private228::Ok(__Field::__field75),
                            "MultipleCaseConstantStatementsWithinSwitch" =>
                                _serde::__private228::Ok(__Field::__field76),
                            "CaseParameterNotAConstantInteger" =>
                                _serde::__private228::Ok(__Field::__field77),
                            "SwitchMustEvaluateToAnInteger" =>
                                _serde::__private228::Ok(__Field::__field78),
                            "NoColonAfterDefaultLabel" =>
                                _serde::__private228::Ok(__Field::__field79),
                            "NoColonAfterCaseLabel" =>
                                _serde::__private228::Ok(__Field::__field80),
                            "NoSemicolonAfterStatement" =>
                                _serde::__private228::Ok(__Field::__field81),
                            "BreakOutsideOfLoopOrCaseStatement" =>
                                _serde::__private228::Ok(__Field::__field82),
                            "TooManyParametersOnFunction" =>
                                _serde::__private228::Ok(__Field::__field83),
                            "UnableToOpenFileForWriting" =>
                                _serde::__private228::Ok(__Field::__field84),
                            "UnterminatedStringConstant" =>
                                _serde::__private228::Ok(__Field::__field85),
                            "NoFunctionIntscInScript" =>
                                _serde::__private228::Ok(__Field::__field86),
                            "FunctionIntscMustHaveVoidReturnValue" =>
                                _serde::__private228::Ok(__Field::__field87),
                            "FunctionIntscMustHaveNoParameters" =>
                                _serde::__private228::Ok(__Field::__field88),
                            "JumpingOverDeclarationStatementsCaseDisallowed" =>
                                _serde::__private228::Ok(__Field::__field89),
                            "JumpingOverDeclarationStatementsDefaultDisallowed" =>
                                _serde::__private228::Ok(__Field::__field90),
                            "ElseWithoutCorrespondingIf" =>
                                _serde::__private228::Ok(__Field::__field91),
                            "IfConditionCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field92),
                            "InvalidTypeForConstKeyword" =>
                                _serde::__private228::Ok(__Field::__field93),
                            "ConstKeywordCannotBeUsedOnNonGlobalVariables" =>
                                _serde::__private228::Ok(__Field::__field94),
                            "InvalidValueAssignedToConstant" =>
                                _serde::__private228::Ok(__Field::__field95),
                            "SwitchConditionCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field96),
                            "WhileConditionCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field97),
                            "ForStatementCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field98),
                            "CannotIncludeThisFileTwice" =>
                                _serde::__private228::Ok(__Field::__field99),
                            "ElseCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field100),
                            "VmTooManyInstructions" =>
                                _serde::__private228::Ok(__Field::__field101),
                            "VmTooManyLevelsOfRecursion" =>
                                _serde::__private228::Ok(__Field::__field102),
                            "VmFileNotOpened" =>
                                _serde::__private228::Ok(__Field::__field103),
                            "VmFileNotCompiledSuccessfully" =>
                                _serde::__private228::Ok(__Field::__field104),
                            "VmInvalidAuxCode" =>
                                _serde::__private228::Ok(__Field::__field105),
                            "VmNullVirtualMachineNode" =>
                                _serde::__private228::Ok(__Field::__field106),
                            "VmStackOverflow" =>
                                _serde::__private228::Ok(__Field::__field107),
                            "VmStackUnderflow" =>
                                _serde::__private228::Ok(__Field::__field108),
                            "VmInvalidOpCode" =>
                                _serde::__private228::Ok(__Field::__field109),
                            "VmInvalidExtraDataOnOpCode" =>
                                _serde::__private228::Ok(__Field::__field110),
                            "VmInvalidCommand" =>
                                _serde::__private228::Ok(__Field::__field111),
                            "VmFakeShortcutLogicalOperation" =>
                                _serde::__private228::Ok(__Field::__field112),
                            "VmDivideByZero" =>
                                _serde::__private228::Ok(__Field::__field113),
                            "VmFakeAbortScript" =>
                                _serde::__private228::Ok(__Field::__field114),
                            "VmIpOutOfCodeSegment" =>
                                _serde::__private228::Ok(__Field::__field115),
                            "VmCommandImplementerNotSet" =>
                                _serde::__private228::Ok(__Field::__field116),
                            "VmUnknownTypeOnRunTimeStack" =>
                                _serde::__private228::Ok(__Field::__field117),
                            "AlreadyPrinted" =>
                                _serde::__private228::Ok(__Field::__field118),
                            _ => {
                                _serde::__private228::Err(_serde::de::Error::unknown_variant(__value,
                                        VARIANTS))
                            }
                        }
                    }
                    fn visit_bytes<__E>(self, __value: &[u8])
                        -> _serde::__private228::Result<Self::Value, __E> where
                        __E: _serde::de::Error {
                        match __value {
                            b"UnexpectedCharacter" =>
                                _serde::__private228::Ok(__Field::__field0),
                            b"FatalCompilerError" =>
                                _serde::__private228::Ok(__Field::__field1),
                            b"ProgramCompoundStatementAtStart" =>
                                _serde::__private228::Ok(__Field::__field2),
                            b"UnexpectedEndCompoundStatement" =>
                                _serde::__private228::Ok(__Field::__field3),
                            b"AfterCompoundStatementAtEnd" =>
                                _serde::__private228::Ok(__Field::__field4),
                            b"ParsingVariableList" =>
                                _serde::__private228::Ok(__Field::__field5),
                            b"UnknownStateInCompiler" =>
                                _serde::__private228::Ok(__Field::__field6),
                            b"InvalidDeclarationType" =>
                                _serde::__private228::Ok(__Field::__field7),
                            b"NoLeftBracketOnExpression" =>
                                _serde::__private228::Ok(__Field::__field8),
                            b"NoRightBracketOnExpression" =>
                                _serde::__private228::Ok(__Field::__field9),
                            b"BadStartOfStatement" =>
                                _serde::__private228::Ok(__Field::__field10),
                            b"NoLeftBracketOnArgList" =>
                                _serde::__private228::Ok(__Field::__field11),
                            b"NoRightBracketOnArgList" =>
                                _serde::__private228::Ok(__Field::__field12),
                            b"NoSemicolonAfterExpression" =>
                                _serde::__private228::Ok(__Field::__field13),
                            b"ParsingAssignmentStatement" =>
                                _serde::__private228::Ok(__Field::__field14),
                            b"BadLValue" =>
                                _serde::__private228::Ok(__Field::__field15),
                            b"BadConstantType" =>
                                _serde::__private228::Ok(__Field::__field16),
                            b"IdentifierListFull" =>
                                _serde::__private228::Ok(__Field::__field17),
                            b"NonIntegerIdForIntegerConstant" =>
                                _serde::__private228::Ok(__Field::__field18),
                            b"NonFloatIdForFloatConstant" =>
                                _serde::__private228::Ok(__Field::__field19),
                            b"NonStringIdForStringConstant" =>
                                _serde::__private228::Ok(__Field::__field20),
                            b"VariableAlreadyUsedWithinScope" =>
                                _serde::__private228::Ok(__Field::__field21),
                            b"VariableDefinedWithoutType" =>
                                _serde::__private228::Ok(__Field::__field22),
                            b"IncorrectVariableStateLeftOnStack" =>
                                _serde::__private228::Ok(__Field::__field23),
                            b"NonIntegerExpressionWhereIntegerRequired" =>
                                _serde::__private228::Ok(__Field::__field24),
                            b"VoidExpressionWhereNonVoidRequired" =>
                                _serde::__private228::Ok(__Field::__field25),
                            b"InvalidParametersForAssignment" =>
                                _serde::__private228::Ok(__Field::__field26),
                            b"DeclarationDoesNotMatchParameters" =>
                                _serde::__private228::Ok(__Field::__field27),
                            b"LogicalOperationHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field28),
                            b"EqualityTestHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field29),
                            b"ComparisonTestHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field30),
                            b"ShiftOperationHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field31),
                            b"ArithmeticOperationHasInvalidOperands" =>
                                _serde::__private228::Ok(__Field::__field32),
                            b"UnknownOperationInSemanticCheck" =>
                                _serde::__private228::Ok(__Field::__field33),
                            b"ScriptTooLarge" =>
                                _serde::__private228::Ok(__Field::__field34),
                            b"ReturnStatementHasNoParameters" =>
                                _serde::__private228::Ok(__Field::__field35),
                            b"NoWhileAfterDoKeyword" =>
                                _serde::__private228::Ok(__Field::__field36),
                            b"FunctionDefinitionMissingName" =>
                                _serde::__private228::Ok(__Field::__field37),
                            b"FunctionDefinitionMissingParameterList" =>
                                _serde::__private228::Ok(__Field::__field38),
                            b"MalformedParameterList" =>
                                _serde::__private228::Ok(__Field::__field39),
                            b"BadTypeSpecifier" =>
                                _serde::__private228::Ok(__Field::__field40),
                            b"NoSemicolonAfterStructure" =>
                                _serde::__private228::Ok(__Field::__field41),
                            b"EllipsisInIdentifier" =>
                                _serde::__private228::Ok(__Field::__field42),
                            b"FileNotFound" =>
                                _serde::__private228::Ok(__Field::__field43),
                            b"IncludeRecursive" =>
                                _serde::__private228::Ok(__Field::__field44),
                            b"IncludeTooManyLevels" =>
                                _serde::__private228::Ok(__Field::__field45),
                            b"ParsingReturnStatement" =>
                                _serde::__private228::Ok(__Field::__field46),
                            b"ParsingIdentifierList" =>
                                _serde::__private228::Ok(__Field::__field47),
                            b"ParsingFunctionDeclaration" =>
                                _serde::__private228::Ok(__Field::__field48),
                            b"DuplicateFunctionImplementation" =>
                                _serde::__private228::Ok(__Field::__field49),
                            b"TokenTooLong" =>
                                _serde::__private228::Ok(__Field::__field50),
                            b"UndefinedStructure" =>
                                _serde::__private228::Ok(__Field::__field51),
                            b"LeftOfStructurePartNotStructure" =>
                                _serde::__private228::Ok(__Field::__field52),
                            b"RightOfStructurePartNotFieldInStructure" =>
                                _serde::__private228::Ok(__Field::__field53),
                            b"UndefinedFieldInStructure" =>
                                _serde::__private228::Ok(__Field::__field54),
                            b"StructureRedefined" =>
                                _serde::__private228::Ok(__Field::__field55),
                            b"VariableUsedTwiceInSameStructure" =>
                                _serde::__private228::Ok(__Field::__field56),
                            b"FunctionImplementationAndDefinitionDiffer" =>
                                _serde::__private228::Ok(__Field::__field57),
                            b"MismatchedTypes" =>
                                _serde::__private228::Ok(__Field::__field58),
                            b"IntegerNotAtTopOfStack" =>
                                _serde::__private228::Ok(__Field::__field59),
                            b"ReturnTypeAndFunctionTypeMismatched" =>
                                _serde::__private228::Ok(__Field::__field60),
                            b"NotAllControlPathsReturnAValue" =>
                                _serde::__private228::Ok(__Field::__field61),
                            b"UndefinedIdentifier" =>
                                _serde::__private228::Ok(__Field::__field62),
                            b"NoFunctionMainInScript" =>
                                _serde::__private228::Ok(__Field::__field63),
                            b"FunctionMainMustHaveVoidReturnValue" =>
                                _serde::__private228::Ok(__Field::__field64),
                            b"FunctionMainMustHaveNoParameters" =>
                                _serde::__private228::Ok(__Field::__field65),
                            b"NonVoidFunctionCannotBeAStatement" =>
                                _serde::__private228::Ok(__Field::__field66),
                            b"BadVariableName" =>
                                _serde::__private228::Ok(__Field::__field67),
                            b"NonOptionalParameterCannotFollowOptionalParameter" =>
                                _serde::__private228::Ok(__Field::__field68),
                            b"TypeDoesNotHaveAnOptionalParameter" =>
                                _serde::__private228::Ok(__Field::__field69),
                            b"NonConstantInFunctionDeclaration" =>
                                _serde::__private228::Ok(__Field::__field70),
                            b"ParsingConstantVector" =>
                                _serde::__private228::Ok(__Field::__field71),
                            b"OperandMustBeAnIntegerLValue" =>
                                _serde::__private228::Ok(__Field::__field72),
                            b"ConditionalRequiresSecondExpression" =>
                                _serde::__private228::Ok(__Field::__field73),
                            b"ConditionalMustHaveMatchingReturnTypes" =>
                                _serde::__private228::Ok(__Field::__field74),
                            b"MultipleDefaultStatementsWithinSwitch" =>
                                _serde::__private228::Ok(__Field::__field75),
                            b"MultipleCaseConstantStatementsWithinSwitch" =>
                                _serde::__private228::Ok(__Field::__field76),
                            b"CaseParameterNotAConstantInteger" =>
                                _serde::__private228::Ok(__Field::__field77),
                            b"SwitchMustEvaluateToAnInteger" =>
                                _serde::__private228::Ok(__Field::__field78),
                            b"NoColonAfterDefaultLabel" =>
                                _serde::__private228::Ok(__Field::__field79),
                            b"NoColonAfterCaseLabel" =>
                                _serde::__private228::Ok(__Field::__field80),
                            b"NoSemicolonAfterStatement" =>
                                _serde::__private228::Ok(__Field::__field81),
                            b"BreakOutsideOfLoopOrCaseStatement" =>
                                _serde::__private228::Ok(__Field::__field82),
                            b"TooManyParametersOnFunction" =>
                                _serde::__private228::Ok(__Field::__field83),
                            b"UnableToOpenFileForWriting" =>
                                _serde::__private228::Ok(__Field::__field84),
                            b"UnterminatedStringConstant" =>
                                _serde::__private228::Ok(__Field::__field85),
                            b"NoFunctionIntscInScript" =>
                                _serde::__private228::Ok(__Field::__field86),
                            b"FunctionIntscMustHaveVoidReturnValue" =>
                                _serde::__private228::Ok(__Field::__field87),
                            b"FunctionIntscMustHaveNoParameters" =>
                                _serde::__private228::Ok(__Field::__field88),
                            b"JumpingOverDeclarationStatementsCaseDisallowed" =>
                                _serde::__private228::Ok(__Field::__field89),
                            b"JumpingOverDeclarationStatementsDefaultDisallowed" =>
                                _serde::__private228::Ok(__Field::__field90),
                            b"ElseWithoutCorrespondingIf" =>
                                _serde::__private228::Ok(__Field::__field91),
                            b"IfConditionCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field92),
                            b"InvalidTypeForConstKeyword" =>
                                _serde::__private228::Ok(__Field::__field93),
                            b"ConstKeywordCannotBeUsedOnNonGlobalVariables" =>
                                _serde::__private228::Ok(__Field::__field94),
                            b"InvalidValueAssignedToConstant" =>
                                _serde::__private228::Ok(__Field::__field95),
                            b"SwitchConditionCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field96),
                            b"WhileConditionCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field97),
                            b"ForStatementCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field98),
                            b"CannotIncludeThisFileTwice" =>
                                _serde::__private228::Ok(__Field::__field99),
                            b"ElseCannotBeFollowedByANullStatement" =>
                                _serde::__private228::Ok(__Field::__field100),
                            b"VmTooManyInstructions" =>
                                _serde::__private228::Ok(__Field::__field101),
                            b"VmTooManyLevelsOfRecursion" =>
                                _serde::__private228::Ok(__Field::__field102),
                            b"VmFileNotOpened" =>
                                _serde::__private228::Ok(__Field::__field103),
                            b"VmFileNotCompiledSuccessfully" =>
                                _serde::__private228::Ok(__Field::__field104),
                            b"VmInvalidAuxCode" =>
                                _serde::__private228::Ok(__Field::__field105),
                            b"VmNullVirtualMachineNode" =>
                                _serde::__private228::Ok(__Field::__field106),
                            b"VmStackOverflow" =>
                                _serde::__private228::Ok(__Field::__field107),
                            b"VmStackUnderflow" =>
                                _serde::__private228::Ok(__Field::__field108),
                            b"VmInvalidOpCode" =>
                                _serde::__private228::Ok(__Field::__field109),
                            b"VmInvalidExtraDataOnOpCode" =>
                                _serde::__private228::Ok(__Field::__field110),
                            b"VmInvalidCommand" =>
                                _serde::__private228::Ok(__Field::__field111),
                            b"VmFakeShortcutLogicalOperation" =>
                                _serde::__private228::Ok(__Field::__field112),
                            b"VmDivideByZero" =>
                                _serde::__private228::Ok(__Field::__field113),
                            b"VmFakeAbortScript" =>
                                _serde::__private228::Ok(__Field::__field114),
                            b"VmIpOutOfCodeSegment" =>
                                _serde::__private228::Ok(__Field::__field115),
                            b"VmCommandImplementerNotSet" =>
                                _serde::__private228::Ok(__Field::__field116),
                            b"VmUnknownTypeOnRunTimeStack" =>
                                _serde::__private228::Ok(__Field::__field117),
                            b"AlreadyPrinted" =>
                                _serde::__private228::Ok(__Field::__field118),
                            _ => {
                                let __value =
                                    &_serde::__private228::from_utf8_lossy(__value);
                                _serde::__private228::Err(_serde::de::Error::unknown_variant(__value,
                                        VARIANTS))
                            }
                        }
                    }
                }
                #[automatically_derived]
                impl<'de> _serde::Deserialize<'de> for __Field {
                    #[inline]
                    fn deserialize<__D>(__deserializer: __D)
                        -> _serde::__private228::Result<Self, __D::Error> where
                        __D: _serde::Deserializer<'de> {
                        _serde::Deserializer::deserialize_identifier(__deserializer,
                            __FieldVisitor)
                    }
                }
                #[doc(hidden)]
                struct __Visitor<'de> {
                    marker: _serde::__private228::PhantomData<CompilerErrorCode>,
                    lifetime: _serde::__private228::PhantomData<&'de ()>,
                }
                #[automatically_derived]
                impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
                    type Value = CompilerErrorCode;
                    fn expecting(&self,
                        __formatter: &mut _serde::__private228::Formatter)
                        -> _serde::__private228::fmt::Result {
                        _serde::__private228::Formatter::write_str(__formatter,
                            "enum CompilerErrorCode")
                    }
                    fn visit_enum<__A>(self, __data: __A)
                        -> _serde::__private228::Result<Self::Value, __A::Error>
                        where __A: _serde::de::EnumAccess<'de> {
                        match _serde::de::EnumAccess::variant(__data)? {
                            (__Field::__field0, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UnexpectedCharacter)
                            }
                            (__Field::__field1, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FatalCompilerError)
                            }
                            (__Field::__field2, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ProgramCompoundStatementAtStart)
                            }
                            (__Field::__field3, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UnexpectedEndCompoundStatement)
                            }
                            (__Field::__field4, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::AfterCompoundStatementAtEnd)
                            }
                            (__Field::__field5, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ParsingVariableList)
                            }
                            (__Field::__field6, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UnknownStateInCompiler)
                            }
                            (__Field::__field7, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::InvalidDeclarationType)
                            }
                            (__Field::__field8, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoLeftBracketOnExpression)
                            }
                            (__Field::__field9, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoRightBracketOnExpression)
                            }
                            (__Field::__field10, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::BadStartOfStatement)
                            }
                            (__Field::__field11, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoLeftBracketOnArgList)
                            }
                            (__Field::__field12, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoRightBracketOnArgList)
                            }
                            (__Field::__field13, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoSemicolonAfterExpression)
                            }
                            (__Field::__field14, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ParsingAssignmentStatement)
                            }
                            (__Field::__field15, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::BadLValue)
                            }
                            (__Field::__field16, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::BadConstantType)
                            }
                            (__Field::__field17, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::IdentifierListFull)
                            }
                            (__Field::__field18, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NonIntegerIdForIntegerConstant)
                            }
                            (__Field::__field19, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NonFloatIdForFloatConstant)
                            }
                            (__Field::__field20, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NonStringIdForStringConstant)
                            }
                            (__Field::__field21, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VariableAlreadyUsedWithinScope)
                            }
                            (__Field::__field22, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VariableDefinedWithoutType)
                            }
                            (__Field::__field23, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::IncorrectVariableStateLeftOnStack)
                            }
                            (__Field::__field24, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NonIntegerExpressionWhereIntegerRequired)
                            }
                            (__Field::__field25, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VoidExpressionWhereNonVoidRequired)
                            }
                            (__Field::__field26, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::InvalidParametersForAssignment)
                            }
                            (__Field::__field27, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::DeclarationDoesNotMatchParameters)
                            }
                            (__Field::__field28, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::LogicalOperationHasInvalidOperands)
                            }
                            (__Field::__field29, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::EqualityTestHasInvalidOperands)
                            }
                            (__Field::__field30, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ComparisonTestHasInvalidOperands)
                            }
                            (__Field::__field31, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ShiftOperationHasInvalidOperands)
                            }
                            (__Field::__field32, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ArithmeticOperationHasInvalidOperands)
                            }
                            (__Field::__field33, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UnknownOperationInSemanticCheck)
                            }
                            (__Field::__field34, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ScriptTooLarge)
                            }
                            (__Field::__field35, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ReturnStatementHasNoParameters)
                            }
                            (__Field::__field36, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoWhileAfterDoKeyword)
                            }
                            (__Field::__field37, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FunctionDefinitionMissingName)
                            }
                            (__Field::__field38, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FunctionDefinitionMissingParameterList)
                            }
                            (__Field::__field39, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::MalformedParameterList)
                            }
                            (__Field::__field40, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::BadTypeSpecifier)
                            }
                            (__Field::__field41, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoSemicolonAfterStructure)
                            }
                            (__Field::__field42, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::EllipsisInIdentifier)
                            }
                            (__Field::__field43, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FileNotFound)
                            }
                            (__Field::__field44, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::IncludeRecursive)
                            }
                            (__Field::__field45, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::IncludeTooManyLevels)
                            }
                            (__Field::__field46, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ParsingReturnStatement)
                            }
                            (__Field::__field47, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ParsingIdentifierList)
                            }
                            (__Field::__field48, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ParsingFunctionDeclaration)
                            }
                            (__Field::__field49, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::DuplicateFunctionImplementation)
                            }
                            (__Field::__field50, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::TokenTooLong)
                            }
                            (__Field::__field51, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UndefinedStructure)
                            }
                            (__Field::__field52, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::LeftOfStructurePartNotStructure)
                            }
                            (__Field::__field53, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::RightOfStructurePartNotFieldInStructure)
                            }
                            (__Field::__field54, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UndefinedFieldInStructure)
                            }
                            (__Field::__field55, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::StructureRedefined)
                            }
                            (__Field::__field56, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VariableUsedTwiceInSameStructure)
                            }
                            (__Field::__field57, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FunctionImplementationAndDefinitionDiffer)
                            }
                            (__Field::__field58, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::MismatchedTypes)
                            }
                            (__Field::__field59, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::IntegerNotAtTopOfStack)
                            }
                            (__Field::__field60, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ReturnTypeAndFunctionTypeMismatched)
                            }
                            (__Field::__field61, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NotAllControlPathsReturnAValue)
                            }
                            (__Field::__field62, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UndefinedIdentifier)
                            }
                            (__Field::__field63, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoFunctionMainInScript)
                            }
                            (__Field::__field64, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FunctionMainMustHaveVoidReturnValue)
                            }
                            (__Field::__field65, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FunctionMainMustHaveNoParameters)
                            }
                            (__Field::__field66, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NonVoidFunctionCannotBeAStatement)
                            }
                            (__Field::__field67, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::BadVariableName)
                            }
                            (__Field::__field68, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NonOptionalParameterCannotFollowOptionalParameter)
                            }
                            (__Field::__field69, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::TypeDoesNotHaveAnOptionalParameter)
                            }
                            (__Field::__field70, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NonConstantInFunctionDeclaration)
                            }
                            (__Field::__field71, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ParsingConstantVector)
                            }
                            (__Field::__field72, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::OperandMustBeAnIntegerLValue)
                            }
                            (__Field::__field73, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ConditionalRequiresSecondExpression)
                            }
                            (__Field::__field74, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ConditionalMustHaveMatchingReturnTypes)
                            }
                            (__Field::__field75, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::MultipleDefaultStatementsWithinSwitch)
                            }
                            (__Field::__field76, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::MultipleCaseConstantStatementsWithinSwitch)
                            }
                            (__Field::__field77, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::CaseParameterNotAConstantInteger)
                            }
                            (__Field::__field78, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::SwitchMustEvaluateToAnInteger)
                            }
                            (__Field::__field79, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoColonAfterDefaultLabel)
                            }
                            (__Field::__field80, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoColonAfterCaseLabel)
                            }
                            (__Field::__field81, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoSemicolonAfterStatement)
                            }
                            (__Field::__field82, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::BreakOutsideOfLoopOrCaseStatement)
                            }
                            (__Field::__field83, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::TooManyParametersOnFunction)
                            }
                            (__Field::__field84, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UnableToOpenFileForWriting)
                            }
                            (__Field::__field85, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::UnterminatedStringConstant)
                            }
                            (__Field::__field86, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::NoFunctionIntscInScript)
                            }
                            (__Field::__field87, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FunctionIntscMustHaveVoidReturnValue)
                            }
                            (__Field::__field88, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::FunctionIntscMustHaveNoParameters)
                            }
                            (__Field::__field89, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::JumpingOverDeclarationStatementsCaseDisallowed)
                            }
                            (__Field::__field90, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::JumpingOverDeclarationStatementsDefaultDisallowed)
                            }
                            (__Field::__field91, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ElseWithoutCorrespondingIf)
                            }
                            (__Field::__field92, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::IfConditionCannotBeFollowedByANullStatement)
                            }
                            (__Field::__field93, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::InvalidTypeForConstKeyword)
                            }
                            (__Field::__field94, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ConstKeywordCannotBeUsedOnNonGlobalVariables)
                            }
                            (__Field::__field95, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::InvalidValueAssignedToConstant)
                            }
                            (__Field::__field96, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::SwitchConditionCannotBeFollowedByANullStatement)
                            }
                            (__Field::__field97, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::WhileConditionCannotBeFollowedByANullStatement)
                            }
                            (__Field::__field98, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ForStatementCannotBeFollowedByANullStatement)
                            }
                            (__Field::__field99, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::CannotIncludeThisFileTwice)
                            }
                            (__Field::__field100, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::ElseCannotBeFollowedByANullStatement)
                            }
                            (__Field::__field101, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmTooManyInstructions)
                            }
                            (__Field::__field102, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmTooManyLevelsOfRecursion)
                            }
                            (__Field::__field103, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmFileNotOpened)
                            }
                            (__Field::__field104, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmFileNotCompiledSuccessfully)
                            }
                            (__Field::__field105, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmInvalidAuxCode)
                            }
                            (__Field::__field106, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmNullVirtualMachineNode)
                            }
                            (__Field::__field107, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmStackOverflow)
                            }
                            (__Field::__field108, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmStackUnderflow)
                            }
                            (__Field::__field109, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmInvalidOpCode)
                            }
                            (__Field::__field110, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmInvalidExtraDataOnOpCode)
                            }
                            (__Field::__field111, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmInvalidCommand)
                            }
                            (__Field::__field112, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmFakeShortcutLogicalOperation)
                            }
                            (__Field::__field113, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmDivideByZero)
                            }
                            (__Field::__field114, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmFakeAbortScript)
                            }
                            (__Field::__field115, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmIpOutOfCodeSegment)
                            }
                            (__Field::__field116, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmCommandImplementerNotSet)
                            }
                            (__Field::__field117, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::VmUnknownTypeOnRunTimeStack)
                            }
                            (__Field::__field118, __variant) => {
                                _serde::de::VariantAccess::unit_variant(__variant)?;
                                _serde::__private228::Ok(CompilerErrorCode::AlreadyPrinted)
                            }
                        }
                    }
                }
                #[doc(hidden)]
                const VARIANTS: &'static [&'static str] =
                    &["UnexpectedCharacter", "FatalCompilerError",
                                "ProgramCompoundStatementAtStart",
                                "UnexpectedEndCompoundStatement",
                                "AfterCompoundStatementAtEnd", "ParsingVariableList",
                                "UnknownStateInCompiler", "InvalidDeclarationType",
                                "NoLeftBracketOnExpression", "NoRightBracketOnExpression",
                                "BadStartOfStatement", "NoLeftBracketOnArgList",
                                "NoRightBracketOnArgList", "NoSemicolonAfterExpression",
                                "ParsingAssignmentStatement", "BadLValue",
                                "BadConstantType", "IdentifierListFull",
                                "NonIntegerIdForIntegerConstant",
                                "NonFloatIdForFloatConstant",
                                "NonStringIdForStringConstant",
                                "VariableAlreadyUsedWithinScope",
                                "VariableDefinedWithoutType",
                                "IncorrectVariableStateLeftOnStack",
                                "NonIntegerExpressionWhereIntegerRequired",
                                "VoidExpressionWhereNonVoidRequired",
                                "InvalidParametersForAssignment",
                                "DeclarationDoesNotMatchParameters",
                                "LogicalOperationHasInvalidOperands",
                                "EqualityTestHasInvalidOperands",
                                "ComparisonTestHasInvalidOperands",
                                "ShiftOperationHasInvalidOperands",
                                "ArithmeticOperationHasInvalidOperands",
                                "UnknownOperationInSemanticCheck", "ScriptTooLarge",
                                "ReturnStatementHasNoParameters", "NoWhileAfterDoKeyword",
                                "FunctionDefinitionMissingName",
                                "FunctionDefinitionMissingParameterList",
                                "MalformedParameterList", "BadTypeSpecifier",
                                "NoSemicolonAfterStructure", "EllipsisInIdentifier",
                                "FileNotFound", "IncludeRecursive", "IncludeTooManyLevels",
                                "ParsingReturnStatement", "ParsingIdentifierList",
                                "ParsingFunctionDeclaration",
                                "DuplicateFunctionImplementation", "TokenTooLong",
                                "UndefinedStructure", "LeftOfStructurePartNotStructure",
                                "RightOfStructurePartNotFieldInStructure",
                                "UndefinedFieldInStructure", "StructureRedefined",
                                "VariableUsedTwiceInSameStructure",
                                "FunctionImplementationAndDefinitionDiffer",
                                "MismatchedTypes", "IntegerNotAtTopOfStack",
                                "ReturnTypeAndFunctionTypeMismatched",
                                "NotAllControlPathsReturnAValue", "UndefinedIdentifier",
                                "NoFunctionMainInScript",
                                "FunctionMainMustHaveVoidReturnValue",
                                "FunctionMainMustHaveNoParameters",
                                "NonVoidFunctionCannotBeAStatement", "BadVariableName",
                                "NonOptionalParameterCannotFollowOptionalParameter",
                                "TypeDoesNotHaveAnOptionalParameter",
                                "NonConstantInFunctionDeclaration", "ParsingConstantVector",
                                "OperandMustBeAnIntegerLValue",
                                "ConditionalRequiresSecondExpression",
                                "ConditionalMustHaveMatchingReturnTypes",
                                "MultipleDefaultStatementsWithinSwitch",
                                "MultipleCaseConstantStatementsWithinSwitch",
                                "CaseParameterNotAConstantInteger",
                                "SwitchMustEvaluateToAnInteger", "NoColonAfterDefaultLabel",
                                "NoColonAfterCaseLabel", "NoSemicolonAfterStatement",
                                "BreakOutsideOfLoopOrCaseStatement",
                                "TooManyParametersOnFunction", "UnableToOpenFileForWriting",
                                "UnterminatedStringConstant", "NoFunctionIntscInScript",
                                "FunctionIntscMustHaveVoidReturnValue",
                                "FunctionIntscMustHaveNoParameters",
                                "JumpingOverDeclarationStatementsCaseDisallowed",
                                "JumpingOverDeclarationStatementsDefaultDisallowed",
                                "ElseWithoutCorrespondingIf",
                                "IfConditionCannotBeFollowedByANullStatement",
                                "InvalidTypeForConstKeyword",
                                "ConstKeywordCannotBeUsedOnNonGlobalVariables",
                                "InvalidValueAssignedToConstant",
                                "SwitchConditionCannotBeFollowedByANullStatement",
                                "WhileConditionCannotBeFollowedByANullStatement",
                                "ForStatementCannotBeFollowedByANullStatement",
                                "CannotIncludeThisFileTwice",
                                "ElseCannotBeFollowedByANullStatement",
                                "VmTooManyInstructions", "VmTooManyLevelsOfRecursion",
                                "VmFileNotOpened", "VmFileNotCompiledSuccessfully",
                                "VmInvalidAuxCode", "VmNullVirtualMachineNode",
                                "VmStackOverflow", "VmStackUnderflow", "VmInvalidOpCode",
                                "VmInvalidExtraDataOnOpCode", "VmInvalidCommand",
                                "VmFakeShortcutLogicalOperation", "VmDivideByZero",
                                "VmFakeAbortScript", "VmIpOutOfCodeSegment",
                                "VmCommandImplementerNotSet", "VmUnknownTypeOnRunTimeStack",
                                "AlreadyPrinted"];
                _serde::Deserializer::deserialize_enum(__deserializer,
                    "CompilerErrorCode", VARIANTS,
                    __Visitor {
                        marker: _serde::__private228::PhantomData::<CompilerErrorCode>,
                        lifetime: _serde::__private228::PhantomData,
                    })
            }
        }
    };Deserialize)]
7#[repr(i32)]
8pub enum CompilerErrorCode {
9    /// An unexpected character was encountered during lexing.
10    UnexpectedCharacter = -560,
11    /// The compiler reported a fatal internal error.
12    FatalCompilerError = -561,
13    /// Parsing expected a compound statement at program start.
14    ProgramCompoundStatementAtStart = -562,
15    /// A closing brace appeared without a matching opening brace.
16    UnexpectedEndCompoundStatement = -563,
17    /// Unexpected tokens appeared after a compound statement.
18    AfterCompoundStatementAtEnd = -564,
19    /// Parsing a variable list failed.
20    ParsingVariableList = -565,
21    /// The compiler entered an unexpected internal state.
22    UnknownStateInCompiler = -566,
23    /// A declaration used an invalid type.
24    InvalidDeclarationType = -567,
25    /// An expression was missing `(`.
26    NoLeftBracketOnExpression = -568,
27    /// An expression was missing `)`.
28    NoRightBracketOnExpression = -569,
29    /// A statement started with an invalid token.
30    BadStartOfStatement = -570,
31    /// A call argument list was missing `(`.
32    NoLeftBracketOnArgList = -571,
33    /// A call argument list was missing `)`.
34    NoRightBracketOnArgList = -572,
35    /// An expression statement was missing a semicolon.
36    NoSemicolonAfterExpression = -573,
37    /// Parsing an assignment statement failed.
38    ParsingAssignmentStatement = -574,
39    /// The assignment target was invalid.
40    BadLValue = -575,
41    /// A constant literal had an invalid type.
42    BadConstantType = -576,
43    /// The identifier table is full.
44    IdentifierListFull = -577,
45    /// An integer constant referenced a non-integer identifier.
46    NonIntegerIdForIntegerConstant = -578,
47    /// A float constant referenced a non-float identifier.
48    NonFloatIdForFloatConstant = -579,
49    /// A string constant referenced a non-string identifier.
50    NonStringIdForStringConstant = -580,
51    /// A variable name was reused within the same scope.
52    VariableAlreadyUsedWithinScope = -581,
53    /// A variable was defined without a type.
54    VariableDefinedWithoutType = -582,
55    /// The compile stack ended in an invalid variable state.
56    IncorrectVariableStateLeftOnStack = -583,
57    /// An integer expression was required.
58    NonIntegerExpressionWhereIntegerRequired = -584,
59    /// A non-void expression was required.
60    VoidExpressionWhereNonVoidRequired = -585,
61    /// Assignment parameters were invalid.
62    InvalidParametersForAssignment = -586,
63    /// A declaration did not match its parameter list.
64    DeclarationDoesNotMatchParameters = -587,
65    /// A logical operation used invalid operands.
66    LogicalOperationHasInvalidOperands = -588,
67    /// An equality test used invalid operands.
68    EqualityTestHasInvalidOperands = -589,
69    /// A comparison test used invalid operands.
70    ComparisonTestHasInvalidOperands = -590,
71    /// A shift operation used invalid operands.
72    ShiftOperationHasInvalidOperands = -591,
73    /// An arithmetic operation used invalid operands.
74    ArithmeticOperationHasInvalidOperands = -592,
75    /// The semantic checker saw an unknown operation.
76    UnknownOperationInSemanticCheck = -593,
77    /// The compiled script exceeded the maximum supported size.
78    ScriptTooLarge = -594,
79    /// A return statement was missing its return value.
80    ReturnStatementHasNoParameters = -595,
81    /// `do` was not followed by `while`.
82    NoWhileAfterDoKeyword = -596,
83    /// A function definition was missing its name.
84    FunctionDefinitionMissingName = -597,
85    /// A function definition was missing its parameter list.
86    FunctionDefinitionMissingParameterList = -598,
87    /// A parameter list was malformed.
88    MalformedParameterList = -599,
89    /// A type specifier was invalid.
90    BadTypeSpecifier = -600,
91    /// A struct declaration was missing a semicolon.
92    NoSemicolonAfterStructure = -601,
93    /// An ellipsis-like construct appeared in an identifier.
94    EllipsisInIdentifier = -602,
95    /// A requested source file could not be found.
96    FileNotFound = -603,
97    /// A recursive include was detected.
98    IncludeRecursive = -604,
99    /// Too many include levels were used.
100    IncludeTooManyLevels = -605,
101    /// Parsing a return statement failed.
102    ParsingReturnStatement = -606,
103    /// Parsing the identifier list failed.
104    ParsingIdentifierList = -607,
105    /// Parsing a function declaration failed.
106    ParsingFunctionDeclaration = -608,
107    /// A function implementation was defined more than once.
108    DuplicateFunctionImplementation = -609,
109    /// A token exceeded the maximum allowed length.
110    TokenTooLong = -610,
111    /// A referenced struct type was undefined.
112    UndefinedStructure = -611,
113    /// The left side of a field access was not a structure.
114    LeftOfStructurePartNotStructure = -612,
115    /// The right side of a field access was not a valid field.
116    RightOfStructurePartNotFieldInStructure = -613,
117    /// A referenced struct field was undefined.
118    UndefinedFieldInStructure = -614,
119    /// A struct was redefined.
120    StructureRedefined = -615,
121    /// A field name was reused within the same structure.
122    VariableUsedTwiceInSameStructure = -616,
123    /// A function implementation disagreed with its declaration.
124    FunctionImplementationAndDefinitionDiffer = -617,
125    /// Two types were incompatible.
126    MismatchedTypes = -618,
127    /// The top of stack was not an integer when required.
128    IntegerNotAtTopOfStack = -619,
129    /// A function return type and returned expression type disagreed.
130    ReturnTypeAndFunctionTypeMismatched = -620,
131    /// Not all control paths return a value.
132    NotAllControlPathsReturnAValue = -621,
133    /// An identifier was undefined.
134    UndefinedIdentifier = -622,
135    /// The script did not define `main`.
136    NoFunctionMainInScript = -623,
137    /// `main` must return `void`.
138    FunctionMainMustHaveVoidReturnValue = -624,
139    /// `main` must not take parameters.
140    FunctionMainMustHaveNoParameters = -625,
141    /// A non-void function call was used as a statement.
142    NonVoidFunctionCannotBeAStatement = -626,
143    /// A variable name was invalid.
144    BadVariableName = -627,
145    /// A required parameter followed an optional one.
146    NonOptionalParameterCannotFollowOptionalParameter = -628,
147    /// A type does not support optional parameters.
148    TypeDoesNotHaveAnOptionalParameter = -629,
149    /// A function declaration used a non-constant default value.
150    NonConstantInFunctionDeclaration = -630,
151    /// Parsing a constant vector failed.
152    ParsingConstantVector = -631,
153    /// An operand needed to be an integer lvalue.
154    OperandMustBeAnIntegerLValue = -1594,
155    /// A conditional expression was missing its second expression.
156    ConditionalRequiresSecondExpression = -1595,
157    /// Both arms of a conditional expression must agree on type.
158    ConditionalMustHaveMatchingReturnTypes = -1596,
159    /// Multiple `default` labels appeared in one switch.
160    MultipleDefaultStatementsWithinSwitch = -1597,
161    /// The same `case` value appeared more than once in one switch.
162    MultipleCaseConstantStatementsWithinSwitch = -1598,
163    /// A `case` value was not a constant integer.
164    CaseParameterNotAConstantInteger = -1599,
165    /// A `switch` expression must evaluate to an integer.
166    SwitchMustEvaluateToAnInteger = -1600,
167    /// A `default` label was missing its colon.
168    NoColonAfterDefaultLabel = -1601,
169    /// A `case` label was missing its colon.
170    NoColonAfterCaseLabel = -1602,
171    /// A statement was missing its semicolon.
172    NoSemicolonAfterStatement = -1603,
173    /// `break` was used outside a loop or switch case.
174    BreakOutsideOfLoopOrCaseStatement = -4834,
175    /// A function exceeded the maximum number of parameters.
176    TooManyParametersOnFunction = -4835,
177    /// An output file could not be written.
178    UnableToOpenFileForWriting = -4836,
179    /// A string literal was unterminated.
180    UnterminatedStringConstant = -4855,
181    /// The script did not define the conditional entry function.
182    NoFunctionIntscInScript = -5182,
183    /// The conditional entry function must return `void`.
184    FunctionIntscMustHaveVoidReturnValue = -5183,
185    /// The conditional entry function must not take parameters.
186    FunctionIntscMustHaveNoParameters = -5184,
187    /// A `case` jump would cross declarations illegally.
188    JumpingOverDeclarationStatementsCaseDisallowed = -6804,
189    /// A `default` jump would cross declarations illegally.
190    JumpingOverDeclarationStatementsDefaultDisallowed = -6805,
191    /// `else` appeared without a matching `if`.
192    ElseWithoutCorrespondingIf = -6823,
193    /// An `if` condition cannot be followed by an empty statement.
194    IfConditionCannotBeFollowedByANullStatement = -10407,
195    /// `const` was used with an invalid type.
196    InvalidTypeForConstKeyword = -3741,
197    /// `const` cannot be used on non-global variables.
198    ConstKeywordCannotBeUsedOnNonGlobalVariables = -3742,
199    /// A constant declaration used an invalid assigned value.
200    InvalidValueAssignedToConstant = -3752,
201    /// A `switch` condition cannot be followed by an empty statement.
202    SwitchConditionCannotBeFollowedByANullStatement = -9081,
203    /// A `while` condition cannot be followed by an empty statement.
204    WhileConditionCannotBeFollowedByANullStatement = -9082,
205    /// A `for` statement cannot be followed by an empty statement.
206    ForStatementCannotBeFollowedByANullStatement = -9083,
207    /// The same file cannot be included twice.
208    CannotIncludeThisFileTwice = -9155,
209    /// `else` cannot be followed by an empty statement.
210    ElseCannotBeFollowedByANullStatement = -40104,
211    /// The VM exceeded its instruction limit.
212    VmTooManyInstructions = -632,
213    /// The VM exceeded its recursion limit.
214    VmTooManyLevelsOfRecursion = -633,
215    /// The VM could not open a script file.
216    VmFileNotOpened = -634,
217    /// The VM was asked to run an uncompiled file.
218    VmFileNotCompiledSuccessfully = -635,
219    /// The VM encountered an invalid aux code.
220    VmInvalidAuxCode = -636,
221    /// The VM encountered a null node.
222    VmNullVirtualMachineNode = -637,
223    /// The VM stack overflowed.
224    VmStackOverflow = -638,
225    /// The VM stack underflowed.
226    VmStackUnderflow = -639,
227    /// The VM encountered an invalid opcode.
228    VmInvalidOpCode = -640,
229    /// The VM encountered invalid extra data for an opcode.
230    VmInvalidExtraDataOnOpCode = -641,
231    /// The VM encountered an invalid command id.
232    VmInvalidCommand = -642,
233    /// The VM hit a fake shortcut logical operation.
234    VmFakeShortcutLogicalOperation = -643,
235    /// The VM attempted division by zero.
236    VmDivideByZero = -644,
237    /// The VM received a fake abort request.
238    VmFakeAbortScript = -645,
239    /// The VM instruction pointer left the code segment.
240    VmIpOutOfCodeSegment = -646,
241    /// The VM command implementer was not configured.
242    VmCommandImplementerNotSet = -647,
243    /// The VM encountered an unknown stack value type.
244    VmUnknownTypeOnRunTimeStack = -648,
245    /// The underlying error has already been emitted.
246    AlreadyPrinted = -1,
247}
248
249impl CompilerErrorCode {
250    /// Returns the stable integer code used in diagnostics and fixtures.
251    #[must_use]
252    pub fn code(self) -> i32 {
253        self as i32
254    }
255}
256
257/// An error returned when a numeric compiler error code is not recognized.
258#[derive(#[automatically_derived]
impl ::core::fmt::Debug for UnknownCompilerErrorCode {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::debug_struct_field1_finish(f,
            "UnknownCompilerErrorCode", "code", &&self.code)
    }
}Debug, #[automatically_derived]
impl ::core::clone::Clone for UnknownCompilerErrorCode {
    #[inline]
    fn clone(&self) -> UnknownCompilerErrorCode {
        UnknownCompilerErrorCode {
            code: ::core::clone::Clone::clone(&self.code),
        }
    }
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for UnknownCompilerErrorCode {
    #[inline]
    fn eq(&self, other: &UnknownCompilerErrorCode) -> bool {
        self.code == other.code
    }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for UnknownCompilerErrorCode {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {
        let _: ::core::cmp::AssertParamIsEq<i32>;
    }
}Eq)]
259pub struct UnknownCompilerErrorCode {
260    code: i32,
261}
262
263impl UnknownCompilerErrorCode {
264    /// Creates a new unknown-code error.
265    #[must_use]
266    pub fn new(code: i32) -> Self {
267        Self {
268            code,
269        }
270    }
271
272    /// Returns the unrecognized numeric code.
273    #[must_use]
274    pub fn code(&self) -> i32 {
275        self.code
276    }
277}
278
279impl fmt::Display for UnknownCompilerErrorCode {
280    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
281        f.write_fmt(format_args!("unknown NWScript compiler error code: {0}",
        self.code))write!(f, "unknown NWScript compiler error code: {}", self.code)
282    }
283}
284
285impl Error for UnknownCompilerErrorCode {}
286
287impl TryFrom<i32> for CompilerErrorCode {
288    type Error = UnknownCompilerErrorCode;
289
290    fn try_from(code: i32) -> Result<Self, Self::Error> {
291        let value = match code {
292            -560 => Self::UnexpectedCharacter,
293            -561 => Self::FatalCompilerError,
294            -562 => Self::ProgramCompoundStatementAtStart,
295            -563 => Self::UnexpectedEndCompoundStatement,
296            -564 => Self::AfterCompoundStatementAtEnd,
297            -565 => Self::ParsingVariableList,
298            -566 => Self::UnknownStateInCompiler,
299            -567 => Self::InvalidDeclarationType,
300            -568 => Self::NoLeftBracketOnExpression,
301            -569 => Self::NoRightBracketOnExpression,
302            -570 => Self::BadStartOfStatement,
303            -571 => Self::NoLeftBracketOnArgList,
304            -572 => Self::NoRightBracketOnArgList,
305            -573 => Self::NoSemicolonAfterExpression,
306            -574 => Self::ParsingAssignmentStatement,
307            -575 => Self::BadLValue,
308            -576 => Self::BadConstantType,
309            -577 => Self::IdentifierListFull,
310            -578 => Self::NonIntegerIdForIntegerConstant,
311            -579 => Self::NonFloatIdForFloatConstant,
312            -580 => Self::NonStringIdForStringConstant,
313            -581 => Self::VariableAlreadyUsedWithinScope,
314            -582 => Self::VariableDefinedWithoutType,
315            -583 => Self::IncorrectVariableStateLeftOnStack,
316            -584 => Self::NonIntegerExpressionWhereIntegerRequired,
317            -585 => Self::VoidExpressionWhereNonVoidRequired,
318            -586 => Self::InvalidParametersForAssignment,
319            -587 => Self::DeclarationDoesNotMatchParameters,
320            -588 => Self::LogicalOperationHasInvalidOperands,
321            -589 => Self::EqualityTestHasInvalidOperands,
322            -590 => Self::ComparisonTestHasInvalidOperands,
323            -591 => Self::ShiftOperationHasInvalidOperands,
324            -592 => Self::ArithmeticOperationHasInvalidOperands,
325            -593 => Self::UnknownOperationInSemanticCheck,
326            -594 => Self::ScriptTooLarge,
327            -595 => Self::ReturnStatementHasNoParameters,
328            -596 => Self::NoWhileAfterDoKeyword,
329            -597 => Self::FunctionDefinitionMissingName,
330            -598 => Self::FunctionDefinitionMissingParameterList,
331            -599 => Self::MalformedParameterList,
332            -600 => Self::BadTypeSpecifier,
333            -601 => Self::NoSemicolonAfterStructure,
334            -602 => Self::EllipsisInIdentifier,
335            -603 => Self::FileNotFound,
336            -604 => Self::IncludeRecursive,
337            -605 => Self::IncludeTooManyLevels,
338            -606 => Self::ParsingReturnStatement,
339            -607 => Self::ParsingIdentifierList,
340            -608 => Self::ParsingFunctionDeclaration,
341            -609 => Self::DuplicateFunctionImplementation,
342            -610 => Self::TokenTooLong,
343            -611 => Self::UndefinedStructure,
344            -612 => Self::LeftOfStructurePartNotStructure,
345            -613 => Self::RightOfStructurePartNotFieldInStructure,
346            -614 => Self::UndefinedFieldInStructure,
347            -615 => Self::StructureRedefined,
348            -616 => Self::VariableUsedTwiceInSameStructure,
349            -617 => Self::FunctionImplementationAndDefinitionDiffer,
350            -618 => Self::MismatchedTypes,
351            -619 => Self::IntegerNotAtTopOfStack,
352            -620 => Self::ReturnTypeAndFunctionTypeMismatched,
353            -621 => Self::NotAllControlPathsReturnAValue,
354            -622 => Self::UndefinedIdentifier,
355            -623 => Self::NoFunctionMainInScript,
356            -624 => Self::FunctionMainMustHaveVoidReturnValue,
357            -625 => Self::FunctionMainMustHaveNoParameters,
358            -626 => Self::NonVoidFunctionCannotBeAStatement,
359            -627 => Self::BadVariableName,
360            -628 => Self::NonOptionalParameterCannotFollowOptionalParameter,
361            -629 => Self::TypeDoesNotHaveAnOptionalParameter,
362            -630 => Self::NonConstantInFunctionDeclaration,
363            -631 => Self::ParsingConstantVector,
364            -1594 => Self::OperandMustBeAnIntegerLValue,
365            -1595 => Self::ConditionalRequiresSecondExpression,
366            -1596 => Self::ConditionalMustHaveMatchingReturnTypes,
367            -1597 => Self::MultipleDefaultStatementsWithinSwitch,
368            -1598 => Self::MultipleCaseConstantStatementsWithinSwitch,
369            -1599 => Self::CaseParameterNotAConstantInteger,
370            -1600 => Self::SwitchMustEvaluateToAnInteger,
371            -1601 => Self::NoColonAfterDefaultLabel,
372            -1602 => Self::NoColonAfterCaseLabel,
373            -1603 => Self::NoSemicolonAfterStatement,
374            -4834 => Self::BreakOutsideOfLoopOrCaseStatement,
375            -4835 => Self::TooManyParametersOnFunction,
376            -4836 => Self::UnableToOpenFileForWriting,
377            -4855 => Self::UnterminatedStringConstant,
378            -5182 => Self::NoFunctionIntscInScript,
379            -5183 => Self::FunctionIntscMustHaveVoidReturnValue,
380            -5184 => Self::FunctionIntscMustHaveNoParameters,
381            -6804 => Self::JumpingOverDeclarationStatementsCaseDisallowed,
382            -6805 => Self::JumpingOverDeclarationStatementsDefaultDisallowed,
383            -6823 => Self::ElseWithoutCorrespondingIf,
384            -10407 => Self::IfConditionCannotBeFollowedByANullStatement,
385            -3741 => Self::InvalidTypeForConstKeyword,
386            -3742 => Self::ConstKeywordCannotBeUsedOnNonGlobalVariables,
387            -3752 => Self::InvalidValueAssignedToConstant,
388            -9081 => Self::SwitchConditionCannotBeFollowedByANullStatement,
389            -9082 => Self::WhileConditionCannotBeFollowedByANullStatement,
390            -9083 => Self::ForStatementCannotBeFollowedByANullStatement,
391            -9155 => Self::CannotIncludeThisFileTwice,
392            -40104 => Self::ElseCannotBeFollowedByANullStatement,
393            -632 => Self::VmTooManyInstructions,
394            -633 => Self::VmTooManyLevelsOfRecursion,
395            -634 => Self::VmFileNotOpened,
396            -635 => Self::VmFileNotCompiledSuccessfully,
397            -636 => Self::VmInvalidAuxCode,
398            -637 => Self::VmNullVirtualMachineNode,
399            -638 => Self::VmStackOverflow,
400            -639 => Self::VmStackUnderflow,
401            -640 => Self::VmInvalidOpCode,
402            -641 => Self::VmInvalidExtraDataOnOpCode,
403            -642 => Self::VmInvalidCommand,
404            -643 => Self::VmFakeShortcutLogicalOperation,
405            -644 => Self::VmDivideByZero,
406            -645 => Self::VmFakeAbortScript,
407            -646 => Self::VmIpOutOfCodeSegment,
408            -647 => Self::VmCommandImplementerNotSet,
409            -648 => Self::VmUnknownTypeOnRunTimeStack,
410            -1 => Self::AlreadyPrinted,
411            _ => return Err(UnknownCompilerErrorCode::new(code)),
412        };
413        Ok(value)
414    }
415}