#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Copyright 2014 California Institute of Technology. ALL RIGHTS RESERVED.
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
# http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 
# United States Government Sponsorship acknowledged. This software is subject to
# U.S. export control laws and regulations and has been classified as 'EAR99 NLR'
# (No [Export] License Required except when exporting to an embargoed country,
# end user, or in support of a prohibited end use). By downloading this software,
# the user agrees to comply with all applicable U.S. export laws and regulations.
# The user has the responsibility to obtain export licenses, or other export
# authority as may be required before exporting this software to any 'EAR99'
# embargoed foreign country or citizen of those countries.
#
# Author: Eric Belz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




"""RDF Exceptions"""
## \namespace rdf.language.errors RDF Exceptions


## Fatal attempt to CODE badly
class RDFError(Exception):
    """Base RDF Error for BAD RDF coding (Fatal)"""
    
## <a href="http://en.wikipedia.org/wiki/Speech_error">Morphere Exchange
## Currents</a>?
class MorphemeExchangeError(RDFError):
    """fix-pre and/or sufix would cast list v. str type errors on "+" 
    anyway, so this is a TypeError
    """

class FatalUnitError(RDFError):
    """raise for unregocnized units (fatally)"""


## RDF Warning of INPUT problems
class RDFWarning(Warning):
    """Base RDF Warning for bad RDF input grammar"""
    
    
class UnknownUnitWarning(Warning):
    """Unrecognized unit (ignored)"""
    
    
## RDF Error for a unit problem (not sure what kind of error this is)
class UnitsError(RDFWarning, ValueError):
    """Raised for a non-existent unit"""

    
## Error for using a character in RESERVED
class ReservedCharacterError(RDFWarning):
    """Error for using a RESERVED character badly"""

    
## Unmatched or un parsable pairs
class UnmatchedBracketsError(ReservedCharacterError):
    """1/2 a delimeter was used"""

    
## Unmatched or un parsable pairs
class RunOnSentenceError(ReservedCharacterError):
    """Too many punctuation marks"""

    
## Unmatched or un parsable pairs
class BackwardBracketsError(ReservedCharacterError):
    """Inverted Punctuation"""

    
## Should be thrown in constructor?
class NullCommandError(RDFWarning):
    """Setting a required command to nothing"""


