[jboss-svn-commits] JBL Code SVN: r8427 - labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Dec 19 19:33:08 EST 2006


Author: tirelli
Date: 2006-12-19 19:33:05 -0500 (Tue, 19 Dec 2006)
New Revision: 8427

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
Log:
Fixing new line problem in function

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2006-12-20 00:32:06 UTC (rev 8426)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g	2006-12-20 00:33:05 UTC (rev 8427)
@@ -382,12 +382,10 @@
 				)*
 			)?
 		')'
-		body=CURLY_CHUNK
+		body=curly_chunk
 		{
 			//strip out '{','}'
-			String bodys = body.getText();
-			bodys = bodys.substring(1,bodys.length()-1);
-			f.setText( bodys );
+			f.setText( body.substring( 1, body.length()-1 ) );
 
 			packageDescr.addFunction( f );
 		}
@@ -1101,6 +1099,45 @@
                 }
 	;
 
+curly_chunk returns [String text]
+        @init {
+           StringBuffer buf = null;
+           Integer channel = null;
+        }
+	:
+		loc=LEFT_CURLY 
+		{
+	            channel = ((SwitchingCommonTokenStream)input).getTokenTypeChannel( WS ); 
+		    ((SwitchingCommonTokenStream)input).setTokenTypeChannel( WS, Token.DEFAULT_CHANNEL );
+		    buf = new StringBuffer();
+		    
+		    buf.append( loc.getText() );
+		} 
+		( 
+			~(LEFT_CURLY|RIGHT_CURLY)
+			  {
+			    buf.append( input.LT(-1).getText() );
+			  }
+			|
+			chunk=curly_chunk
+			  {
+			    buf.append( chunk );
+			  }
+		)*
+		{
+		    if( channel != null ) {
+			    ((SwitchingCommonTokenStream)input).setTokenTypeChannel(WS, channel.intValue());
+		    } else {
+			    ((SwitchingCommonTokenStream)input).setTokenTypeChannel(WS, Token.HIDDEN_CHANNEL);
+		    }
+		}
+                loc=RIGHT_CURLY
+                {
+                    buf.append( loc.getText() );
+		    text = buf.toString();
+                }
+	;
+
 square_chunk returns [String text]
         @init {
            StringBuffer buf = null;
@@ -1407,11 +1444,6 @@
 	;
 
 
-CURLY_CHUNK
-	:
-	'{' ( CURLY_CHUNK | NO_CURLY )* '}'
-	;
-
 LEFT_PAREN
         :	'('
         ;
@@ -1428,11 +1460,14 @@
         :	']'
         ;        
 
-fragment
-NO_CURLY
-	: ~('{'|'}')
-	;
+LEFT_CURLY
+        :	'{'
+        ;
 
+RIGHT_CURLY
+        :	'}'
+        ;
+        
 MULTI_LINE_COMMENT
 	:	'/*' (options{greedy=false;} : .)* '*/'
                 { $channel=HIDDEN; }




More information about the jboss-svn-commits mailing list