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 ) id 1QoyPq-0006ey-AV for garchives@archives.gentoo.org; Thu, 04 Aug 2011 13:56:50 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4B03421C1E6; Thu, 4 Aug 2011 13:53:43 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 0F5DA21C1E6 for ; Thu, 4 Aug 2011 13:53:42 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A980F1B403B for ; Thu, 4 Aug 2011 13:53:42 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 10B718004F for ; Thu, 4 Aug 2011 13:53:42 +0000 (UTC) From: "Petteri Räty" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Petteri Räty" Message-ID: <49d89ad38496785260af3e27a7d984550b8348c5.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/arith_main.gunit bashast/gunit/param_main.gunit X-VCS-Directories: bashast/ bashast/gunit/ X-VCS-Committer: betelgeuse X-VCS-Committer-Name: Petteri Räty X-VCS-Revision: 49d89ad38496785260af3e27a7d984550b8348c5 Date: Thu, 4 Aug 2011 13:53:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: 243c9f812abc6cb52adae260e4638e57 commit: 49d89ad38496785260af3e27a7d984550b8348c5 Author: Mu Qiao gentoo org> AuthorDate: Fri Jul 22 08:33:30 2011 +0000 Commit: Petteri R=C3=A4ty gentoo org> CommitDate: Tue Aug 2 07:46:29 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/libbash.git;a= =3Dcommit;h=3D49d89ad3 Parser: remove tokens for assignment These tokens would prevent the parser doing parameter expansions. Now this is fixed. --- bashast/bashast.g | 36 +++++++++++++++++-----------------= -- bashast/gunit/arith_main.gunit | 20 ++++++++++---------- bashast/gunit/param_main.gunit | 2 ++ 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/bashast/bashast.g b/bashast/bashast.g index c4ab527..7351a56 100644 --- a/bashast/bashast.g +++ b/bashast/bashast.g @@ -113,6 +113,14 @@ tokens{ MINUS_SIGN; PLUS_ASSIGN; MINUS_ASSIGN; + DIVIDE_ASSIGN; + MUL_ASSIGN; + MOD_ASSIGN; + LSHIFT_ASSIGN; + RSHIFT_ASSIGN; + AND_ASSIGN; + XOR_ASSIGN; + OR_ASSIGN; =20 NOT_EQUALS; EQUALS_TO; @@ -676,9 +684,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 - |LSHIFT_ASSIGN|RSHIFT_ASSIGN|AND_ASSIGN|XOR_ASSIGN|LSQUARE|RSQUARE - |OR_ASSIGN|CARET|POUND|COMMA|EXPORT|LOCAL|AT + |TILDE|LSQUARE|RSQUARE|CARET|POUND|COMMA|EXPORT|LOCAL|AT // The following is for filename expansion |TIMES|QMARK; =20 @@ -895,16 +901,16 @@ arithmetic =20 arithmetic_assignment_operator : {LA(1) =3D=3D EQUALS && LA(2) !=3D EQUALS}? =3D> EQUALS - | MUL_ASSIGN - | DIVIDE_ASSIGN - | MOD_ASSIGN + | TIMES EQUALS -> MUL_ASSIGN + | SLASH EQUALS -> DIVIDE_ASSIGN + | PCT EQUALS -> MOD_ASSIGN | PLUS EQUALS -> PLUS_ASSIGN | MINUS EQUALS -> MINUS_ASSIGN - | LSHIFT_ASSIGN - | RSHIFT_ASSIGN - | AND_ASSIGN - | XOR_ASSIGN - | OR_ASSIGN; + | LSHIFT EQUALS -> LSHIFT_ASSIGN + | RSHIFT EQUALS -> RSHIFT_ASSIGN + | AMP EQUALS -> AND_ASSIGN + | CARET EQUALS -> XOR_ASSIGN + | PIPE EQUALS -> OR_ASSIGN; =20 arithmetic_variable_reference : variable_reference -> ^(VAR_REF variable_reference); @@ -1010,14 +1016,6 @@ LESS_THAN : '<'; GREATER_THAN : '>'; LSHIFT : '<<'; RSHIFT : '>>'; -MUL_ASSIGN : '*=3D'; -DIVIDE_ASSIGN : '/=3D'; -MOD_ASSIGN : '%=3D'; -LSHIFT_ASSIGN : '<<=3D'; -RSHIFT_ASSIGN : '>>=3D'; -AND_ASSIGN : '&=3D'; -XOR_ASSIGN : '^=3D'; -OR_ASSIGN : '|=3D'; =20 SEMIC : ';'; DOUBLE_SEMIC : ';;'; diff --git a/bashast/gunit/arith_main.gunit b/bashast/gunit/arith_main.gu= nit index c32ff21..7620fd7 100644 --- a/bashast/gunit/arith_main.gunit +++ b/bashast/gunit/arith_main.gunit @@ -106,18 +106,18 @@ arithmetics_test: "foo=3D5+3" -> (=3D foo (+ 5 3)) "foo[5]=3D5+3" -> (=3D (foo 5) (+ 5 3)) "${foo[5]}=3D3" -> (=3D (VAR_REF (VAR_REF (foo 5))) 3) -"${foo[5]}*=3D3" -> (*=3D (VAR_REF (VAR_REF (foo 5))) 3) -"${foo[5]}^=3D3" -> (^=3D (VAR_REF (VAR_REF (foo 5))) 3) -"var *=3D 5" -> (*=3D var 5) -"var /=3D 5" -> (/=3D var 5) -"var %=3D 5" -> (%=3D var 5) +"${foo[5]}*=3D3" -> (MUL_ASSIGN (VAR_REF (VAR_REF (foo 5))) 3) +"${foo[5]}^=3D3" -> (XOR_ASSIGN (VAR_REF (VAR_REF (foo 5))) 3) +"var *=3D 5" -> (MUL_ASSIGN var 5) +"var /=3D 5" -> (DIVIDE_ASSIGN var 5) +"var %=3D 5" -> (MOD_ASSIGN var 5) "asdf +=3D 5" -> (PLUS_ASSIGN asdf 5) "var -=3D 5" -> (MINUS_ASSIGN var 5) -"var <<=3D 5" -> (<<=3D var 5) -"var >>=3D 5" -> (>>=3D var 5) -"var &=3D 5" -> (&=3D var 5) -"var ^=3D 5" -> (^=3D var 5) -"var |=3D 5" -> (|=3D var 5) +"var <<=3D 5" -> (LSHIFT_ASSIGN var 5) +"var >>=3D 5" -> (RSHIFT_ASSIGN var 5) +"var &=3D 5" -> (AND_ASSIGN var 5) +"var ^=3D 5" -> (XOR_ASSIGN var 5) +"var |=3D 5" -> (OR_ASSIGN var 5) "3=3D7" FAIL =20 "13"->"13" diff --git a/bashast/gunit/param_main.gunit b/bashast/gunit/param_main.gu= nit index 27fc273..e73caf3 100644 --- a/bashast/gunit/param_main.gunit +++ b/bashast/gunit/param_main.gunit @@ -83,6 +83,8 @@ variable_reference: "${#*}" -> (VAR_REF (# *)) "${##}" -> (VAR_REF (# #)) "${#$}" -> (VAR_REF (# $)) +"${a/=3D}" -> (VAR_REF (REPLACE_FIRST a (STRING =3D))) +"${a%=3D}" -> (VAR_REF (LAZY_REMOVE_AT_END a (STRING =3D))) =20 variable_definition_atom: "MY_PN=3D${PN/asterisk-}" -> (=3D MY_PN (STRING (VAR_REF (REPLACE_FIRST = PN (STRING asterisk -)))))