errors.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // Copyright 2024 CloudWeGo Authors
  3. //
  4. // Licensed under the Apache License, Version 2.0 (the "License");
  5. // you may not use this file except in compliance with the License.
  6. // You may obtain a copy of the License at
  7. //
  8. // http://www.apache.org/licenses/LICENSE-2.0
  9. //
  10. // Unless required by applicable law or agreed to in writing, software
  11. // distributed under the License is distributed on an "AS IS" BASIS,
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. // See the License for the specific language governing permissions and
  14. // limitations under the License.
  15. //
  16. package expr
  17. import (
  18. `fmt`
  19. )
  20. // SyntaxError represents a syntax error in the expression.
  21. type SyntaxError struct {
  22. Pos int
  23. Reason string
  24. }
  25. func newSyntaxError(pos int, reason string) *SyntaxError {
  26. return &SyntaxError {
  27. Pos : pos,
  28. Reason : reason,
  29. }
  30. }
  31. func (self *SyntaxError) Error() string {
  32. return fmt.Sprintf("Syntax error at position %d: %s", self.Pos, self.Reason)
  33. }
  34. // RuntimeError is an error which would occure at run time.
  35. type RuntimeError struct {
  36. Reason string
  37. }
  38. func newRuntimeError(reason string) *RuntimeError {
  39. return &RuntimeError {
  40. Reason: reason,
  41. }
  42. }
  43. func (self *RuntimeError) Error() string {
  44. return "Runtime error: " + self.Reason
  45. }