[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