diff options
Diffstat (limited to 'pkg/lang/vm/code/errors.go')
| -rw-r--r-- | pkg/lang/vm/code/errors.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/pkg/lang/vm/code/errors.go b/pkg/lang/vm/code/errors.go new file mode 100644 index 0000000..3261dd9 --- /dev/null +++ b/pkg/lang/vm/code/errors.go @@ -0,0 +1,32 @@ +package code + +import "fmt" + +type ErrBuilderAppendMarkerDefinitionClash struct { + Marker Marker + ParentPc int + ChildPc int +} + +func (e ErrBuilderAppendMarkerDefinitionClash) Error() string { + return fmt.Sprintf("parent and child builder definitions for marker '%v' clash (parent: %d, child: %d)", e.Marker, e.ParentPc, e.ChildPc) +} + +type ErrBuilderUnfulfilledMarker struct { + Marker Marker + Pc int +} + +func (e ErrBuilderUnfulfilledMarker) Error() string { + return fmt.Sprintf("encountered unfulfilled marker '%v' at pc %d", e.Marker, e.Pc) +} + +type ErrBuilderOverwrittenMarkerReference struct { + Marker Marker + Pc int + UnexpectedValue uint64 +} + +func (e ErrBuilderOverwrittenMarkerReference) Error() string { + return fmt.Sprintf("marker reference for marker '%v' at pc %d was overwritten (value: %x)", e.Marker, e.Pc, e.UnexpectedValue) +} |
