public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Petteri Räty" <betelgeuse@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/libbash:master commit in: bashast/, bashast/gunit/
Date: Thu,  4 Aug 2011 13:53:40 +0000 (UTC)	[thread overview]
Message-ID: <7c27bffcc90d0c6a5dccd1dbb4bf0db9c4ee6104.betelgeuse@gentoo> (raw)

commit:     7c27bffcc90d0c6a5dccd1dbb4bf0db9c4ee6104
Author:     Mu Qiao <qiaomuf <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 21 13:57:02 2011 +0000
Commit:     Petteri Räty <betelgeuse <AT> gentoo <DOT> org>
CommitDate: Tue Aug  2 07:46:29 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/libbash.git;a=commit;h=7c27bffc

Parser: remove tokens for += and -=

This makes ${a:-=} and ${a:+=} work properly.

---
 bashast/bashast.g              |   18 +++++++++---------
 bashast/gunit/arith_main.gunit |    4 ++--
 bashast/gunit/array.gunit      |    4 ++--
 bashast/gunit/param_main.gunit |    3 +++
 4 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/bashast/bashast.g b/bashast/bashast.g
index b4804fa..0a9557e 100644
--- a/bashast/bashast.g
+++ b/bashast/bashast.g
@@ -111,6 +111,8 @@ tokens{
 
 	PLUS_SIGN;
 	MINUS_SIGN;
+	PLUS_ASSIGN;
+	MINUS_ASSIGN;
 
 	NOT_EQUALS;
 	EQUALS_TO;
@@ -311,7 +313,7 @@ command_atom
 	:	(FOR|SELECT|IF|WHILE|UNTIL|CASE|LPAREN|LBRACE|LLPAREN|LSQUARE|TEST_EXPR) => compound_command
 	|	FUNCTION BLANK string_expr_no_reserved_word ((BLANK? parens wspace?)|wspace) compound_command
 			-> ^(FUNCTION string_expr_no_reserved_word compound_command)
-	|	(name (LSQUARE|EQUALS|PLUS_ASSIGN)|LOCAL|EXPORT) => variable_definitions
+	|	(name (LSQUARE|EQUALS|PLUS EQUALS)|LOCAL|EXPORT) => variable_definitions
 			(
 				(BLANK bash_command) => BLANK bash_command -> bash_command variable_definitions
 				|	-> ^(VARIABLE_DEFINITIONS variable_definitions)
@@ -351,7 +353,7 @@ command_atom
 
 variable_definitions
 	:	(
-			variable_definition_atom ((BLANK name (LSQUARE|EQUALS|PLUS_ASSIGN)) => BLANK! variable_definition_atom)*
+			variable_definition_atom ((BLANK name (LSQUARE|EQUALS|PLUS EQUALS)) => BLANK! variable_definition_atom)*
 			|	(LOCAL) => LOCAL BLANK! local_item ((BLANK name) => BLANK! local_item)*
 			|	(EXPORT) => EXPORT! ((BLANK name) => BLANK! export_item)+
 		);
@@ -360,8 +362,8 @@ variable_definition_atom
 	:	name LSQUARE BLANK? explicit_arithmetic BLANK? RSQUARE EQUALS string_expr?
 			-> ^(EQUALS ^(name explicit_arithmetic) string_expr?)
 	|	name EQUALS value? -> ^(EQUALS name value?)
-	|	name PLUS_ASSIGN array_value -> ^(PLUS_ASSIGN name array_value)
-	|	name PLUS_ASSIGN string_expr_part?
+	|	name PLUS EQUALS array_value -> ^(PLUS_ASSIGN name array_value)
+	|	name PLUS EQUALS string_expr_part?
 			-> ^(EQUALS name ^(STRING ^(VAR_REF name) string_expr_part?));
 value
 	:	string_expr
@@ -658,7 +660,7 @@ string_part
 ns_string_part
 	:	num|name|escaped_character
 	|OTHER|EQUALS|PCT|PCTPCT|PLUS|MINUS|DOT|DOTDOT|COLON|TEST_EXPR
-	|TILDE|MUL_ASSIGN|DIVIDE_ASSIGN|MOD_ASSIGN|PLUS_ASSIGN|MINUS_ASSIGN
+	|TILDE|MUL_ASSIGN|DIVIDE_ASSIGN|MOD_ASSIGN
 	|LSHIFT_ASSIGN|RSHIFT_ASSIGN|AND_ASSIGN|XOR_ASSIGN|LSQUARE|RSQUARE
 	|OR_ASSIGN|CARET|POUND|POUNDPOUND|COMMA|EXPORT|LOCAL|AT;
 
@@ -878,8 +880,8 @@ arithmetic_assignment_operator
 	|	MUL_ASSIGN
 	|	DIVIDE_ASSIGN
 	|	MOD_ASSIGN
-	|	PLUS_ASSIGN
-	|	MINUS_ASSIGN
+	|	PLUS EQUALS -> PLUS_ASSIGN
+	|	MINUS EQUALS -> MINUS_ASSIGN
 	|	LSHIFT_ASSIGN
 	|	RSHIFT_ASSIGN
 	|	AND_ASSIGN
@@ -993,8 +995,6 @@ RSHIFT	:	'>>';
 MUL_ASSIGN	:	'*=';
 DIVIDE_ASSIGN	:	'/=';
 MOD_ASSIGN	:	'%=';
-PLUS_ASSIGN	:	'+=';
-MINUS_ASSIGN	:	'-=';
 LSHIFT_ASSIGN	:	'<<=';
 RSHIFT_ASSIGN	:	'>>=';
 AND_ASSIGN	:	'&=';

diff --git a/bashast/gunit/arith_main.gunit b/bashast/gunit/arith_main.gunit
index 5249b5a..c32ff21 100644
--- a/bashast/gunit/arith_main.gunit
+++ b/bashast/gunit/arith_main.gunit
@@ -111,8 +111,8 @@ arithmetics_test:
 "var *= 5" -> (*= var 5)
 "var /= 5" -> (/= var 5)
 "var %= 5" -> (%= var 5)
-"asdf += 5" -> (+= asdf 5)
-"var -= 5" -> (-= var 5)
+"asdf += 5" -> (PLUS_ASSIGN asdf 5)
+"var -= 5" -> (MINUS_ASSIGN var 5)
 "var <<= 5" -> (<<= var 5)
 "var >>= 5" -> (>>= var 5)
 "var &= 5" -> (&= var 5)

diff --git a/bashast/gunit/array.gunit b/bashast/gunit/array.gunit
index b3bdf3b..c304e7c 100644
--- a/bashast/gunit/array.gunit
+++ b/bashast/gunit/array.gunit
@@ -28,8 +28,8 @@ variable_definition_atom:
 		${VAR}
 )" -> (= asdf (ARRAY (STRING - - disable - dependency - tracking) (STRING (VAR_REF VAR))))
 "asdf=()" -> (= asdf ARRAY)
-"asdf+=()" -> (+= asdf ARRAY)
-"asdf+=(a)" -> (+= asdf (ARRAY (STRING a)))
+"asdf+=()" -> (PLUS_ASSIGN asdf ARRAY)
+"asdf+=(a)" -> (PLUS_ASSIGN asdf (ARRAY (STRING a)))
 
 variable_reference:
 "$asdf" -> (VAR_REF asdf)

diff --git a/bashast/gunit/param_main.gunit b/bashast/gunit/param_main.gunit
index 306d3c6..0a56a57 100644
--- a/bashast/gunit/param_main.gunit
+++ b/bashast/gunit/param_main.gunit
@@ -22,6 +22,9 @@ variable_reference:
 "$asdf" -> (VAR_REF asdf)
 "${asdf}" -> (VAR_REF asdf)
 "${asdf:-foo}" -> (VAR_REF (USE_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING foo)))
+"${asdf:-=}" -> (VAR_REF (USE_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING =)))
+"${asdf:+=}" -> (VAR_REF (USE_ALTERNATE_WHEN_UNSET_OR_NULL asdf (STRING =)))
+"${asdf:==}" -> (VAR_REF (ASSIGN_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING =)))
 "${asdf:-public_html}" -> (VAR_REF (USE_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING public_html)))
 "${asdf='foo'}" -> (VAR_REF (ASSIGN_DEFAULT_WHEN_UNSET asdf (STRING 'foo')))
 "${asdf:=}" -> (VAR_REF (ASSIGN_DEFAULT_WHEN_UNSET_OR_NULL asdf (STRING EMPTY_EXPANSION_VALUE)))



             reply	other threads:[~2011-08-04 13:56 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-04 13:53 Petteri Räty [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-08-19 14:35 [gentoo-commits] proj/libbash:master commit in: bashast/, bashast/gunit/ Petteri Räty
2012-06-03  9:08 Petteri Räty
2012-06-03  9:08 Petteri Räty
2012-06-03  9:08 Petteri Räty
2012-06-03  9:08 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-08-04 13:53 Petteri Räty
2011-07-20 13:08 Petteri Räty
2011-07-08 14:12 Petteri Räty
2011-06-21 13:26 Petteri Räty
2011-06-21 13:20 Petteri Räty
2011-06-21 13:20 Petteri Räty
2011-06-19 19:15 Petteri Räty
2011-06-15 21:18 Petteri Räty
2011-06-14  8:28 Petteri Räty
2011-06-14  8:28 Petteri Räty
2011-06-11  8:24 Petteri Räty
2011-06-11  8:24 Petteri Räty
2011-06-09 13:41 Petteri Räty
2011-06-09 13:41 Petteri Räty
2011-06-09  8:15 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-06-01 12:03 Petteri Räty
2011-05-23 14:34 Petteri Räty
2011-05-22 21:00 Petteri Räty
2011-05-11  7:19 Petteri Räty
2011-05-11  7:19 Petteri Räty
2011-05-11  7:19 Petteri Räty
2011-05-07 12:25 Petteri Räty
2011-04-27 15:11 Petteri Räty
2011-04-20 11:26 Petteri Räty
2011-04-20 11:26 Petteri Räty
2011-04-20 11:26 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-17 10:58 Petteri Räty
2011-04-14  4:50 Petteri Räty
2011-04-14  4:50 Petteri Räty
2011-04-14  4:50 Petteri Räty
2011-04-12  7:19 Petteri Räty
2011-04-12  7:19 Petteri Räty
2011-04-12  7:19 Petteri Räty
2011-04-12  7:19 Petteri Räty
2011-04-11  6:50 Petteri Räty
2011-04-11  6:50 Petteri Räty
2011-04-11  6:50 Petteri Räty
2011-04-11  6:50 Petteri Räty
2011-04-11  5:21 Petteri Räty
2011-04-11  5:21 Petteri Räty
2011-04-11  5:21 Petteri Räty
2011-04-11  5:21 Petteri Räty
2011-04-09  6:27 Petteri Räty
2011-04-09  6:27 Petteri Räty
2011-04-09  6:27 Petteri Räty
2011-04-09  6:27 Petteri Räty
2011-04-08 14:26 Petteri Räty
2011-04-07 16:45 Petteri Räty
2011-04-07  7:48 Petteri Räty
2011-04-06  7:43 Petteri Räty
2011-03-30 12:48 Petteri Räty

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7c27bffcc90d0c6a5dccd1dbb4bf0db9c4ee6104.betelgeuse@gentoo \
    --to=betelgeuse@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox