[svn] r5833: nemerle/trunk: macros/io.n ncc/testsuite/positive/printf.n tools/msbuild-task/Nemerle.MSBuild...

nazgul svnadmin at nemerle.org
Wed Oct 19 22:38:34 CEST 2005


Log:
Handle non-variable char after $ in splice string

Author: nazgul
Date: Wed Oct 19 22:38:29 2005
New Revision: 5833

Modified:
   nemerle/trunk/macros/io.n
   nemerle/trunk/ncc/testsuite/positive/printf.n
   nemerle/trunk/tools/msbuild-task/Nemerle.MSBuild.targets

Modified: nemerle/trunk/macros/io.n
==============================================================================
--- nemerle/trunk/macros/io.n	(original)
+++ nemerle/trunk/macros/io.n	Wed Oct 19 22:38:29 2005
@@ -316,7 +316,7 @@
     }
 
 
-    /** we could extend it to $(..) expressions - in such a case:
+    /** for $(..) expressions:
         - first evaluate expressions
         - store intermediate results in variables
         - return list of evaluators and reference variables in reverse order
@@ -377,11 +377,18 @@
           else {
             def end = find_end_normal (idx + 1);
             def variable_name = str.Substring (idx + 1, end - idx - 1);
+            
+            if (variable_name == "") {
+              Message.Warning ("expected variable name or expression enclosed with (..) after $ in splice string");
+              loop (<[$("$" : string)]> :: res, idx + 1)
+            }
+            else {
             def expr =
               if (variable_name == "this") <[ this ]>
               else <[ $(variable_name : usesite) ]>;
             loop (expr :: res, end)
           }
+          }
         } else {
           def next_idx = str.IndexOf ('$', idx);
           def next_str =

Modified: nemerle/trunk/ncc/testsuite/positive/printf.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/printf.n	(original)
+++ nemerle/trunk/ncc/testsuite/positive/printf.n	Wed Oct 19 22:38:29 2005
@@ -115,6 +115,7 @@
     def quxx = 3;
     def mux' = 42;
     print ("$quxx' $(T().a()) $(mux')\n");
+    print ("wrong ${1} splicing\n"); // W: expected variable name or expression.* after
   }
 }
 
@@ -144,5 +145,6 @@
 dream 7
 bla 2 bal
 3' some T 42
+wrong ${1} splicing
 END-OUTPUT
 */

Modified: nemerle/trunk/tools/msbuild-task/Nemerle.MSBuild.targets
==============================================================================
--- nemerle/trunk/tools/msbuild-task/Nemerle.MSBuild.targets	(original)
+++ nemerle/trunk/tools/msbuild-task/Nemerle.MSBuild.targets	Wed Oct 19 22:38:29 2005
@@ -7,7 +7,7 @@
 
 
     <PropertyGroup>
-        <MSBuildAllProjects>$(MSBuildAllProjects);Nemerle.targets</MSBuildAllProjects>
+        <MSBuildAllProjects>$(MSBuildAllProjects);Nemerle.MSBuild.targets</MSBuildAllProjects>
         <DefaultLanguageSourceExtension>.n</DefaultLanguageSourceExtension>
         <Language>Nemerle</Language>
     </PropertyGroup>



More information about the svn mailing list