aboutsummaryrefslogtreecommitdiff
path: root/expression.go
diff options
context:
space:
mode:
Diffstat (limited to 'expression.go')
-rw-r--r--expression.go33
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()