diff options
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() |