crosslang/octive-lean/OctiveLean/Error.lean
Maximus Gorog 6592cd058d Add 'octive-lean/' from commit '4b6fcec565a170d7029d4ccba21be2ecd0512d13'
git-subtree-dir: octive-lean
git-subtree-mainline: fd3d42ae33
git-subtree-split: 4b6fcec565
2026-05-12 02:59:14 -06:00

31 lines
1 KiB
Text

namespace OctiveLean
inductive OctaveError where
| parseError : String → OctaveError
| lexError : String → OctaveError
| nameError : String → OctaveError
| typeError : String → OctaveError
| indexError : String → OctaveError
| valueError : String → OctaveError
| arithError : String → OctaveError
| runtimeError : String → OctaveError
| returnSignal : OctaveError -- non-error control flow
| breakSignal : OctaveError
| continueSignal : OctaveError
deriving Repr, Inhabited
instance : ToString OctaveError where
toString
| .parseError s => s!"parse error: {s}"
| .lexError s => s!"lex error: {s}"
| .nameError s => s!"''{s}'' undefined"
| .typeError s => s!"type error: {s}"
| .indexError s => s!"index error: {s}"
| .valueError s => s!"value error: {s}"
| .arithError s => s!"arithmetic error: {s}"
| .runtimeError s => s!"error: {s}"
| .returnSignal => "return"
| .breakSignal => "break"
| .continueSignal => "continue"
end OctiveLean