mirror of
https://github.com/gonum/gonum.git
synced 2025-09-27 03:26:04 +08:00

This fixes the capitalisation of Gonum where it refers to the project rather than the GitHub organisation or repository. The text of CONTRIBUTORS also is fixed to reflect the reality that contributors may have contributed to other repositories within the project.
67 lines
1.7 KiB
Go
67 lines
1.7 KiB
Go
// Code generated by gocc; DO NOT EDIT.
|
|
|
|
// This file is dual licensed under CC0 and The Gonum License.
|
|
//
|
|
// Copyright ©2017 The Gonum Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
//
|
|
// Copyright ©2017 Robin Eklind.
|
|
// This file is made available under a Creative Commons CC0 1.0
|
|
// Universal Public Domain Dedication.
|
|
|
|
package errors
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"gonum.org/v1/gonum/graph/formats/dot/internal/token"
|
|
)
|
|
|
|
type ErrorSymbol interface {
|
|
}
|
|
|
|
type Error struct {
|
|
Err error
|
|
ErrorToken *token.Token
|
|
ErrorSymbols []ErrorSymbol
|
|
ExpectedTokens []string
|
|
StackTop int
|
|
}
|
|
|
|
func (e *Error) String() string {
|
|
w := new(strings.Builder)
|
|
fmt.Fprintf(w, "Error")
|
|
if e.Err != nil {
|
|
fmt.Fprintf(w, " %s\n", e.Err)
|
|
} else {
|
|
fmt.Fprintf(w, "\n")
|
|
}
|
|
fmt.Fprintf(w, "Token: type=%d, lit=%s\n", e.ErrorToken.Type, e.ErrorToken.Lit)
|
|
fmt.Fprintf(w, "Pos: offset=%d, line=%d, column=%d\n", e.ErrorToken.Pos.Offset, e.ErrorToken.Pos.Line, e.ErrorToken.Pos.Column)
|
|
fmt.Fprintf(w, "Expected one of: ")
|
|
for _, sym := range e.ExpectedTokens {
|
|
fmt.Fprintf(w, "%s ", sym)
|
|
}
|
|
fmt.Fprintf(w, "ErrorSymbol:\n")
|
|
for _, sym := range e.ErrorSymbols {
|
|
fmt.Fprintf(w, "%v\n", sym)
|
|
}
|
|
return w.String()
|
|
}
|
|
|
|
func (e *Error) Error() string {
|
|
w := new(strings.Builder)
|
|
fmt.Fprintf(w, "Error in S%d: %s, %s", e.StackTop, token.TokMap.TokenString(e.ErrorToken), e.ErrorToken.Pos.String())
|
|
if e.Err != nil {
|
|
fmt.Fprintf(w, ": %+v", e.Err)
|
|
} else {
|
|
fmt.Fprintf(w, ", expected one of: ")
|
|
for _, expected := range e.ExpectedTokens {
|
|
fmt.Fprintf(w, "%s ", expected)
|
|
}
|
|
}
|
|
return w.String()
|
|
}
|