aboutsummaryrefslogtreecommitdiff
path: root/decl.go
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-09-06 13:19:22 +0200
committerHimbeer <himbeer@disroot.org>2024-09-06 13:56:07 +0200
commit959599b7bf803a91595375f650245609bf7a338f (patch)
tree47aafa8d49e00e45c0cb25255c8486eeec763692 /decl.go
parent05c620c4d637b73f6b267ed57d5750587ccfd7a3 (diff)
Add basic type system with only integers
This commit adds static typing with signed and unsigned integers of 8, 16, 32 and 64 bits.
Diffstat (limited to 'decl.go')
-rw-r--r--decl.go23
1 files changed, 20 insertions, 3 deletions
diff --git a/decl.go b/decl.go
index 67d641f..53c6c74 100644
--- a/decl.go
+++ b/decl.go
@@ -4,9 +4,26 @@
package main
-var funcs = map[string]struct{}{}
-var localConsts = map[string]map[string]string{}
-var localMuts = map[string]map[string]struct{}{}
+var funcs = map[string]*funcInfo{}
+var localConsts = map[string]map[string]*localConst{}
+var localMuts = map[string]map[string]*localMut{}
+
+type funcInfo struct {
+ params []paramInfo
+ returnType cerType
+}
+
+type paramInfo struct {
+ typ cerType
+}
+
+type localConst struct {
+ typ cerType
+}
+
+type localMut struct {
+ typ cerType
+}
func isDeclared(name string, toplevel bool) (ok bool, mutable bool) {
if toplevel {