Oliver Deakin wrote:
Yes, that's right actually - Ive been looking at the grammar files but can't figure out the right place to make the change. Does anyone have a good enough knowledge of the javacc tool to figure out the correct change?

Regards,
Oliver

Nathan Beyer wrote:
Is this class generated code? Should the change be made to a BNF file instead?

Sent from my iPhone

On Jul 13, 2009, at 8:54 AM, odea...@apache.org wrote:

Author: odeakin
Date: Mon Jul 13 13:54:57 2009
New Revision: 793587

URL: http://svn.apache.org/viewvc?rev=793587&view=rev
Log:
Handle the z/OS NEL character correctly when parsing tokens.

Modified:
harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/FilterParserTokenManager.java harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/LdapUrlParserTokenManager.java

Modified: harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/FilterParserTokenManager.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/FilterParserTokenManager.java?rev=793587&r1=793586&r2=793587&view=diff ============================================================================== --- harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/FilterParserTokenManager.java (original) +++ harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/FilterParserTokenManager.java Mon Jul 13 13:54:57 2009
@@ -63,6 +63,7 @@
   switch(curChar)
   {
      case 10:
+      case 133: // NEL character for z/OS new lines
         return jjStopAtPos(0, 24);
      case 33:
         return jjStopAtPos(0, 10);

Modified: harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/LdapUrlParserTokenManager.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/LdapUrlParserTokenManager.java?rev=793587&r1=793586&r2=793587&view=diff ============================================================================== --- harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/LdapUrlParserTokenManager.java (original) +++ harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/LdapUrlParserTokenManager.java Mon Jul 13 13:54:57 2009
@@ -61,6 +61,7 @@
   switch(curChar)
   {
      case 10:
+      case 133: // NEL character for z/OS new lines
         return jjStopAtPos(0, 17);
      case 33:
         return jjStopAtPos(0, 10);





[1] is a quick fix for this, I don't have z/OS machine, so can't test if it 
works.

Actually this part of code is only by method test(), a convenient way to verify whether parsers work correctly. It doesn't break parsing functions if removing test() method and "new lines" should be not a problem, but some test cases will be broken. I'll try to remove test() method and rewrite test cases depend on it.

[1]

Index: modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/filter.g
=====================================================================
--- 
modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/filter.g
+++ 
modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/filter.g
@@ -317,7 +317,7 @@ void test():
                 }
             }

-            parse() "\n" test() | LOOKAHEAD(2) "\n" | "\n" <EOF> | <EOF>
+ parse() ("\n" | "\u0085") test() | LOOKAHEAD(2) ("\n" | "\u0085") | ("\n" | "\u0085") <EOF> | <EOF>
         }
// FIXME: get string representation of AttributeValue, then use Rdn.unescapeValue(String) to get value
 String value():
Index: 
modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/url.g
=====================================================================
--- 
modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/url.g
+++ 
modules/jndi/src/main/java/org/apache/harmony/jndi/provider/ldap/parser/url.g
@@ -394,5 +394,5 @@ String oid():
 void test():
         {}
         {
-            parseURL() "\n" test() | LOOKAHEAD(2) "\n" | "\n" <EOF> | <EOF>
+ parseURL() ("\n" | "\u0085") test() | LOOKAHEAD(2) ("\n" | "\u0085") | ("\n" | "\u0085") <EOF> | <EOF>
         }


--
Best Regards,
Regis.

Reply via email to