[svn] r6053: nemerle/trunk: boot/Nemerle.Compiler.dll boot/Nemerle.Macros.dll boot/Nemerle.dll boot/ncc.ex...

malekith svnadmin at nemerle.org
Sat Jan 7 17:45:32 CET 2006


Log:
Make list ranges use '..' instead of '...'. Make 1..2 work (without spaces).

Author: malekith
Date: Sat Jan  7 17:44:50 2006
New Revision: 6053

Modified:
   nemerle/trunk/boot/Nemerle.Compiler.dll
   nemerle/trunk/boot/Nemerle.Macros.dll
   nemerle/trunk/boot/Nemerle.dll
   nemerle/trunk/boot/ncc.exe
   nemerle/trunk/macros/Util.n
   nemerle/trunk/macros/core.n
   nemerle/trunk/ncc/parsing/Lexer.n
   nemerle/trunk/ncc/parsing/MainParser.n
   nemerle/trunk/ncc/testsuite/benchmarks/list-compr.n
   nemerle/trunk/ncc/testsuite/positive/list-compr.n

Modified: nemerle/trunk/boot/Nemerle.Compiler.dll
==============================================================================
Binary files. No diff available.

Modified: nemerle/trunk/boot/Nemerle.Macros.dll
==============================================================================
Binary files. No diff available.

Modified: nemerle/trunk/boot/Nemerle.dll
==============================================================================
Binary files. No diff available.

Modified: nemerle/trunk/boot/ncc.exe
==============================================================================
Binary files. No diff available.

Modified: nemerle/trunk/macros/Util.n
==============================================================================
--- nemerle/trunk/macros/Util.n	(original)
+++ nemerle/trunk/macros/Util.n	Sat Jan  7 17:44:50 2006
@@ -328,10 +328,10 @@
       exprs.Tail.Rev ().FoldLeft (adder,
         fun (e, acc) {
           match (e) {
-            | <[ $e1 in [$first, $second ... $last] ]> =>
+            | <[ $e1 in [$first, $second .. $last] ]> =>
               ListComprehensionHelper.ExpandRange (first, Some (second), last, e1, acc)
                
-            | <[ $e1 in [$first ... $last] ]> =>
+            | <[ $e1 in [$first .. $last] ]> =>
               ListComprehensionHelper.ExpandRange (first, None (), last, e1, acc)
                
             | <[ $e1 in $e2 ]> =>

Modified: nemerle/trunk/macros/core.n
==============================================================================
--- nemerle/trunk/macros/core.n	(original)
+++ nemerle/trunk/macros/core.n	Sat Jan  7 17:44:50 2006
@@ -51,7 +51,7 @@
 [assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", ">>", false, 230, 231)]
 [assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", "::", false, 221, 220)]
 [assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", "in", false, 120, 121)]
-[assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", "...", false, 230, 231)]
+[assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", "..", false, 230, 231)]
 [assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", "as", false, 215, 301)]            
 [assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", "<", false, 210, 211)]
 [assembly: Nemerle.Internal.OperatorAttribute ("Nemerle.Core", ">", false, 210, 211)]
@@ -328,11 +328,11 @@
     mutable iter = null, collection = null;
     
     match (inexpr) {
-      | <[ $e1 in [$first, $second ... $last] ]> =>
+      | <[ $e1 in [$first, $second .. $last] ]> =>
         Nemerle.Imperative.Return (
           ListComprehensionHelper.ExpandRange (first, Some (second), last, e1, body))
            
-      | <[ $e1 in [$first ... $last] ]> =>
+      | <[ $e1 in [$first .. $last] ]> =>
         Nemerle.Imperative.Return (
           ListComprehensionHelper.ExpandRange (first, None (), last, e1, body))
             

Modified: nemerle/trunk/ncc/parsing/Lexer.n
==============================================================================
--- nemerle/trunk/ncc/parsing/Lexer.n	(original)
+++ nemerle/trunk/ncc/parsing/Lexer.n	Sat Jan  7 17:44:50 2006
@@ -918,9 +918,13 @@
       | '\'' => get_id ('\'')
 
       | '.' => 
-        if (Char.IsDigit (peek_or_white ()))
+        def next = peek_or_white ();
+        if (Char.IsDigit (next))
           get_number (ch)
-        else
+        else if (next == '.') {
+          _ = read ();
+          Token.Operator ("..")
+        } else
           Token.Operator (".")
 
       | '{' => Token.BeginBrace (generated = false)

Modified: nemerle/trunk/ncc/parsing/MainParser.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser.n	(original)
+++ nemerle/trunk/ncc/parsing/MainParser.n	Sat Jan  7 17:44:50 2006
@@ -1033,16 +1033,16 @@
     maybe_parse_ellipsis () : option [PExpr]
     {
       match (peek_token ()) {
-        | Token.LooseGroup (Token.Operator (".") as tok) =>
+        | Token.LooseGroup (Token.Operator ("..") as tok) =>
           shift ();
           push_stream (tok);
-          expect_operator ("..");
+          shift ();
           def spliced = parse_spliced_expr ();
           pop_stream ("ellipsis splicing");
           Some (PExpr.Ellipsis (tok.Location + spliced.Location, spliced))
           
-        | Token.Operator (".") as tok =>
-          expect_operator ("..");
+        | Token.Operator ("..") as tok =>
+          shift ();
           def spliced = parse_spliced_expr ();
           Some (PExpr.Ellipsis (tok.Location + spliced.Location, spliced))
           
@@ -1066,9 +1066,9 @@
         }
       }
       match (peek_token ()) {
-        | Token.Operator (".") as begin =>
+        | Token.Operator ("..") as begin =>
           mutable end = null;
-          repeat (4) end = get_token ();
+          repeat (3) end = get_token ();
           end.Next = null;
           [Token.SquareGroup (begin.Location, Token.LooseGroup (begin.Location, begin))]
 
@@ -1556,8 +1556,8 @@
       def loop () {
         if (_op_context == OpContext.Prefix)
           match (peek_token ()) {
-            | Token.Operator (".") =>
-              expect_operator ("..");
+            | Token.Operator ("..") =>
+              shift ();
               def expr = parse_spliced_expr ();
               _expr_stack = PExpr.Ellipsis (expr.Location, expr) :: _expr_stack;
               expect_empty ("ellipsis expression");
@@ -1610,13 +1610,6 @@
               | Token.Operator ("*") =>
                 NaryOperatorInfo (OperatorInfo.ProductInfo);
 
-              | Token.Operator (".") as op when
-                  op.Next is Token.Operator (".") &&
-                  op.Next.Next is Token.Operator (".") =>
-                shift ();
-                shift ();
-                env.FetchOperator ("...")
-
               | Token.Operator (str) =>
                 if (should_stop (stop))
                   null
@@ -1939,7 +1932,7 @@
                 | x => fatal_error (x, "expecting non-empty `(..)' after `match'");
               }
             match (get_token ()) {
-              | Token.BracesGroup (Token.LooseGroup (Token.Operator (".")) as group) =>
+              | Token.BracesGroup (Token.LooseGroup (Token.Operator ("..")) as group) =>
                 push_stream (group);
                 match (maybe_parse_ellipsis ()) {
                   | Some (e) =>

Modified: nemerle/trunk/ncc/testsuite/benchmarks/list-compr.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/benchmarks/list-compr.n	(original)
+++ nemerle/trunk/ncc/testsuite/benchmarks/list-compr.n	Sat Jan  7 17:44:50 2006
@@ -1,2 +1,2 @@
 repeat (500000)
-  _ = $[x | x in [1 ... 100]];
+  _ = $[x | x in [1..100]];

Modified: nemerle/trunk/ncc/testsuite/positive/list-compr.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/list-compr.n	(original)
+++ nemerle/trunk/ncc/testsuite/positive/list-compr.n	Sat Jan  7 17:44:50 2006
@@ -7,9 +7,9 @@
   $[m | a in System.AppDomain.CurrentDomain.GetAssemblies (),
         t in a.GetTypes (), m in t.GetMembers ()].ToArray ()
 
-WriteLine ($[ x | x in [1 ... 12] ])
-WriteLine ($[ x | x in [1, 3 ... 12] ])
-WriteLine ($[ x | x in [10, 9 ... 1] ])
+WriteLine ($[ x | x in [1 .. 12] ])
+WriteLine ($[ x | x in [1, 3..12] ])
+WriteLine ($[ x | x in [10, 9.. 1] ])
 
 
 def foo(k)
@@ -21,13 +21,13 @@
   k
   
 // test side effects ordering
-WriteLine ($[ x | x in [foo (1), foo(3) ... foo (5)] ])
+WriteLine ($[ x | x in [foo (1), foo(3) .. foo (5)] ])
 
-WriteLine ($[ (x,y) | x in [foo (1), foo (3) ... foo (7)],
-                      y in [bar (2), bar (4) ... bar (8)] ])
+WriteLine ($[ (x,y) | x in [foo (1), foo (3) .. foo (7)],
+                      y in [bar (2), bar (4) .. bar (8)] ])
 
-foreach (x in [1 ... 5]) WriteLine (x)
-foreach (x in [5, 4 ... 1]) WriteLine (x)
+foreach (x in [1 ..5]) WriteLine (x)
+foreach (x in [5, 4..1]) WriteLine (x)
 
 /*
 BEGIN-OUTPUT



More information about the svn mailing list