errors.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Code generated by gocc; DO NOT EDIT.
  2. package errors
  3. import (
  4. "bytes"
  5. "fmt"
  6. "github.com/awalterschulze/gographviz/internal/token"
  7. )
  8. type ErrorSymbol interface {
  9. }
  10. type Error struct {
  11. Err error
  12. ErrorToken *token.Token
  13. ErrorSymbols []ErrorSymbol
  14. ExpectedTokens []string
  15. StackTop int
  16. }
  17. func (e *Error) String() string {
  18. w := new(bytes.Buffer)
  19. fmt.Fprintf(w, "Error")
  20. if e.Err != nil {
  21. fmt.Fprintf(w, " %s\n", e.Err)
  22. } else {
  23. fmt.Fprintf(w, "\n")
  24. }
  25. fmt.Fprintf(w, "Token: type=%d, lit=%s\n", e.ErrorToken.Type, e.ErrorToken.Lit)
  26. fmt.Fprintf(w, "Pos: offset=%d, line=%d, column=%d\n", e.ErrorToken.Pos.Offset, e.ErrorToken.Pos.Line, e.ErrorToken.Pos.Column)
  27. fmt.Fprintf(w, "Expected one of: ")
  28. for _, sym := range e.ExpectedTokens {
  29. fmt.Fprintf(w, "%s ", sym)
  30. }
  31. fmt.Fprintf(w, "ErrorSymbol:\n")
  32. for _, sym := range e.ErrorSymbols {
  33. fmt.Fprintf(w, "%v\n", sym)
  34. }
  35. return w.String()
  36. }
  37. func (e *Error) Error() string {
  38. w := new(bytes.Buffer)
  39. fmt.Fprintf(w, "Error in S%d: %s, %s", e.StackTop, token.TokMap.TokenString(e.ErrorToken), e.ErrorToken.Pos.String())
  40. if e.Err != nil {
  41. fmt.Fprintf(w, ": %+v", e.Err)
  42. } else {
  43. fmt.Fprintf(w, ", expected one of: ")
  44. for _, expected := range e.ExpectedTokens {
  45. fmt.Fprintf(w, "%s ", expected)
  46. }
  47. }
  48. return w.String()
  49. }