summaryrefslogtreecommitdiff
path: root/comp
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2026-01-09 19:10:27 +0100
committerMarc Vertes <mvertes@free.fr>2026-01-09 19:10:27 +0100
commit7520aa4474ea30985cf26631c6bbdebf38484a0d (patch)
treee1e344c2fdc04affc0095eab26a39eef1fc3ba91 /comp
parent6ae0a2530c9a57fc093d2159591d9cae8140d641 (diff)
feat: initial support for maps
Diffstat (limited to 'comp')
-rw-r--r--comp/compiler.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/comp/compiler.go b/comp/compiler.go
index 5d55be4..47c4a88 100644
--- a/comp/compiler.go
+++ b/comp/compiler.go
@@ -188,6 +188,8 @@ func (c *Compiler) Generate(tokens parser.Tokens) (err error) {
if v := ks.Value.Value; v.CanInt() {
emit(t, vm.IndexSet)
}
+ case reflect.Map:
+ emit(t, vm.MapSet)
}
case symbol.Unset:
j := top().Type.FieldIndex(ks.Name)
@@ -260,7 +262,7 @@ func (c *Compiler) Generate(tokens parser.Tokens) (err error) {
if s.Type.Rtype.Kind() == reflect.Slice {
emit(t, vm.Fnew, s.Index, s.SliceLen)
} else {
- emit(t, vm.Fnew, s.Index)
+ emit(t, vm.Fnew, s.Index, 1)
}
} else {
emit(t, vm.Dup, s.Index)