From 2d84662dfdeb0f9bdbfe15eae52d8eb6b23dfd99 Mon Sep 17 00:00:00 2001
From: "benjamin.franksen" <benjamin.franksen@helmholtz-berlin.de>
Date: Sat, 28 Sep 2013 18:45:00 +0000
Subject: [PATCH] snc: forbid initializing foreign vars at the syntax level

---
 src/snc/snl.lem | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/snc/snl.lem b/src/snc/snl.lem
index 679171fa..a6d2eb67 100644
--- a/src/snc/snl.lem
+++ b/src/snc/snl.lem
@@ -179,8 +179,6 @@ subscript(p) ::= LBRACKET INTCON(n) RBRACKET.	{ p = n; }
 
 declaration(p) ::= basetype(t) init_declarators(ds) SEMICOLON.
 						{ p = decl_add_base_type(ds, t); }
-declaration(p) ::= FOREIGN init_declarators(ds) SEMICOLON.
-						{ p = decl_add_base_type(ds, mk_no_type()); }
 
 init_declarators(p) ::= init_declarator(x).	{ p = x; }
 init_declarators(p) ::= init_declarators(xs) COMMA init_declarator(x).
@@ -199,6 +197,14 @@ direct_declarator(p) ::= LPAREN declarator(x) RPAREN.
 direct_declarator(p) ::= direct_declarator(x) subscript(s).
 						{ p = decl_postfix_array(x, s.str); }
 
+declaration(p) ::= FOREIGN declarators(ds) SEMICOLON.
+						{ p = decl_add_base_type(ds, mk_no_type()); }
+
+declarators(p) ::= declarator(x).		{ p = x; }
+declarators(p) ::= declarators(xs) COMMA declarator(x).
+						{ p = link_expr(xs, x); }
+
+
 // Initializer
 // Note: comma operator not allowed in 'expr'.
 init_expr(p) ::= LPAREN(tc) type_expr(c) RPAREN LBRACE(tx) init_exprs(x) RBRACE.
-- 
GitLab