diff options
author | Himbeer <himbeer@disroot.org> | 2024-08-30 18:53:44 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-08-30 18:53:44 +0200 |
commit | fa461715a9a4fbca6bd012c0f2b8e35631ec12e8 (patch) | |
tree | 8982bb98b0737a8424cf9012ba9a6031f9754dd0 /expression.go | |
parent | 22786e52f6ed94424491660e33effd7173fd9279 (diff) |
Add support for local constant and variable declarations
Diffstat (limited to 'expression.go')
-rw-r--r-- | expression.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/expression.go b/expression.go index c62918c..7693f79 100644 --- a/expression.go +++ b/expression.go @@ -101,6 +101,39 @@ func (r *returnStmt) markStmt() {} func (r *returnStmt) line() int { return r.ln } +type declStmt interface { + statementExpr + markDecl() +} + +type constStmt struct { + name string + initial exprExpr + ln int +} + +func (c *constStmt) markExpr() {} + +func (c *constStmt) markStmt() {} + +func (c *constStmt) markDecl() {} + +func (c *constStmt) line() int { return c.ln } + +type mutStmt struct { + name string + initial exprExpr + ln int +} + +func (m *mutStmt) markExpr() {} + +func (m *mutStmt) markStmt() {} + +func (m *mutStmt) markDecl() {} + +func (m *mutStmt) line() int { return m.ln } + type exprExpr interface { expression markExprExpr() |