From fdfcd6d8d0fe79138a2e5bf66ae7c476c8db9c75 Mon Sep 17 00:00:00 2001 From: Himbeer Date: Thu, 5 Sep 2024 13:26:48 +0200 Subject: Switch to signature-based extern function declarations --- expression.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'expression.go') diff --git a/expression.go b/expression.go index 6ab30c2..76cb16b 100644 --- a/expression.go +++ b/expression.go @@ -41,7 +41,6 @@ func (l linkage) String() string { type functionExpr struct { link linkage - external bool name string params *paramExpr returnType string @@ -77,6 +76,27 @@ func (p *paramExpr) String() string { return s } +type externFuncExpr struct { + name string + params *signatureExpr + returnType string + ln int +} + +func (e *externFuncExpr) markExpr() {} + +func (e *externFuncExpr) line() int { return e.ln } + +type signatureExpr struct { + typ string + next *signatureExpr + ln int +} + +func (s *signatureExpr) markExpr() {} + +func (s *signatureExpr) line() int { return s.ln } + type blockExpr struct { stmts []statementExpr ln int -- cgit v1.2.3