From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-commits+bounces-333917-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1Q7jxk-0002g7-5B
	for garchives@archives.gentoo.org; Thu, 07 Apr 2011 07:49:08 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id B48431C032;
	Thu,  7 Apr 2011 07:48:59 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id 7AB031C032
	for <gentoo-commits@lists.gentoo.org>; Thu,  7 Apr 2011 07:48:59 +0000 (UTC)
Received: from pelican.gentoo.org (unknown [66.219.59.40])
	(using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id EB6C11B4120
	for <gentoo-commits@lists.gentoo.org>; Thu,  7 Apr 2011 07:48:58 +0000 (UTC)
Received: from localhost.localdomain (localhost [127.0.0.1])
	by pelican.gentoo.org (Postfix) with ESMTP id 1F15F80065
	for <gentoo-commits@lists.gentoo.org>; Thu,  7 Apr 2011 07:48:58 +0000 (UTC)
From: "Petteri Räty" <betelgeuse@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Petteri Räty" <betelgeuse@gentoo.org>
Message-ID: <3dfa3cb77a9770a2969e0e1178b1f39c7df56ba7.betelgeuse@gentoo>
Subject: [gentoo-commits] proj/libbash:master commit in: bashast/, bashast/gunit/
X-VCS-Repository: proj/libbash
X-VCS-Files: bashast/bashast.g bashast/gunit/param_main.gunit bashast/libbashWalker.g
X-VCS-Directories: bashast/ bashast/gunit/
X-VCS-Committer: betelgeuse
X-VCS-Committer-Name: Petteri Räty
X-VCS-Revision: 3dfa3cb77a9770a2969e0e1178b1f39c7df56ba7
Date: Thu,  7 Apr 2011 07:48:58 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: quoted-printable
X-Archives-Salt: 
X-Archives-Hash: 37f9ec2b4d3d152eadda5a7d8fffe51a

commit:     3dfa3cb77a9770a2969e0e1178b1f39c7df56ba7
Author:     Mu Qiao <qiaomuf <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  6 10:30:18 2011 +0000
Commit:     Petteri R=C3=A4ty <betelgeuse <AT> gentoo <DOT> org>
CommitDate: Thu Apr  7 03:22:49 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=3Dproj/libbash.git;a=
=3Dcommit;h=3D3dfa3cb7

Only allow number and name to appear in variable name

Previous grammar allows '@' and '*' to appear in variable name
which is not legal. These characters are used for special purpose.

---
 bashast/bashast.g              |    6 ++++--
 bashast/gunit/param_main.gunit |    2 ++
 bashast/libbashWalker.g        |    2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/bashast/bashast.g b/bashast/bashast.g
index 60ad096..01cc0df 100644
--- a/bashast/bashast.g
+++ b/bashast/bashast.g
@@ -269,9 +269,11 @@ var_exp	:	var_name (USE_DEFAULT|USE_ALTERNATE|DISPLA=
Y_ERROR|ASSIGN_DEFAULT)^ wor
 	|	var_name SLASH PCT ns_str SLASH? -> ^(REPLACE_LAST var_name ns_str)
 	|	var_name SLASH ns_str SLASH? -> ^(REPLACE_FIRST var_name ns_str)
 	|	arr_var_ref
-	|	var_name;
+	|	var_name
+	|	TIMES
+	|	AT;
 //Allowable variable names in the variable expansion
-var_name:	num|name|TIMES|AT;
+var_name:	num|name;
 //Referencing an array variable
 arr_var_ref
 	:	name^ LSQUARE! DIGIT+ RSQUARE!;

diff --git a/bashast/gunit/param_main.gunit b/bashast/gunit/param_main.gu=
nit
index a582179..eb49309 100644
--- a/bashast/gunit/param_main.gunit
+++ b/bashast/gunit/param_main.gunit
@@ -32,6 +32,8 @@ var_ref:
 "${!asdf[@]}" -> (VAR_REF (LIST_EXPAND asdf @))
 "${#foo}" -> (VAR_REF (# foo))
 "${foo#bar}" -> (VAR_REF (# foo (STRING bar)))
+"${fo*o#bar}" FAIL
+"${fo@o#bar}" FAIL
 "${foo##bar}" -> (VAR_REF (## foo (STRING bar)))
 "${foo%bar}" -> (VAR_REF (% foo (STRING bar)))
 "${foo%%bar}" -> (VAR_REF (%% foo (STRING bar)))

diff --git a/bashast/libbashWalker.g b/bashast/libbashWalker.g
index 52d0109..825987a 100644
--- a/bashast/libbashWalker.g
+++ b/bashast/libbashWalker.g
@@ -84,7 +84,7 @@ var_name returns[std::string libbash_value]
 @after {
 	$libbash_value =3D walker->get_string($var_name.start);
 }:
-	num|name|TIMES|AT;
+	num|name;
=20
 var_expansion returns[std::string libbash_value]:
 	^(USE_DEFAULT var_name libbash_word=3Dword) {