Compare commits

...

2 Commits

Author SHA1 Message Date
1a13c79ee4 Fix go mod import path 2023-10-28 09:53:37 +02:00
da5d171479 Fix lint errors 2023-10-27 18:57:44 +02:00
10 changed files with 23 additions and 20 deletions

View File

@ -5,8 +5,8 @@ import (
"fmt" "fmt"
"os" "os"
"github.com/mediocregopher/ginger/gg" "code.betamike.com/mediocregopher/ginger/gg"
"github.com/mediocregopher/ginger/vm" "code.betamike.com/mediocregopher/ginger/vm"
) )
func main() { func main() {

View File

@ -7,8 +7,8 @@ import (
"strconv" "strconv"
"unicode" "unicode"
. "github.com/mediocregopher/ginger/gg/grammar" . "code.betamike.com/mediocregopher/ginger/gg/grammar"
"github.com/mediocregopher/ginger/graph" "code.betamike.com/mediocregopher/ginger/graph"
"golang.org/x/exp/slices" "golang.org/x/exp/slices"
) )
@ -53,9 +53,7 @@ var (
Rune('-'), Rune('-'),
positiveNumber, positiveNumber,
func(neg Located[rune], posNum Located[string]) Located[string] { func(neg Located[rune], posNum Located[string]) Located[string] {
return Located[string]{ return Locate(neg.Location, string(neg.Value)+posNum.Value)
neg.Location, string(neg.Value) + posNum.Value,
}
}, },
) )
@ -68,7 +66,7 @@ var (
panic(fmt.Errorf("parsing %q as int: %w", str, err)) panic(fmt.Errorf("parsing %q as int: %w", str, err))
} }
return Located[Value]{str.Location, Number(i)} return Locate(str.Location, Number(i))
}, },
) )
) )
@ -93,7 +91,7 @@ var (
for _, r := range tail { for _, r := range tail {
name = append(name, r.Value) name = append(name, r.Value)
} }
return Located[Value]{head.Location, Name(string(name))} return Locate(head.Location, Name(string(name)))
}, },
) )
) )
@ -228,7 +226,7 @@ var graphSym, value = func() (
gs.g = new(Graph) gs.g = new(Graph)
} }
return Located[Value]{r.Location, Value{Graph: gs.g}} return Locate(r.Location, Value{Graph: gs.g})
}, },
) )

View File

@ -5,8 +5,8 @@ import (
"strconv" "strconv"
"testing" "testing"
. "github.com/mediocregopher/ginger/gg/grammar" . "code.betamike.com/mediocregopher/ginger/gg/grammar"
"github.com/mediocregopher/ginger/graph" "code.betamike.com/mediocregopher/ginger/graph"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )

View File

@ -4,7 +4,7 @@ package gg
import ( import (
"fmt" "fmt"
"github.com/mediocregopher/ginger/graph" "code.betamike.com/mediocregopher/ginger/graph"
) )
// Type aliases for convenience // Type aliases for convenience

View File

@ -18,6 +18,11 @@ type Located[T any] struct {
Value T Value T
} }
// Locate returns a Located instance combining the given values.
func Locate[T any](l Location, v T) Located[T] {
return Located[T]{l, v}
}
// LocatedError is an error related to a specific point within a stream of // LocatedError is an error related to a specific point within a stream of
// runes. // runes.
type LocatedError Located[error] type LocatedError Located[error]

2
go.mod
View File

@ -1,4 +1,4 @@
module github.com/mediocregopher/ginger module code.betamike.com/mediocregopher/ginger
go 1.18 go 1.18

View File

@ -3,8 +3,8 @@ package vm
import ( import (
"fmt" "fmt"
"github.com/mediocregopher/ginger/gg" "code.betamike.com/mediocregopher/ginger/gg"
"github.com/mediocregopher/ginger/graph" "code.betamike.com/mediocregopher/ginger/graph"
) )
// Function is an entity which accepts an argument Value and performs some // Function is an entity which accepts an argument Value and performs some

View File

@ -3,7 +3,7 @@ package vm
import ( import (
"fmt" "fmt"
"github.com/mediocregopher/ginger/gg" "code.betamike.com/mediocregopher/ginger/gg"
) )
func globalFn(fn func(Value) (Value, error)) Value { func globalFn(fn func(Value) (Value, error)) Value {

View File

@ -7,8 +7,8 @@ import (
"io" "io"
"strings" "strings"
"github.com/mediocregopher/ginger/gg" "code.betamike.com/mediocregopher/ginger/gg"
"github.com/mediocregopher/ginger/graph" "code.betamike.com/mediocregopher/ginger/graph"
) )
// ZeroValue is a Value with no fields set. It is equivalent to the 0-tuple. // ZeroValue is a Value with no fields set. It is equivalent to the 0-tuple.

View File

@ -4,7 +4,7 @@ import (
"bytes" "bytes"
"testing" "testing"
"github.com/mediocregopher/ginger/gg" "code.betamike.com/mediocregopher/ginger/gg"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )