summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2009-02-22 22:56:10 +0000
committerAdrian Thurston <thurston@complang.org>2009-02-22 22:56:10 +0000
commitbd0270a463dd608944405d7ecaacc6a236083817 (patch)
tree4534267286524d51521ceb65b723d48234bf538a
parent48df5c80840ff189c0e019376c74630284eb6f3c (diff)
downloadcolm-bd0270a463dd608944405d7ecaacc6a236083817.tar.gz
Flattened arg and specified precedence.
-rw-r--r--test/ruby/ruby.lm119
1 files changed, 49 insertions, 70 deletions
diff --git a/test/ruby/ruby.lm b/test/ruby/ruby.lm
index b9505515..ec35fae4 100644
--- a/test/ruby/ruby.lm
+++ b/test/ruby/ruby.lm
@@ -295,79 +295,58 @@ def opt_block_arg
def block_arg
[tAMPER arg_value]
+right '='
+left 'rescue'
+right '?', ':'
+nonassoc '..', '...'
+left '||'
+left '&&'
+nonassoc '<=>', '==', '===', '!=', '=~', '!~'
+left '>', '>=', '<', '<='
+left '|', '^'
+left '&'
+left '<<', '>>'
+left '+', '-'
+left '*', '/', '%'
+#right tUMINUS_NUM tUMINUS
+right tUMINUS
+right '**'
+right '!', '~', tUPLUS
+
def arg
- ['defined?' arg]
-| [arg_assign]
-
-def arg_assign
- [lhs '=' arg_assign]
-| [lhs '=' arg_assign 'rescue' arg]
-| [arg_sel]
-
-def arg_sel
- [arg_dot '?' arg_sel ':' arg_sel]
-| [arg_dot]
-
-def arg_dot
- [arg_logical '..' arg_dot]
-| [arg_logical '...' arg_dot]
-| [arg_logical]
-
-def arg_logical
- [arg_eq '&&' arg_logical]
-| [arg_eq '||' arg_logical]
-| [arg_eq]
-
-def arg_eq
- [arg_cmp '<=>' arg_eq]
-| [arg_cmp '==' arg_eq]
-| [arg_cmp '===' arg_eq]
-| [arg_cmp '!=' arg_eq]
-| [arg_cmp '=~' arg_eq]
-| [arg_cmp '!~' arg_eq]
-| [arg_cmp]
-
-def arg_cmp
- [arg_bitor '>=' arg_cmp]
-| [arg_bitor '<=' arg_cmp]
-| [arg_bitor '>' arg_cmp]
-| [arg_bitor '<' arg_cmp]
-| [arg_bitor]
-
-def arg_bitor
- [arg_bitand '|' arg_bitor]
-| [arg_bitand '^' arg_bitor]
-| [arg_bitand]
-
-def arg_bitand
- [arg_shift '&' arg_bitand]
-| [arg_shift]
-
-def arg_shift
- [arg_add '<<' arg_shift]
-| [arg_add '>>' arg_shift]
-| [arg_add]
-
-def arg_add
- [arg_mult '+' arg_add]
-| [arg_mult '-' arg_add]
-| [arg_mult]
-
-def arg_mult
- [arg_pow '*' arg_mult]
-| [arg_pow '/' arg_mult]
-| [arg_pow '%' arg_mult]
-| [arg_pow]
-
-def arg_pow
- [arg_unary '**' arg_pow]
-| [arg_unary]
-
-def arg_unary
- ['!' primary]
+ [lhs '=' arg]
+| [lhs '=' arg 'rescue' arg]
+| [arg '?' arg ':' arg]
+| [arg '..' arg]
+| [arg '...' arg]
+| [arg '||' arg]
+| [arg '&&' arg]
+| [arg '<=>' arg]
+| [arg '==' arg]
+| [arg '===' arg]
+| [arg '!=' arg]
+| [arg '=~' arg]
+| [arg '!~' arg]
+| [arg '>' arg]
+| [arg '>=' arg]
+| [arg '<' arg]
+| [arg '<=' arg]
+| [arg '|' arg]
+| [arg '^' arg]
+| [arg '&' arg]
+| [arg '<<' arg]
+| [arg '>>' arg]
+| [arg '+' arg]
+| [arg '-' arg]
+| [arg '*' arg]
+| [arg '/' arg]
+| [arg '%' arg]
+| [arg '**' arg]
+| ['!' primary]
| ['~' primary]
-| [tUPLUS primary]
| [tUMINUS primary]
+| [tUPLUS primary]
+| ['defined?' arg]
| [primary]
def primary_value