summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-01-24 09:18:04 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-01-24 09:18:04 +0000
commitd35979cdfe6192450503da23e6fc77218d09e829 (patch)
treed195db6e4d7a974ef6bde185a36db6fe37092dd9
parent69a7d012c406fd47c2416a87da33c7e6b7df81df (diff)
* parse.y: tMINUS should have lower precedence than tPOW.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--parse.y4
-rw-r--r--regex.c5
3 files changed, 8 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 13ba7c7766..1068adbb42 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Jan 24 18:15:33 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * parse.y: tMINUS should have lower precedence than tPOW.
+
Fri Jan 24 05:12:55 2003 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): deal
diff --git a/parse.y b/parse.y
index 3ad879db1f..3adbecf502 100644
--- a/parse.y
+++ b/parse.y
@@ -307,9 +307,9 @@ static void top_local_setup();
%left tLSHFT tRSHFT
%left '+' '-'
%left '*' '/' '%'
-%right tUMINUS_NUM
+%right tUMINUS_NUM tUMINUS
%right tPOW
-%right '!' '~' tUPLUS tUMINUS
+%right '!' '~' tUPLUS
%token tLAST_TOKEN
diff --git a/regex.c b/regex.c
index 53eb9b469b..9ea73dac4c 100644
--- a/regex.c
+++ b/regex.c
@@ -1447,8 +1447,7 @@ re_compile_pattern(pattern, size, bufp)
int size;
unsigned last = (unsigned)-1;
- if ((size = EXTRACT_UNSIGNED(&b[(1 << BYTEWIDTH) / BYTEWIDTH]))
- || current_mbctype) {
+ if ((size = EXTRACT_UNSIGNED(&b[(1 << BYTEWIDTH) / BYTEWIDTH])) || current_mbctype) {
/* Ensure the space is enough to hold another interval
of multi-byte chars in charset(_not)?. */
size = (1 << BYTEWIDTH) / BYTEWIDTH + 2 + size*8 + 8;
@@ -1687,7 +1686,7 @@ re_compile_pattern(pattern, size, bufp)
}
else if (had_mbchar == 0 && (!current_mbctype || !had_num_literal)) {
SET_LIST_BIT(c);
- had_num_literal = 0;
+ had_num_literal = 0;
}
else
set_list_bits(c, c, b);