several changes:
1. moved scan/symbol.go to new package sym and adapted all files that reference Symbol type and its values. 2. new type interval defined by begin, end and step values. 3. replaced operator-range.go with operator-interval.go. 4. replaced range operator begin:end with begin..end..step. 5. new implementation of sub-collection extraction based on new interval literal.
This commit is contained in:
@@ -4,17 +4,19 @@
|
||||
// term-constructor-registry.go
|
||||
package scan
|
||||
|
||||
import "git.portale-stac.it/go-pkg/expr/sym"
|
||||
|
||||
const initialRegistryCapacity = 10
|
||||
|
||||
type termContructor func(tk *Token) *Term
|
||||
|
||||
var constructorRegistry map[Symbol]termContructor = nil
|
||||
var constructorRegistry map[sym.Symbol]termContructor = nil
|
||||
|
||||
func RegisterTermConstructor(sym Symbol, constructor termContructor) {
|
||||
func RegisterTermConstructor(symmbol sym.Symbol, constructor termContructor) {
|
||||
if constructorRegistry == nil {
|
||||
constructorRegistry = make(map[Symbol]termContructor, initialRegistryCapacity)
|
||||
constructorRegistry = make(map[sym.Symbol]termContructor, initialRegistryCapacity)
|
||||
}
|
||||
constructorRegistry[sym] = constructor
|
||||
constructorRegistry[symmbol] = constructor
|
||||
}
|
||||
|
||||
func NewTerm(tk *Token) (inst *Term) {
|
||||
|
||||
Reference in New Issue
Block a user