<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-2381</id>
	<title>Nabble - Java PMD</title>
	<updated>2009-12-10T01:23:13Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Java-PMD-f2381.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Java-PMD-f2381.html" />
	<subtitle type="html">PMD scans Java source code and looks for potential problems like: Empty try/catch/finally/switch blocks; Unused local variables, parameters and private methods; Empty if/while statements; Overcomplicated expressions - unnecessary if statements, for loops that could be while loops; Classes with high Cyclomatic Complexity measurements Java PMD home is &lt;a href=&quot;http://pmd.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26724202</id>
	<title>Re: About the &quot;AnyLanguage&quot; constructor...</title>
	<published>2009-12-10T01:23:13Z</published>
	<updated>2009-12-10T01:23:13Z</updated>
	<author>
		<name>Dale Anson</name>
	</author>
	<content type="html">:) Yes, I realize it&amp;#39;s not the best solution, but this little change of 3 dots means I can let the jEdit plugin run CPD on just about every file type that jEdit supports.  I added this to my local copy yesterday, and already have found a ton of dupe code in html files and properties files at work that I can clean up.  &lt;br&gt;
&lt;br&gt;Thanks,&lt;br&gt;&lt;br&gt;Dale&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 10, 2009 at 1:46 AM, Ryan Gustafson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26724202&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
It won&amp;#39;t cause an issue with internal usage.  If anyone is out there using it, making it var-arg is compatible at the source level, so I don&amp;#39;t see a problem there.  Regardless, it&amp;#39;s not the best first choice for custom CPD languages, so I&amp;#39;m not too sympathetic to custom usage of this class anyway.&lt;br&gt;


&lt;br&gt;Go ahead and change it.&lt;br&gt;&lt;br&gt;Ryan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;On Wed, Dec 9, 2009 at 9:35 PM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26724202&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;

I noticed that the constructor for net.sourceforge.pmd.cpd.AnyLanguage takes a single string, where the super constructor (net.sourceforge.pmd.cpd.AbstractLanguage) accepts a variable number of strings.  Would anyone be opposed if I added ... to the AnyLanguage constructor so it could also accept a variable number of strings?&lt;br&gt;



&lt;br&gt;Thanks,&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;Dale&lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;/font&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;------------------------------------------------------------------------------&lt;br&gt;
Return on Information:&lt;br&gt;
Google Enterprise Search pays you back&lt;br&gt;
Get the facts.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;
&lt;br&gt;_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26724202&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26724202&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/About-the-%22AnyLanguage%22-constructor...-tp26721657p26724202.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26723831</id>
	<title>Re: About the &quot;AnyLanguage&quot; constructor...</title>
	<published>2009-12-10T00:46:17Z</published>
	<updated>2009-12-10T00:46:17Z</updated>
	<author>
		<name>Ryan Gustafson-3</name>
	</author>
	<content type="html">It won&amp;#39;t cause an issue with internal usage.  If anyone is out there using it, making it var-arg is compatible at the source level, so I don&amp;#39;t see a problem there.  Regardless, it&amp;#39;s not the best first choice for custom CPD languages, so I&amp;#39;m not too sympathetic to custom usage of this class anyway.&lt;br&gt;

&lt;br&gt;Go ahead and change it.&lt;br&gt;&lt;br&gt;Ryan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Wed, Dec 9, 2009 at 9:35 PM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26723831&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

I noticed that the constructor for net.sourceforge.pmd.cpd.AnyLanguage takes a single string, where the super constructor (net.sourceforge.pmd.cpd.AbstractLanguage) accepts a variable number of strings.  Would anyone be opposed if I added ... to the AnyLanguage constructor so it could also accept a variable number of strings?&lt;br&gt;


&lt;br&gt;Thanks,&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;Dale&lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;/font&gt;&lt;br&gt;------------------------------------------------------------------------------&lt;br&gt;
Return on Information:&lt;br&gt;
Google Enterprise Search pays you back&lt;br&gt;
Get the facts.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;
&lt;br&gt;_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26723831&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26723831&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/About-the-%22AnyLanguage%22-constructor...-tp26721657p26723831.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26722279</id>
	<title>SF.net SVN: pmd:[7026] trunk/pmd-jedit/PMDPlugin</title>
	<published>2009-12-09T21:11:16Z</published>
	<updated>2009-12-09T21:11:16Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7026
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7026&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7026&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-10 05:11:13 +0000 (Thu, 10 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Update to pmd 4.2.6, added code to let CPD parse files for all jEdit modes. &amp;nbsp;Note this relies on a modification to AnyLanguage in CPD that is not yet in subversion but is in the pmd-4.2.6.jar included with this plugin.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/PMDPlugin.props
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/build.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/lib/pmd-4.2.6.jar
&lt;br&gt;&lt;br&gt;Removed Paths:
&lt;br&gt;-------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/lib/pmd-4.2.5.jar
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/PMDPlugin.props
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/PMDPlugin.props	2009-12-09 17:11:39 UTC (rev 7025)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/PMDPlugin.props	2009-12-10 05:11:13 UTC (rev 7026)
&lt;br&gt;@@ -9,7 +9,7 @@
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.depend.1=jedit 04.03.18.00
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.depend.2=plugin errorlist.ErrorListPlugin 1.8
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.depend.3=plugin CommonControlsPlugin 1.1
&lt;br&gt;-plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.jars=pmd-4.2.5.jar jaxen-1.1.1.jar asm-3.1.jar
&lt;br&gt;+plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.jars=pmd-4.2.6.jar jaxen-1.1.1.jar asm-3.1.jar
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.description=The PMD plugin is a Java source code analysis tool.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/build.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/build.xml	2009-12-09 17:11:39 UTC (rev 7025)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/build.xml	2009-12-10 05:11:13 UTC (rev 7026)
&lt;br&gt;@@ -20,6 +20,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;path id=&amp;quot;project.class.path&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${jedit.install.dir}/jedit.jar&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${jedit.plugins.dir}/ErrorList.jar&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${jedit.plugins.dir}/kappalayout.jar&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pathelement location=&amp;quot;${build}&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;fileset casesensitive=&amp;quot;false&amp;quot; id=&amp;quot;pmd.libs&amp;quot; dir=&amp;quot;${lib}&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;include name=&amp;quot;*.jar&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;Deleted: trunk/pmd-jedit/PMDPlugin/lib/pmd-4.2.5.jar
&lt;br&gt;===================================================================
&lt;br&gt;(Binary files differ)
&lt;br&gt;&lt;br&gt;Added: trunk/pmd-jedit/PMDPlugin/lib/pmd-4.2.6.jar
&lt;br&gt;===================================================================
&lt;br&gt;(Binary files differ)
&lt;br&gt;&lt;br&gt;&lt;br&gt;Property changes on: trunk/pmd-jedit/PMDPlugin/lib/pmd-4.2.6.jar
&lt;br&gt;___________________________________________________________________
&lt;br&gt;Added: svn:mime-type
&lt;br&gt;&amp;nbsp; &amp;nbsp;+ application/octet-stream
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java	2009-12-09 17:11:39 UTC (rev 7025)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java	2009-12-10 05:11:13 UTC (rev 7026)
&lt;br&gt;@@ -72,7 +72,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return mode; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String[] getExtensions() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return extensions; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return description; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append(description);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append(&amp;quot; (&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (String s : extensions) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append(s).append(','); &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.deleteCharAt(sb.lastIndexOf(&amp;quot;,&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append(')');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString(); &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-09 17:11:39 UTC (rev 7025)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-10 05:11:13 UTC (rev 7026)
&lt;br&gt;@@ -11,10 +11,7 @@
&lt;br&gt;&amp;nbsp;import java.io.FileInputStream;
&lt;br&gt;&amp;nbsp;import java.io.FileNotFoundException;
&lt;br&gt;&amp;nbsp;import java.io.IOException;
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-import java.util.Iterator;
&lt;br&gt;-import java.util.List;
&lt;br&gt;-import java.util.Properties;
&lt;br&gt;+import java.util.*;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.swing.*;
&lt;br&gt;&amp;nbsp;import javax.swing.border.EtchedBorder;
&lt;br&gt;@@ -31,6 +28,7 @@
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.SourceType;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.CPD;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.util.FileFinder;
&lt;br&gt;+import net.sourceforge.pmd.cpd.AnyLanguage;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.JavaTokenizer;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.Language;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.LanguageFactory;
&lt;br&gt;@@ -45,6 +43,7 @@
&lt;br&gt;&amp;nbsp;import org.gjt.sp.jedit.Buffer;
&lt;br&gt;&amp;nbsp;import org.gjt.sp.jedit.EBMessage;
&lt;br&gt;&amp;nbsp;import org.gjt.sp.jedit.EBPlugin;
&lt;br&gt;+import org.gjt.sp.jedit.Mode;
&lt;br&gt;&amp;nbsp;import org.gjt.sp.jedit.View;
&lt;br&gt;&amp;nbsp;import org.gjt.sp.jedit.jEdit;
&lt;br&gt;&amp;nbsp;import org.gjt.sp.jedit.browser.VFSBrowser;
&lt;br&gt;@@ -128,7 +127,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Recursive&amp;quot;, &amp;quot;Recursive&amp;quot;), jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( jEdit.getProperty( &amp;quot;net.sf.pmd.Recursive&amp;quot;, &amp;quot;Recursive&amp;quot; ), jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( chkRecursive );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory( pnlAccessory );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -141,7 +140,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedFile = chooser.getSelectedFile();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !selectedFile.isDirectory() ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selection_not_a_directory.&amp;quot;, &amp;quot;Selection not a directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.Selection_not_a_directory.&amp;quot;, &amp;quot;Selection not a directory.&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -213,7 +212,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// only show popup if run on save is NOT selected, otherwise it is annoying
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean run_on_save = jEdit.getBooleanProperty( PMDJEditPlugin.RUN_PMD_ON_SAVE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !run_on_save ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.No_problems_found&amp;quot;, &amp;quot;No problems found&amp;quot;), NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.No_problems_found&amp;quot;, &amp;quot;No problems found&amp;quot; ), NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -238,7 +237,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;RuleSet not found&amp;quot;, rsne );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( PMDException pmde ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = jEdit.getProperty(&amp;quot;net.sf.pmd.Error_while_processing_&amp;quot;, &amp;quot;Error while processing &amp;quot;) + buffer.getPath() + &amp;quot;:\n&amp;quot; + pmde.getMessage() + &amp;quot;\n\n&amp;quot; + pmde.getCause();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = jEdit.getProperty( &amp;quot;net.sf.pmd.Error_while_processing_&amp;quot;, &amp;quot;Error while processing &amp;quot; ) + buffer.getPath() + &amp;quot;:\n&amp;quot; + pmde.getMessage() + &amp;quot;\n\n&amp;quot; + pmde.getCause();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, msg, pmde );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -285,7 +284,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( RuleSetNotFoundException rsne ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// should never happen since rulesets are fetched via getRegisteredRuleSet, nonetheless:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;PMD ERROR: Couldn't find a ruleset&amp;quot;, rsne );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), jEdit.getProperty(&amp;quot;net.sf.pmd.Unable_to_find_rulesets,_halting_PMD&amp;quot;, &amp;quot;Unable to find rulesets, halting PMD&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), jEdit.getProperty( &amp;quot;net.sf.pmd.Unable_to_find_rulesets,_halting_PMD&amp;quot;, &amp;quot;Unable to find rulesets, halting PMD&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -314,7 +313,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;PMD ERROR: Unable to open file &amp;quot; + file.getAbsolutePath(), fnfe );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( PMDException pmde ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = jEdit.getProperty(&amp;quot;net.sf.pmd.Error_while_processing_&amp;quot;, &amp;quot;Error while processing &amp;quot;) + file.getAbsolutePath() + &amp;quot;:\n&amp;quot; + pmde.getMessage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = jEdit.getProperty( &amp;quot;net.sf.pmd.Error_while_processing_&amp;quot;, &amp;quot;Error while processing &amp;quot; ) + file.getAbsolutePath() + &amp;quot;:\n&amp;quot; + pmde.getMessage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, msg, pmde );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -325,7 +324,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !foundProblems ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), jEdit.getProperty(&amp;quot;net.sf.pmd.No_problems_found&amp;quot;, &amp;quot;No problems found&amp;quot;), NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), jEdit.getProperty( &amp;quot;net.sf.pmd.No_problems_found&amp;quot;, &amp;quot;No problems found&amp;quot; ), NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;@@ -353,9 +352,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void cpdCurrentFile( View view ) throws IOException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String modeName = getFileType( view.getBuffer().getMode().getName() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( modeName == null ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Copy/Paste_detection_can_not_be_performed_on_this_file\nbecause_the_mode_can_not_be_determined.&amp;quot;, &amp;quot;Copy/Paste detection can not be performed on this file\nbecause the mode can not be determined.&amp;quot;), 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Copy/Paste_Detector&amp;quot;, &amp;quot;Copy/Paste Detector&amp;quot;), JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty( &amp;quot;net.sf.pmd.Copy/Paste_detection_can_not_be_performed_on_this_file\nbecause_the_mode_can_not_be_determined.&amp;quot;, &amp;quot;Copy/Paste detection can not be performed on this file\nbecause the mode can not be determined.&amp;quot; ),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty( &amp;quot;net.sf.pmd.Copy/Paste_Detector&amp;quot;, &amp;quot;Copy/Paste Detector&amp;quot; ), JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDCurrentFile( view, view.getBuffer().getPath(), modeName );
&lt;br&gt;@@ -365,12 +364,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile selectedFile[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedFile == null || selectedFile.length == 0 ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.One_file_must_be_selected&amp;quot;, &amp;quot;One file must be selected&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.One_file_must_be_selected&amp;quot;, &amp;quot;One file must be selected&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedFile[ 0 ].getType() == VFSFile.DIRECTORY ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selected_file_cannot_be_a_Directory.&amp;quot;, &amp;quot;Selected file cannot be a Directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.Selected_file_cannot_be_a_Directory.&amp;quot;, &amp;quot;Selected file cannot be a Directory.&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = selectedFile[ 0 ].getPath();
&lt;br&gt;@@ -388,7 +387,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return &amp;quot;cpp&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return name;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void instanceCPDCurrentFile( View view, String filename, String fileType ) throws IOException {
&lt;br&gt;@@ -402,7 +401,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getDockableWindowManager().showDockableWindow( &amp;quot;cpd-viewer&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( jEdit.getProperty(&amp;quot;net.sf.pmd.CPD_does_not_yet_support_this_file_type&amp;gt;_&amp;quot;, &amp;quot;CPD does not yet support this file type: &amp;quot;) + fileType );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( jEdit.getProperty( &amp;quot;net.sf.pmd.CPD_does_not_yet_support_this_file_type&amp;gt;_&amp;quot;, &amp;quot;CPD does not yet support this file type: &amp;quot; ) + fileType );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -413,44 +412,34 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.setLayout(new KappaLayout());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.setLayout( new KappaLayout() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Minimum_Tile_size_&amp;gt;&amp;quot;, &amp;quot;Minimum Tile size :&amp;quot;) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( jEdit.getProperty( &amp;quot;net.sf.pmd.Minimum_Tile_size_&amp;gt;&amp;quot;, &amp;quot;Minimum Tile size :&amp;quot; ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JTextField txttilesize = new JTextField( 3 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;txttilesize.setText( jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ) + &amp;quot;&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Recursive&amp;quot;, &amp;quot;Recursive&amp;quot;), jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( jEdit.getProperty( &amp;quot;net.sf.pmd.Recursive&amp;quot;, &amp;quot;Recursive&amp;quot; ), jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JComboBox fileTypeSelector = new JComboBox();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JComboBox fileTypeSelector = new JComboBox( getCPDFileFilters() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.setEditable( false );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;javascript&amp;quot;, &amp;quot;Javascript files&amp;quot;, &amp;quot;js&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: the &amp;quot;any&amp;quot; tokenizer doesn't seem to work
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;any&amp;quot;, &amp;quot;All&amp;quot;, &amp;quot;*&amp;quot; ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( lblMinTileSize, &amp;nbsp;&amp;quot;0, 0, 1, 1, W, , 3&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( txttilesize, &amp;nbsp; &amp;nbsp; &amp;quot;1, 0, 1, 1, W, , 3&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( chkRecursive, &amp;nbsp; &amp;nbsp;&amp;quot;0, 1, 2, 1, W, , 3&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( fileTypeSelector,&amp;quot;0, 2, 2, 1, W, , 3&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( lblMinTileSize, &amp;quot;0, 0, 1, 1, W, , 3&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( txttilesize, &amp;quot;1, 0, 1, 1, W, , 3&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( chkRecursive, &amp;quot;0, 1, 2, 1, W, , 3&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( fileTypeSelector, &amp;quot;0, 2, 2, 1, W, , 3&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory( pnlAccessory );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int returnVal = chooser.showOpenDialog( view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File selectedFile = null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String mode = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDFileFilter mode = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( returnVal == JFileChooser.APPROVE_OPTION ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedFile = chooser.getSelectedFile();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mode = ( ( CPDFileFilter ) fileTypeSelector.getSelectedItem() ).getMode();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mode = ( CPDFileFilter ) fileTypeSelector.getSelectedItem();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !selectedFile.isDirectory() ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selection_not_a_directory.&amp;quot;, &amp;quot;Selection not a directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.Selection_not_a_directory.&amp;quot;, &amp;quot;Selection not a directory.&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -472,7 +461,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Run CPD on a directory selected from the File System Browser.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param view The current view.
&lt;br&gt;@@ -484,42 +473,61 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( view != null &amp;&amp; browser != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile selectedDir[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedDir == null || selectedDir.length == 0 ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.One_Directory_has_to_be_selected_in_which_to_detect_duplicate_code.&amp;quot;, &amp;quot;One Directory has to be selected in which to detect duplicate code.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.One_Directory_has_to_be_selected_in_which_to_detect_duplicate_code.&amp;quot;, &amp;quot;One Directory has to be selected in which to detect duplicate code.&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedDir[ 0 ].getType() != VFSFile.DIRECTORY ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selected_file_must_be_a_Directory.&amp;quot;, &amp;quot;Selected file must be a Directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.Selected_file_must_be_a_Directory.&amp;quot;, &amp;quot;Selected file must be a Directory.&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// display chooser for type of files to check
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] choices = new Object[8];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[0] = new CPDFileFilter( &amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[1] = new CPDFileFilter( &amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[2] = new CPDFileFilter( &amp;quot;javascript&amp;quot;, &amp;quot;Javascript files&amp;quot;, &amp;quot;js&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[3] = new CPDFileFilter( &amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[4] = new CPDFileFilter( &amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[5] = new CPDFileFilter( &amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[6] = new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[7] = new CPDFileFilter( &amp;quot;any&amp;quot;, &amp;quot;All&amp;quot;, &amp;quot;*&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object choice = JOptionPane.showInputDialog(view, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Select_type_of_files_to_check&amp;gt;&amp;quot;, &amp;quot;Select type of files to check:&amp;quot;), 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.CPD,_Select_File_Type&amp;quot;, &amp;quot;CPD, Select File Type&amp;quot;), 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.OK_CANCEL_OPTION, null, choices, choices[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDFileFilter[] choices = getCPDFileFilters();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDFileFilter choice = ( CPDFileFilter ) JOptionPane.showInputDialog( view,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty( &amp;quot;net.sf.pmd.Select_type_of_files_to_check&amp;gt;&amp;quot;, &amp;quot;Select type of files to check:&amp;quot; ),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty( &amp;quot;net.sf.pmd.CPD,_Select_File_Type&amp;quot;, &amp;quot;CPD, Select File Type&amp;quot; ),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.OK_CANCEL_OPTION, null, choices, choices[ 0 ] );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( choice == null ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String mode = ((CPDFileFilter)choice).getMode();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir( view, selectedDir[ 0 ].getPath(),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;recursive, mode );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;recursive, choice );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void instanceCPDDir( View view, String dir, int tileSize, boolean recursive, String mode ) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static CPDFileFilter[] getCPDFileFilters() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDFileFilter[] choices = new CPDFileFilter[ 8 ];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 0 ] = new CPDFileFilter( &amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 1 ] = new CPDFileFilter( &amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 2 ] = new CPDFileFilter( &amp;quot;ecmascript&amp;quot;, &amp;quot;Javascript files&amp;quot;, &amp;quot;js&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 3 ] = new CPDFileFilter( &amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 4 ] = new CPDFileFilter( &amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 5 ] = new CPDFileFilter( &amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 6 ] = new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[ 7 ] = new CPDFileFilter( &amp;quot;any&amp;quot;, &amp;quot;All&amp;quot;, &amp;quot;*&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return choices;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;CPDFileFilter&amp;gt; filters = new ArrayList&amp;lt;CPDFileFilter&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mode[] modes = jEdit.getModes();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( Mode mode : modes ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String filenameGlob = ( String ) mode.getProperty( &amp;quot;filenameGlob&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( filenameGlob == null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;continue;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String modeName = mode.getName();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filenameGlob = filenameGlob.replaceAll( &amp;quot;[*.{}\\[\\]]&amp;quot;, &amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] extensions = filenameGlob.split( &amp;quot;[,]&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filters.add( new CPDFileFilter( modeName, modeName, extensions ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return filters.toArray( new CPDFileFilter[ 0 ] );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void instanceCPDDir( View view, String dir, int tileSize, boolean recursive, CPDFileFilter mode ) throws IOException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( dir != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setProperty( LAST_DIRECTORY, dir );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.errorSource.clear();
&lt;br&gt;@@ -536,7 +544,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.processDuplicates( cpd, view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( jEdit.getProperty(&amp;quot;net.sf.pmd.Cannot_run_CPD_on_Invalid_directory/files.&amp;quot;, &amp;quot;Cannot run CPD on Invalid directory/files.&amp;quot;) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( jEdit.getProperty( &amp;quot;net.sf.pmd.Cannot_run_CPD_on_Invalid_directory/files.&amp;quot;, &amp;quot;Cannot run CPD on Invalid directory/files.&amp;quot; ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -572,7 +580,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !foundDuplicates ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.getRoot().add( new DefaultMutableTreeNode( jEdit.getProperty(&amp;quot;net.sf.pmd.No_duplicates_found.&amp;quot;, &amp;quot;No duplicates found.&amp;quot;), false ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.getRoot().add( new DefaultMutableTreeNode( jEdit.getProperty( &amp;quot;net.sf.pmd.No_duplicates_found.&amp;quot;, &amp;quot;No duplicates found.&amp;quot; ), false ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.refreshTree();
&lt;br&gt;@@ -608,7 +616,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile de[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( de == null || de.length == 0 || de[ 0 ].getType() != VFSFile.DIRECTORY ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selection_must_be_a_directory&amp;quot;, &amp;quot;Selection must be a directory&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.Selection_must_be_a_directory&amp;quot;, &amp;quot;Selection must be a directory&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -649,7 +657,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer = new TextRenderer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Invalid_Renderer&amp;quot;, &amp;quot;Invalid Renderer&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty( &amp;quot;net.sf.pmd.Invalid_Renderer&amp;quot;, &amp;quot;Invalid Renderer&amp;quot; ), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -698,7 +706,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBorder( new EtchedBorder( EtchedBorder.RAISED ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setToolTipText( jEdit.getProperty(&amp;quot;net.sf.pmd.PMD_Check_in_Progress&amp;quot;, &amp;quot;PMD Check in Progress&amp;quot;) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setToolTipText( jEdit.getProperty( &amp;quot;net.sf.pmd.PMD_Check_in_Progress&amp;quot;, &amp;quot;PMD Check in Progress&amp;quot; ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setForeground( jEdit.getColorProperty( &amp;quot;pmd.progressbar.background&amp;quot; ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBackground( jEdit.getColorProperty( &amp;quot;view.status.background&amp;quot; ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -720,24 +728,38 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private CPD getCPD( int tileSize, String fileType ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Language lang;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private CPD getCPD( int tileSize, CPDFileFilter fileType ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Language lang = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LanguageFactory lf = new LanguageFactory();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; supportedLanguages = Arrays.asList( LanguageFactory.supportedLanguages );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Properties props = new Properties();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( &amp;quot;java&amp;quot;.equals( fileType ) ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( &amp;quot;java&amp;quot;.equals( fileType.getMode() ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;props.setProperty( JavaTokenizer.IGNORE_LITERALS, String.valueOf( jEdit.getBooleanProperty( PMDJEditPlugin.IGNORE_LITERALS ) ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( fileType, props );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: the &amp;quot;any&amp;quot; tokenizer doesn't seem to work
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( lang == null ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( &amp;quot;any&amp;quot;, props );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( supportedLanguages.contains( fileType.getMode() ) ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( fileType.getMode(), props );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = new AnyLanguage( fileType.getExtensions() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return lang == null ? null : new CPD( tileSize, lang );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private CPD getCPD( String fileType ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getCPD( jEdit.getIntegerProperty( PMDJEditPlugin.DEFAULT_TILE_MINSIZE_PROPERTY, 100 ), fileType );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Mode mode = jEdit.getMode( fileType );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( mode == null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String filenameGlob = ( String ) mode.getProperty( &amp;quot;filenameGlob&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( filenameGlob == null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filenameGlob = filenameGlob.replaceAll( &amp;quot;[*.{}]&amp;quot;, &amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] extensions = filenameGlob.split( &amp;quot;[,]&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String modeName = mode.getName();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDFileFilter filter = new CPDFileFilter( modeName, modeName, extensions );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getCPD( jEdit.getIntegerProperty( PMDJEditPlugin.DEFAULT_TILE_MINSIZE_PROPERTY, 100 ), filter );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26722279&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7026--trunk-pmd-jedit-PMDPlugin-tp26722279p26722279.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26721657</id>
	<title>About the &quot;AnyLanguage&quot; constructor...</title>
	<published>2009-12-09T19:35:13Z</published>
	<updated>2009-12-09T19:35:13Z</updated>
	<author>
		<name>Dale Anson</name>
	</author>
	<content type="html">I noticed that the constructor for net.sourceforge.pmd.cpd.AnyLanguage takes a single string, where the super constructor (net.sourceforge.pmd.cpd.AbstractLanguage) accepts a variable number of strings.  Would anyone be opposed if I added ... to the AnyLanguage constructor so it could also accept a variable number of strings?&lt;br&gt;
&lt;br&gt;Thanks,&lt;br&gt;&lt;br&gt;Dale&lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26721657&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/About-the-%22AnyLanguage%22-constructor...-tp26721657p26721657.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26713894</id>
	<title>Re: Support for javascript in CPD?</title>
	<published>2009-12-09T09:13:43Z</published>
	<updated>2009-12-09T09:13:43Z</updated>
	<author>
		<name>Dale Anson</name>
	</author>
	<content type="html">I changed javascript to ecmascript and updated the change log in both the trunk and the 4.2.x branch.  Should be good, I think.  Please let me know if I&amp;#39;ve missed anything.&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;&lt;br&gt;Dale&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;
On Wed, Dec 9, 2009 at 7:59 AM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
It would be an easy enough for me to rename what I did to ecmascript instead of javascript.  I&amp;#39;ll go ahead and to that, then there is no need to come up with a story.&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;Dale&lt;/font&gt;&lt;div&gt;&lt;div&gt;
&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;
On Tue, Dec 8, 2009 at 8:26 PM, Ryan Gustafson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

Update the sections talking about generic changes (i.e. no default numbers, or rulesets).  Put it immediate below the JSP parser changes I recently added.&lt;br&gt;&lt;br&gt;We need to come up with a story for the Javascript vs. Ecmascript naming issue.  I went with Ecmascript in on trunk when I added it as a new Language.&lt;br&gt;



&lt;br&gt;Ryan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;On Tue, Dec 8, 2009 at 8:25 PM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;

&lt;/div&gt;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;

I&amp;#39;ve committed the code to add javascript support to CPD to both the trunk and the 4.2.x branch.  I did not update the change log in either branch because it wasn&amp;#39;t clear to me where to add the change.&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;



Dale&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:21 AM, Ryan Gustafson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;




Pretty soon, I&amp;#39;d say before year end, we&amp;#39;re overdue. --Ryan&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:26 AM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;






&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;I&amp;#39;ll get a test case or two together before committing.  Do you have&lt;br&gt;
an idea of when the next release will be?&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;
Dale&lt;br&gt;
&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
On Thu, Dec 3, 2009 at 8:33 AM, Ryan Gustafson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi Dale,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Go ahead.  It may not be the most optimal tokenizer and might make mistakes&lt;br&gt;
&amp;gt; on occasion, but it&amp;#39;s passable like you say.  That was the idea I think&lt;br&gt;
&amp;gt; behind AbstractTokenizer.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; If you cannot get it on both 4.2.x branch and trunk let me know.  Also,&lt;br&gt;
&amp;gt; please make sure you have some minimal test cases.  As Romain points out&lt;br&gt;
&amp;gt; too, a small blurb in the changelog.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Ryan&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Thu, Dec 3, 2009 at 9:11 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Hi Ryan,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks for the help.  I ended up just copying the RubyLanguage and&lt;br&gt;
&amp;gt;&amp;gt; RubyTokenizer files, then editing them a little for javascript, and&lt;br&gt;
&amp;gt;&amp;gt; that seems to work surprisingly well.  I think I was expecting this to&lt;br&gt;
&amp;gt;&amp;gt; be more difficult.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Is it okay for me to check these in?&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; On Wed, Dec 2, 2009 at 11:34 PM, Ryan Gustafson&lt;br&gt;
&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Not that I&amp;#39;m aware of.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The purpose of a CPD tokenizer is really quite simple.  It&amp;#39;s the same as&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; lexer.  Break a stream of characters into blocks of characters (tokens)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; using the rules of the language.  CPD then looks for patterns in the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; token&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; sequences across source files (ie. cut-n-paste).  For example:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   while (true) {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;      System.exit();&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Would something like these tokens (totally contrived):&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    while&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    true&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    System.exit&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    ;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The tokenizer creates a sequence of TokenEntry objects which contain (a)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; text of the token, (b) the source file name, and (c) a line number.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; That&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; it.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The only special things some of the tokenizers do, is toss out tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; that&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; would not be meaningful for the purposes of CPD.  For example the tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; for&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; an import statement in Java are not really something you worry about&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; finding&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; copies of in different source files!&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; One could try using the TokenStream from Mozilla&amp;#39;s Rhino as a ready to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; go&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; tokenizer, but it seems to be package private.  A bit of cheating using&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Reflection APIs could likely break the Java access rules preventing&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; normal&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; usage.  Or just put your CPD tokenizer in the same package. :)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Good luck.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Ryan&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; On Thu, Dec 3, 2009 at 12:03 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Hi,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; I&amp;#39;m wondering if anyone is working on support for Javascript in CPD?&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; If not, does anyone have some pointers for writing it myself?  The&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; how-to page is a little weak :)  I&amp;#39;ve looked at the code for the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; existing supported languages, and I like the Ruby examples, but it&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; not clear to me what I need to define for a new tokenizer.  I&amp;#39;d&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; appreciate any help.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; ------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; a free event focused on virtualization and cloud computing.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Pmd-devel mailing list&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
------------------------------------------------------------------------------&lt;br&gt;
Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
a free event focused on virtualization and cloud computing.&lt;br&gt;
Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;------------------------------------------------------------------------------&lt;br&gt;
Return on Information:&lt;br&gt;
Google Enterprise Search pays you back&lt;br&gt;
Get the facts.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713894&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Support-for-javascript-in-CPD--tp26621458p26713894.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26713862</id>
	<title>SF.net SVN: pmd:[7025] branches/pmd/4.2.x/etc/changelog.txt</title>
	<published>2009-12-09T09:11:39Z</published>
	<updated>2009-12-09T09:11:39Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7025
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7025&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7025&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 17:11:39 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Updated changelog to note Ecmascript is now supported by CPD.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/etc/changelog.txt	2009-12-09 17:10:47 UTC (rev 7024)
&lt;br&gt;+++ branches/pmd/4.2.x/etc/changelog.txt	2009-12-09 17:11:39 UTC (rev 7025)
&lt;br&gt;@@ -15,6 +15,7 @@
&lt;br&gt;&amp;nbsp;Fix issue with Type Resolution incorrectly handling of Classes with same name as a java.lang Class.
&lt;br&gt;&amp;nbsp;The JSP/JSF parser can now parse Unicode input.
&lt;br&gt;&amp;nbsp;The JSP/JSP parser can now handle &amp;lt;script&amp;gt;...&amp;lt;/script&amp;gt; tags. &amp;nbsp;The AST HtmlScript node contains the content.
&lt;br&gt;+Added Ecmascript as a supported language for CPD.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;Dependencies updates: asm updated to 3.2
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713862&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7025--branches-pmd-4.2.x-etc-changelog.txt-tp26713862p26713862.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26713850</id>
	<title>SF.net SVN: pmd:[7024] branches/pmd/4.2.x</title>
	<published>2009-12-09T09:10:47Z</published>
	<updated>2009-12-09T09:10:47Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7024
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7024&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7024&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 17:10:47 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Changed javascript to ecmascript.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	2009-12-09 17:10:47 UTC (rev 7024)
&lt;br&gt;@@ -5,18 +5,18 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import static org.junit.Assert.assertEquals;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.PMD;
&lt;br&gt;-import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.EcmascriptTokenizer;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.junit.Test;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-public class JavascriptTokenizerTest {
&lt;br&gt;+public class EcmascriptTokenizerTest {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new EcmascriptTokenizer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;@@ -25,7 +25,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new EcmascriptTokenizer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;@@ -59,6 +59,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( EcmascriptTokenizerTest.class );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	2009-12-09 17:10:47 UTC (rev 7024)
&lt;br&gt;@@ -4,8 +4,8 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package net.sourceforge.pmd.cpd;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;-	public JavascriptLanguage() {
&lt;br&gt;-		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;+public class EcmascriptLanguage extends AbstractLanguage {
&lt;br&gt;+	public EcmascriptLanguage() {
&lt;br&gt;+		super(new EcmascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	2009-12-09 17:10:47 UTC (rev 7024)
&lt;br&gt;@@ -5,8 +5,8 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;+public class EcmascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public EcmascriptTokenizer() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713850&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7024--branches-pmd-4.2.x-tp26713850p26713850.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26713821</id>
	<title>SF.net SVN: pmd:[7023] branches/pmd/4.2.x</title>
	<published>2009-12-09T09:09:15Z</published>
	<updated>2009-12-09T09:09:15Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7023
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7023&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7023&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 17:09:14 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Changed javascript to ecmascript.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Removed Paths:
&lt;br&gt;-------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Copied: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java (from rev 7019, branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java)
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;@@ -0,0 +1,64 @@
&lt;br&gt;+/**
&lt;br&gt;+* BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+*/
&lt;br&gt;+package test.net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import static org.junit.Assert.assertEquals;
&lt;br&gt;+import net.sourceforge.pmd.PMD;
&lt;br&gt;+import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;+
&lt;br&gt;+import org.junit.Test;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptTokenizerTest {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// no semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus()&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// same as getCode1, but lines are ended with semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode2() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus();&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Deleted: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	2009-12-09 17:04:46 UTC (rev 7022)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;@@ -1,64 +0,0 @@
&lt;br&gt;-/**
&lt;br&gt;-* BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;-*/
&lt;br&gt;-package test.net.sourceforge.pmd.cpd;
&lt;br&gt;-
&lt;br&gt;-import static org.junit.Assert.assertEquals;
&lt;br&gt;-import net.sourceforge.pmd.PMD;
&lt;br&gt;-import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;-import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;-import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;-import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;-
&lt;br&gt;-import org.junit.Test;
&lt;br&gt;-
&lt;br&gt;-public class JavascriptTokenizerTest {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// no semi-colons
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String getCode1() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus()&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// same as getCode1, but lines are ended with semi-colons
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String getCode2() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus();&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Copied: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java (from rev 7019, branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java)
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;@@ -0,0 +1,11 @@
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ * @author Zev Blut &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713821&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;zb@...&lt;/a&gt;
&lt;br&gt;+ */
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;+	public JavascriptLanguage() {
&lt;br&gt;+		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;+	}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Copied: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java (from rev 7019, branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java)
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;@@ -0,0 +1,22 @@
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ */
&lt;br&gt;+public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\&amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable character' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter.add( &amp;quot;;&amp;quot; );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable string' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableStmt = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Deleted: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	2009-12-09 17:04:46 UTC (rev 7022)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;@@ -1,11 +0,0 @@
&lt;br&gt;-/**
&lt;br&gt;- * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;- * @author Zev Blut &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713821&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;zb@...&lt;/a&gt;
&lt;br&gt;- */
&lt;br&gt;-package net.sourceforge.pmd.cpd;
&lt;br&gt;-
&lt;br&gt;-public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;-	public JavascriptLanguage() {
&lt;br&gt;-		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;-	}
&lt;br&gt;-}
&lt;br&gt;&lt;br&gt;Deleted: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	2009-12-09 17:04:46 UTC (rev 7022)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;@@ -1,22 +0,0 @@
&lt;br&gt;-package net.sourceforge.pmd.cpd;
&lt;br&gt;-
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;- */
&lt;br&gt;-public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\&amp;quot;&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable character' in javascript
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter.add( &amp;quot;;&amp;quot; );
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable string' in javascript
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableStmt = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-09 17:04:46 UTC (rev 7022)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-09 17:09:14 UTC (rev 7023)
&lt;br&gt;@@ -7,7 +7,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;public class LanguageFactory {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot;, &amp;quot;javascript&amp;quot; };
&lt;br&gt;+ &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot;, &amp;quot;ecmascript&amp;quot; };
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static final String SUFFIX = &amp;quot;Language&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String EXTENSION = &amp;quot;extension&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String BY_EXTENSION = &amp;quot;by_extension&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713821&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7023--branches-pmd-4.2.x-tp26713821p26713821.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26713755</id>
	<title>SF.net SVN: pmd:[7022] trunk/pmd/etc/changelog.txt</title>
	<published>2009-12-09T09:04:47Z</published>
	<updated>2009-12-09T09:04:47Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7022
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7022&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7022&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 17:04:46 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Updated changelog to note Ecmascript is now supported by CPD.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/etc/changelog.txt
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/etc/changelog.txt	2009-12-09 17:01:15 UTC (rev 7021)
&lt;br&gt;+++ trunk/pmd/etc/changelog.txt	2009-12-09 17:04:46 UTC (rev 7022)
&lt;br&gt;@@ -474,6 +474,7 @@
&lt;br&gt;&amp;nbsp;AvoidUsingHardCodedIP modified to not use InetAddress.getByName(String), instead does better pattern analysis.
&lt;br&gt;&amp;nbsp;The JSP/JSF parser can now parse Unicode input.
&lt;br&gt;&amp;nbsp;The JSP/JSP parser can now handle &amp;lt;script&amp;gt;...&amp;lt;/script&amp;gt; tags. &amp;nbsp;The AST HtmlScript node contains the content.
&lt;br&gt;+Added Ecmascript as a supported language for CPD.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;New Java rules:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713755&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7022--trunk-pmd-etc-changelog.txt-tp26713755p26713755.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26713692</id>
	<title>SF.net SVN: pmd:[7021] trunk/pmd</title>
	<published>2009-12-09T09:01:15Z</published>
	<updated>2009-12-09T09:01:15Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7021
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7021&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7021&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 17:01:15 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Changed javascript to ecmascript.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	2009-12-09 17:01:15 UTC (rev 7021)
&lt;br&gt;@@ -5,18 +5,18 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import static org.junit.Assert.assertEquals;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.PMD;
&lt;br&gt;-import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.EcmascriptTokenizer;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.junit.Test;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-public class JavascriptTokenizerTest {
&lt;br&gt;+public class EcmascriptTokenizerTest {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new EcmascriptTokenizer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;@@ -25,7 +25,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new EcmascriptTokenizer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;@@ -59,6 +59,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( EcmascriptTokenizerTest.class );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	2009-12-09 17:01:15 UTC (rev 7021)
&lt;br&gt;@@ -4,8 +4,8 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package net.sourceforge.pmd.cpd;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;-	public JavascriptLanguage() {
&lt;br&gt;-		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;+public class EcmascriptLanguage extends AbstractLanguage {
&lt;br&gt;+	public EcmascriptLanguage() {
&lt;br&gt;+		super(new EcmascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	2009-12-09 17:01:15 UTC (rev 7021)
&lt;br&gt;@@ -5,8 +5,8 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;+public class EcmascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public EcmascriptTokenizer() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713692&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7021--trunk-pmd-tp26713692p26713692.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26713628</id>
	<title>SF.net SVN: pmd:[7020] trunk/pmd</title>
	<published>2009-12-09T08:57:02Z</published>
	<updated>2009-12-09T08:57:02Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7020
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7020&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7020&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 16:57:00 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Renamed javascript to ecmascript.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Removed Paths:
&lt;br&gt;-------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Copied: trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java (from rev 7019, trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java)
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/cpd/EcmascriptTokenizerTest.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;@@ -0,0 +1,64 @@
&lt;br&gt;+/**
&lt;br&gt;+* BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+*/
&lt;br&gt;+package test.net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import static org.junit.Assert.assertEquals;
&lt;br&gt;+import net.sourceforge.pmd.PMD;
&lt;br&gt;+import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;+
&lt;br&gt;+import org.junit.Test;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptTokenizerTest {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// no semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus()&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// same as getCode1, but lines are ended with semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode2() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus();&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Deleted: trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;@@ -1,64 +0,0 @@
&lt;br&gt;-/**
&lt;br&gt;-* BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;-*/
&lt;br&gt;-package test.net.sourceforge.pmd.cpd;
&lt;br&gt;-
&lt;br&gt;-import static org.junit.Assert.assertEquals;
&lt;br&gt;-import net.sourceforge.pmd.PMD;
&lt;br&gt;-import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;-import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;-import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;-import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;-
&lt;br&gt;-import org.junit.Test;
&lt;br&gt;-
&lt;br&gt;-public class JavascriptTokenizerTest {
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// no semi-colons
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String getCode1() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus()&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// same as getCode1, but lines are ended with semi-colons
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String getCode2() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus();&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Copied: trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java (from rev 7019, trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java)
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptLanguage.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;@@ -0,0 +1,11 @@
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ * @author Zev Blut &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713628&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;zb@...&lt;/a&gt;
&lt;br&gt;+ */
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;+	public JavascriptLanguage() {
&lt;br&gt;+		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;+	}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Copied: trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java (from rev 7019, trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java)
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/EcmascriptTokenizer.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;@@ -0,0 +1,22 @@
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ */
&lt;br&gt;+public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\&amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable character' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter.add( &amp;quot;;&amp;quot; );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable string' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableStmt = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Deleted: trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;@@ -1,11 +0,0 @@
&lt;br&gt;-/**
&lt;br&gt;- * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;- * @author Zev Blut &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713628&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;zb@...&lt;/a&gt;
&lt;br&gt;- */
&lt;br&gt;-package net.sourceforge.pmd.cpd;
&lt;br&gt;-
&lt;br&gt;-public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;-	public JavascriptLanguage() {
&lt;br&gt;-		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;-	}
&lt;br&gt;-}
&lt;br&gt;&lt;br&gt;Deleted: trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;@@ -1,22 +0,0 @@
&lt;br&gt;-package net.sourceforge.pmd.cpd;
&lt;br&gt;-
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-
&lt;br&gt;-/**
&lt;br&gt;- * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;- */
&lt;br&gt;-public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\&amp;quot;&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable character' in javascript
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter.add( &amp;quot;;&amp;quot; );
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable string' in javascript
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableStmt = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-09 16:57:00 UTC (rev 7020)
&lt;br&gt;@@ -7,7 +7,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;public class LanguageFactory {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot;, &amp;quot;javascript&amp;quot; };
&lt;br&gt;+ &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot;, &amp;quot;ecmascript&amp;quot; };
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static final String SUFFIX = &amp;quot;Language&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String EXTENSION = &amp;quot;extension&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String BY_EXTENSION = &amp;quot;by_extension&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26713628&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7020--trunk-pmd-tp26713628p26713628.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26712073</id>
	<title>Re: Support for javascript in CPD?</title>
	<published>2009-12-09T06:59:52Z</published>
	<updated>2009-12-09T06:59:52Z</updated>
	<author>
		<name>Dale Anson</name>
	</author>
	<content type="html">It would be an easy enough for me to rename what I did to ecmascript instead of javascript.  I&amp;#39;ll go ahead and to that, then there is no need to come up with a story.&lt;br&gt;&lt;br&gt;Dale&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;
On Tue, Dec 8, 2009 at 8:26 PM, Ryan Gustafson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Update the sections talking about generic changes (i.e. no default numbers, or rulesets).  Put it immediate below the JSP parser changes I recently added.&lt;br&gt;&lt;br&gt;We need to come up with a story for the Javascript vs. Ecmascript naming issue.  I went with Ecmascript in on trunk when I added it as a new Language.&lt;br&gt;


&lt;br&gt;Ryan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;On Tue, Dec 8, 2009 at 8:25 PM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;

I&amp;#39;ve committed the code to add javascript support to CPD to both the trunk and the 4.2.x branch.  I did not update the change log in either branch because it wasn&amp;#39;t clear to me where to add the change.&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;


Dale&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:21 AM, Ryan Gustafson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;



Pretty soon, I&amp;#39;d say before year end, we&amp;#39;re overdue. --Ryan&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:26 AM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;





&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;I&amp;#39;ll get a test case or two together before committing.  Do you have&lt;br&gt;
an idea of when the next release will be?&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;
Dale&lt;br&gt;
&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
On Thu, Dec 3, 2009 at 8:33 AM, Ryan Gustafson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi Dale,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Go ahead.  It may not be the most optimal tokenizer and might make mistakes&lt;br&gt;
&amp;gt; on occasion, but it&amp;#39;s passable like you say.  That was the idea I think&lt;br&gt;
&amp;gt; behind AbstractTokenizer.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; If you cannot get it on both 4.2.x branch and trunk let me know.  Also,&lt;br&gt;
&amp;gt; please make sure you have some minimal test cases.  As Romain points out&lt;br&gt;
&amp;gt; too, a small blurb in the changelog.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Ryan&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Thu, Dec 3, 2009 at 9:11 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Hi Ryan,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks for the help.  I ended up just copying the RubyLanguage and&lt;br&gt;
&amp;gt;&amp;gt; RubyTokenizer files, then editing them a little for javascript, and&lt;br&gt;
&amp;gt;&amp;gt; that seems to work surprisingly well.  I think I was expecting this to&lt;br&gt;
&amp;gt;&amp;gt; be more difficult.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Is it okay for me to check these in?&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; On Wed, Dec 2, 2009 at 11:34 PM, Ryan Gustafson&lt;br&gt;
&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Not that I&amp;#39;m aware of.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The purpose of a CPD tokenizer is really quite simple.  It&amp;#39;s the same as&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; lexer.  Break a stream of characters into blocks of characters (tokens)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; using the rules of the language.  CPD then looks for patterns in the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; token&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; sequences across source files (ie. cut-n-paste).  For example:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   while (true) {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;      System.exit();&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Would something like these tokens (totally contrived):&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    while&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    true&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    System.exit&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    ;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The tokenizer creates a sequence of TokenEntry objects which contain (a)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; text of the token, (b) the source file name, and (c) a line number.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; That&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; it.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The only special things some of the tokenizers do, is toss out tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; that&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; would not be meaningful for the purposes of CPD.  For example the tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; for&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; an import statement in Java are not really something you worry about&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; finding&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; copies of in different source files!&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; One could try using the TokenStream from Mozilla&amp;#39;s Rhino as a ready to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; go&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; tokenizer, but it seems to be package private.  A bit of cheating using&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Reflection APIs could likely break the Java access rules preventing&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; normal&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; usage.  Or just put your CPD tokenizer in the same package. :)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Good luck.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Ryan&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; On Thu, Dec 3, 2009 at 12:03 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Hi,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; I&amp;#39;m wondering if anyone is working on support for Javascript in CPD?&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; If not, does anyone have some pointers for writing it myself?  The&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; how-to page is a little weak :)  I&amp;#39;ve looked at the code for the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; existing supported languages, and I like the Ruby examples, but it&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; not clear to me what I need to define for a new tokenizer.  I&amp;#39;d&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; appreciate any help.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; ------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; a free event focused on virtualization and cloud computing.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Pmd-devel mailing list&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
------------------------------------------------------------------------------&lt;br&gt;
Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
a free event focused on virtualization and cloud computing.&lt;br&gt;
Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;------------------------------------------------------------------------------&lt;br&gt;
Return on Information:&lt;br&gt;
Google Enterprise Search pays you back&lt;br&gt;
Get the facts.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;div class=&quot;im&quot;&gt;&lt;br&gt;
&lt;br&gt;_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26712073&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Support-for-javascript-in-CPD--tp26621458p26712073.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26704612</id>
	<title>Re: Support for javascript in CPD?</title>
	<published>2009-12-08T19:26:28Z</published>
	<updated>2009-12-08T19:26:28Z</updated>
	<author>
		<name>Ryan Gustafson-3</name>
	</author>
	<content type="html">Update the sections talking about generic changes (i.e. no default numbers, or rulesets).  Put it immediate below the JSP parser changes I recently added.&lt;br&gt;&lt;br&gt;We need to come up with a story for the Javascript vs. Ecmascript naming issue.  I went with Ecmascript in on trunk when I added it as a new Language.&lt;br&gt;

&lt;br&gt;Ryan&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Tue, Dec 8, 2009 at 8:25 PM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;

I&amp;#39;ve committed the code to add javascript support to CPD to both the trunk and the 4.2.x branch.  I did not update the change log in either branch because it wasn&amp;#39;t clear to me where to add the change.&lt;br&gt;&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;

Dale&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:21 AM, Ryan Gustafson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;


Pretty soon, I&amp;#39;d say before year end, we&amp;#39;re overdue. --Ryan&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:26 AM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;




&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;I&amp;#39;ll get a test case or two together before committing.  Do you have&lt;br&gt;
an idea of when the next release will be?&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;
Dale&lt;br&gt;
&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
On Thu, Dec 3, 2009 at 8:33 AM, Ryan Gustafson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi Dale,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Go ahead.  It may not be the most optimal tokenizer and might make mistakes&lt;br&gt;
&amp;gt; on occasion, but it&amp;#39;s passable like you say.  That was the idea I think&lt;br&gt;
&amp;gt; behind AbstractTokenizer.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; If you cannot get it on both 4.2.x branch and trunk let me know.  Also,&lt;br&gt;
&amp;gt; please make sure you have some minimal test cases.  As Romain points out&lt;br&gt;
&amp;gt; too, a small blurb in the changelog.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Ryan&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Thu, Dec 3, 2009 at 9:11 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Hi Ryan,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks for the help.  I ended up just copying the RubyLanguage and&lt;br&gt;
&amp;gt;&amp;gt; RubyTokenizer files, then editing them a little for javascript, and&lt;br&gt;
&amp;gt;&amp;gt; that seems to work surprisingly well.  I think I was expecting this to&lt;br&gt;
&amp;gt;&amp;gt; be more difficult.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Is it okay for me to check these in?&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; On Wed, Dec 2, 2009 at 11:34 PM, Ryan Gustafson&lt;br&gt;
&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Not that I&amp;#39;m aware of.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The purpose of a CPD tokenizer is really quite simple.  It&amp;#39;s the same as&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; lexer.  Break a stream of characters into blocks of characters (tokens)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; using the rules of the language.  CPD then looks for patterns in the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; token&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; sequences across source files (ie. cut-n-paste).  For example:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   while (true) {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;      System.exit();&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Would something like these tokens (totally contrived):&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    while&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    true&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    System.exit&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    ;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The tokenizer creates a sequence of TokenEntry objects which contain (a)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; text of the token, (b) the source file name, and (c) a line number.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; That&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; it.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The only special things some of the tokenizers do, is toss out tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; that&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; would not be meaningful for the purposes of CPD.  For example the tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; for&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; an import statement in Java are not really something you worry about&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; finding&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; copies of in different source files!&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; One could try using the TokenStream from Mozilla&amp;#39;s Rhino as a ready to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; go&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; tokenizer, but it seems to be package private.  A bit of cheating using&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Reflection APIs could likely break the Java access rules preventing&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; normal&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; usage.  Or just put your CPD tokenizer in the same package. :)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Good luck.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Ryan&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; On Thu, Dec 3, 2009 at 12:03 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Hi,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; I&amp;#39;m wondering if anyone is working on support for Javascript in CPD?&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; If not, does anyone have some pointers for writing it myself?  The&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; how-to page is a little weak :)  I&amp;#39;ve looked at the code for the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; existing supported languages, and I like the Ruby examples, but it&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; not clear to me what I need to define for a new tokenizer.  I&amp;#39;d&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; appreciate any help.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; ------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; a free event focused on virtualization and cloud computing.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Pmd-devel mailing list&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
------------------------------------------------------------------------------&lt;br&gt;
Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
a free event focused on virtualization and cloud computing.&lt;br&gt;
Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br&gt;------------------------------------------------------------------------------&lt;br&gt;
Return on Information:&lt;br&gt;
Google Enterprise Search pays you back&lt;br&gt;
Get the facts.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;
&lt;br&gt;_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704612&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Support-for-javascript-in-CPD--tp26621458p26704612.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26704184</id>
	<title>Re: Support for javascript in CPD?</title>
	<published>2009-12-08T18:25:04Z</published>
	<updated>2009-12-08T18:25:04Z</updated>
	<author>
		<name>Dale Anson</name>
	</author>
	<content type="html">I&amp;#39;ve committed the code to add javascript support to CPD to both the trunk and the 4.2.x branch.  I did not update the change log in either branch because it wasn&amp;#39;t clear to me where to add the change.&lt;br&gt;&lt;br&gt;Dale&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:21 AM, Ryan Gustafson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;
Pretty soon, I&amp;#39;d say before year end, we&amp;#39;re overdue. --Ryan&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;h5&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;On Thu, Dec 3, 2009 at 10:26 AM, Dale Anson &lt;span dir=&quot;ltr&quot;&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt;&lt;/span&gt; wrote:&lt;br&gt;


&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;&quot;&gt;I&amp;#39;ll get a test case or two together before committing.  Do you have&lt;br&gt;
an idea of when the next release will be?&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;font color=&quot;#888888&quot;&gt;&lt;br&gt;
Dale&lt;br&gt;
&lt;/font&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
On Thu, Dec 3, 2009 at 8:33 AM, Ryan Gustafson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi Dale,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Go ahead.  It may not be the most optimal tokenizer and might make mistakes&lt;br&gt;
&amp;gt; on occasion, but it&amp;#39;s passable like you say.  That was the idea I think&lt;br&gt;
&amp;gt; behind AbstractTokenizer.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; If you cannot get it on both 4.2.x branch and trunk let me know.  Also,&lt;br&gt;
&amp;gt; please make sure you have some minimal test cases.  As Romain points out&lt;br&gt;
&amp;gt; too, a small blurb in the changelog.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Ryan&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; On Thu, Dec 3, 2009 at 9:11 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Hi Ryan,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks for the help.  I ended up just copying the RubyLanguage and&lt;br&gt;
&amp;gt;&amp;gt; RubyTokenizer files, then editing them a little for javascript, and&lt;br&gt;
&amp;gt;&amp;gt; that seems to work surprisingly well.  I think I was expecting this to&lt;br&gt;
&amp;gt;&amp;gt; be more difficult.&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Is it okay for me to check these in?&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; On Wed, Dec 2, 2009 at 11:34 PM, Ryan Gustafson&lt;br&gt;
&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ryan.gustafson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Not that I&amp;#39;m aware of.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The purpose of a CPD tokenizer is really quite simple.  It&amp;#39;s the same as&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; a&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; lexer.  Break a stream of characters into blocks of characters (tokens)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; using the rules of the language.  CPD then looks for patterns in the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; token&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; sequences across source files (ie. cut-n-paste).  For example:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   while (true) {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;      System.exit();&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;   }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Would something like these tokens (totally contrived):&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    while&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    true&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    {&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    System.exit&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    (&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    )&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    ;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;    }&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The tokenizer creates a sequence of TokenEntry objects which contain (a)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; text of the token, (b) the source file name, and (c) a line number.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; That&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; it.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; The only special things some of the tokenizers do, is toss out tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; that&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; would not be meaningful for the purposes of CPD.  For example the tokens&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; for&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; an import statement in Java are not really something you worry about&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; finding&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; copies of in different source files!&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; One could try using the TokenStream from Mozilla&amp;#39;s Rhino as a ready to&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; go&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; tokenizer, but it seems to be package private.  A bit of cheating using&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Reflection APIs could likely break the Java access rules preventing&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; normal&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; usage.  Or just put your CPD tokenizer in the same package. :)&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Good luck.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; Ryan&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt; On Thu, Dec 3, 2009 at 12:03 AM, Dale Anson &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;danson@...&lt;/a&gt;&amp;gt; wrote:&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Hi,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; I&amp;#39;m wondering if anyone is working on support for Javascript in CPD?&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; If not, does anyone have some pointers for writing it myself?  The&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; how-to page is a little weak :)  I&amp;#39;ve looked at the code for the&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; existing supported languages, and I like the Ruby examples, but it&amp;#39;s&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; not clear to me what I need to define for a new tokenizer.  I&amp;#39;d&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; appreciate any help.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thanks,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Dale&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; ------------------------------------------------------------------------------&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; a free event focused on virtualization and cloud computing.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; _______________________________________________&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; Pmd-devel mailing list&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&amp;gt; &amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;&lt;br&gt;
&lt;br&gt;
------------------------------------------------------------------------------&lt;br&gt;
Join us December 9, 2009 for the Red Hat Virtual Experience,&lt;br&gt;
a free event focused on virtualization and cloud computing.&lt;br&gt;
Attend in-depth sessions from your desk. Your couch. Anywhere.&lt;br&gt;
&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;
_______________________________________________&lt;br&gt;
Pmd-devel mailing list&lt;br&gt;
&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;
&lt;br /&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;&lt;br /&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704184&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Support-for-javascript-in-CPD--tp26621458p26704184.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26704167</id>
	<title>SF.net SVN: pmd:[7019] branches/pmd/4.2.x</title>
	<published>2009-12-08T18:22:56Z</published>
	<updated>2009-12-08T18:22:56Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7019
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7019&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7019&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 02:22:56 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Added javascript as a supported language for CPD.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Added: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;@@ -0,0 +1,64 @@
&lt;br&gt;+/**
&lt;br&gt;+* BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+*/
&lt;br&gt;+package test.net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import static org.junit.Assert.assertEquals;
&lt;br&gt;+import net.sourceforge.pmd.PMD;
&lt;br&gt;+import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;+
&lt;br&gt;+import org.junit.Test;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptTokenizerTest {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// no semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus()&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// same as getCode1, but lines are ended with semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode2() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus();&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Added: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;@@ -0,0 +1,11 @@
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ * @author Zev Blut &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704167&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;zb@...&lt;/a&gt;
&lt;br&gt;+ */
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;+	public JavascriptLanguage() {
&lt;br&gt;+		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;+	}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Added: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;@@ -0,0 +1,22 @@
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ */
&lt;br&gt;+public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\&amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable character' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter.add( &amp;quot;;&amp;quot; );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable string' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableStmt = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-09 02:05:38 UTC (rev 7018)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-09 02:22:56 UTC (rev 7019)
&lt;br&gt;@@ -7,7 +7,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;public class LanguageFactory {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot; };
&lt;br&gt;+ &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot;, &amp;quot;javascript&amp;quot; };
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static final String SUFFIX = &amp;quot;Language&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String EXTENSION = &amp;quot;extension&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String BY_EXTENSION = &amp;quot;by_extension&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704167&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7019--branches-pmd-4.2.x-tp26704167p26704167.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26704040</id>
	<title>SF.net SVN: pmd:[7018] trunk/pmd</title>
	<published>2009-12-08T18:05:38Z</published>
	<updated>2009-12-08T18:05:38Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7018
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7018&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7018&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-09 02:05:38 +0000 (Wed, 09 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Added javascript as a supported language for CPD.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;&lt;br&gt;Added: trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/cpd/JavascriptTokenizerTest.java	2009-12-09 02:05:38 UTC (rev 7018)
&lt;br&gt;@@ -0,0 +1,64 @@
&lt;br&gt;+/**
&lt;br&gt;+* BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+*/
&lt;br&gt;+package test.net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import static org.junit.Assert.assertEquals;
&lt;br&gt;+import net.sourceforge.pmd.PMD;
&lt;br&gt;+import net.sourceforge.pmd.cpd.JavascriptTokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.SourceCode;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokenizer;
&lt;br&gt;+import net.sourceforge.pmd.cpd.Tokens;
&lt;br&gt;+
&lt;br&gt;+import org.junit.Test;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptTokenizerTest {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test1() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer tokenizer = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode1() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tokenizer.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void test2() throws Throwable {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokenizer t = new JavascriptTokenizer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader( getCode2() ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Tokens tokens = new Tokens();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t.tokenize( sourceCode, tokens );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals( 22, tokens.size() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// no semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass')&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none'&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus()&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// same as getCode1, but lines are ended with semi-colons
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String getCode2() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;function switchToRealPassword() {&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var real = $('realPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; var prompt = $('promptPass');&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.style.display = 'inline';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; prompt.style.display = 'none';&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot; &amp;nbsp; real.focus();&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append( &amp;quot;}&amp;quot; ).append(PMD.EOL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sb.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter( JavascriptTokenizerTest.class );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Added: trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptLanguage.java	2009-12-09 02:05:38 UTC (rev 7018)
&lt;br&gt;@@ -0,0 +1,11 @@
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ * @author Zev Blut &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704040&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;zb@...&lt;/a&gt;
&lt;br&gt;+ */
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+public class JavascriptLanguage extends AbstractLanguage {
&lt;br&gt;+	public JavascriptLanguage() {
&lt;br&gt;+		super(new JavascriptTokenizer(), &amp;quot;.js&amp;quot;);
&lt;br&gt;+	}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Added: trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/JavascriptTokenizer.java	2009-12-09 02:05:38 UTC (rev 7018)
&lt;br&gt;@@ -0,0 +1,22 @@
&lt;br&gt;+package net.sourceforge.pmd.cpd;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * BSD-style license; for more info see &lt;a href=&quot;http://pmd.sourceforge.net/license.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/license.html&lt;/a&gt;&lt;br&gt;+ */
&lt;br&gt;+public class JavascriptTokenizer extends AbstractTokenizer {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public JavascriptTokenizer() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for &amp;quot;string&amp;quot; in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\'&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.stringToken.add( &amp;quot;\&amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable character' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableCharacter.add( &amp;quot;;&amp;quot; );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// setting markers for 'ignorable string' in javascript
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.ignorableStmt = new ArrayList&amp;lt;String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/cpd/LanguageFactory.java	2009-12-09 02:05:38 UTC (rev 7018)
&lt;br&gt;@@ -7,7 +7,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;public class LanguageFactory {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot; };
&lt;br&gt;+ &amp;nbsp; public static String[] supportedLanguages = new String[]{&amp;quot;java&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;cpp&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;ruby&amp;quot;,&amp;quot;fortran&amp;quot;, &amp;quot;javascript&amp;quot; };
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static final String SUFFIX = &amp;quot;Language&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String EXTENSION = &amp;quot;extension&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; public static final String BY_EXTENSION = &amp;quot;by_extension&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Return on Information:
&lt;br&gt;Google Enterprise Search pays you back
&lt;br&gt;Get the facts.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/google-dev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/google-dev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26704040&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7018--trunk-pmd-tp26704040p26704040.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26668689</id>
	<title>[ pmd-Bugs-2905035 ] 17% of PMD processing time is spent in ClassTypeResolver</title>
	<published>2009-12-06T12:28:55Z</published>
	<updated>2009-12-06T12:28:55Z</updated>
	<author>
		<name>SourceForge.net</name>
	</author>
	<content type="html">Bugs item #2905035, was opened at 2009-11-27 19:01
&lt;br&gt;Message generated for change (Comment added) made by fmallet
&lt;br&gt;You can respond by visiting: 
&lt;br&gt;&lt;a href=&quot;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&lt;/a&gt;&lt;br&gt;&lt;br&gt;Please note that this message will contain a full copy of the comment thread,
&lt;br&gt;including the initial issue submission, for this request,
&lt;br&gt;not just the latest update.
&lt;br&gt;Category: pmd
&lt;br&gt;Group: None
&lt;br&gt;Status: Closed
&lt;br&gt;Resolution: Rejected
&lt;br&gt;Priority: 5
&lt;br&gt;Private: No
&lt;br&gt;Submitted By: Freddy Mallet (fmallet)
&lt;br&gt;Assigned to: Ryan Gustafson (rgustav)
&lt;br&gt;Summary: 17% of PMD processing time is spent in ClassTypeResolver
&lt;br&gt;&lt;br&gt;Initial Comment:
&lt;br&gt;In the method net.sourceforge.pmd.typeresolution.ClassTypeResolver.populateType(...) &amp;nbsp;most of the time is spent trying to load class from the ClassLoader.
&lt;br&gt;&lt;br&gt;associated ticket : &lt;a href=&quot;http://jira.codehaus.org/browse/SONAR-1286&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/SONAR-1286&lt;/a&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Freddy Mallet (fmallet)
&lt;br&gt;Date: 2009-12-06 23:35
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Oups, my first comment was fired too quickly ...
&lt;br&gt;&lt;br&gt;So thanks Ryan for your previous very detailed answer. An intermediate
&lt;br&gt;solution could be to simply add a proxy method before the
&lt;br&gt;ClassLoader.loadClass(...) method in order to keep a hashmap of all
&lt;br&gt;nonexistent classes. This hashmap could be progressively fed each time the
&lt;br&gt;loadClass(...) method throws a ClassNotFoundException. I can't manage to
&lt;br&gt;figure out what would be the benefit of such solution but &amp;nbsp;...
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Freddy Mallet (fmallet)
&lt;br&gt;Date: 2009-12-06 23:20
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Thanks Ryan for this 
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Ryan Gustafson (rgustav)
&lt;br&gt;Date: 2009-12-02 02:27
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;On PreserveStackTrace I agree, and Romain knows about it now. &amp;nbsp;It's very
&lt;br&gt;easy to use XPath with crappy performance. &amp;nbsp;PMD performs much better now
&lt;br&gt;than it did in the past due improvements made in handling of XPath rules,
&lt;br&gt;but those improvements do not work on custom Java rules calling out to
&lt;br&gt;XPath.
&lt;br&gt;&lt;br&gt;As for Type Resolution, it works by probing the classpath to see if it can
&lt;br&gt;find a Class for a name in the code. &amp;nbsp;This is done by going to a
&lt;br&gt;ClassLoader and calling 'loadClass'. &amp;nbsp;Having many glob imports (i.e. import
&lt;br&gt;foo.bar.*) means we sometimes ask the class loader multiple times on
&lt;br&gt;different on possible package names. &amp;nbsp;Further, we are dependent upon the
&lt;br&gt;speed by which a ClassLoader can answer the question. &amp;nbsp;I'm not horribly
&lt;br&gt;surprised that the more JARs you add the longer it takes for Maven to
&lt;br&gt;determine the answer. &amp;nbsp;Generally the ClassLoaders take longer to say
&lt;br&gt;ClassNotFoundException than they do to return an actual class (anecdotally
&lt;br&gt;up to 5-10x longer). &amp;nbsp;Likely because they don't store negative entries,
&lt;br&gt;they only track real Classes.
&lt;br&gt;&lt;br&gt;Last evening I tried writing a smarter ClassLoader for use by PMD that can
&lt;br&gt;scan the entire classpath to determine all possible classes by name. &amp;nbsp;In
&lt;br&gt;the hopes never asking the real/parent ClassLoader for a non-existent
&lt;br&gt;class. &amp;nbsp;I had a gain in performance on the Type Resolution phase, but paid
&lt;br&gt;extra to scan the classpath. &amp;nbsp;For my test case they balanced out. &amp;nbsp;However,
&lt;br&gt;for a huge code base I imagine it could be a good win. &amp;nbsp;Scanning is done
&lt;br&gt;once. &amp;nbsp;The TR phase occurs once per file.
&lt;br&gt;&lt;br&gt;For performance testing, I generally run every Rule against the PMD
&lt;br&gt;source. &amp;nbsp;I also try the Hibernate source on occasion. &amp;nbsp;Others sometime run
&lt;br&gt;against the Java source, which I should start doing.
&lt;br&gt;&lt;br&gt;If you can provide a concrete performance regression, or example which
&lt;br&gt;demonstrates bad performance, I can look into it. &amp;nbsp;But TR takes some time,
&lt;br&gt;and it always will, we can only hope to lessen it somewhat.
&lt;br&gt;&lt;br&gt;For reference, TR was first turned on by default for PMD 4.1 if I'm
&lt;br&gt;reading the file history correctly.
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Freddy Mallet (fmallet)
&lt;br&gt;Date: 2009-12-01 23:48
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Ok Ryan, you're right and your message has been perfectly received ... but
&lt;br&gt;I'm fully convinced that there is an important performance bottlenecks here
&lt;br&gt;and on the PreserveStackTrace rule. So I need to understand what is your
&lt;br&gt;performance benchmark environment to give you some usable profiling
&lt;br&gt;information.
&lt;br&gt;&lt;br&gt;On my side, each time we release a new version of
&lt;br&gt;&lt;a href=&quot;http://sonar.codehaus.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://sonar.codehaus.org&lt;/a&gt;, I'm in charge to execute the performance
&lt;br&gt;non-regression tests. I'm always doing this on the same sources with the
&lt;br&gt;same quality profile (set of checkstyle and PMD rules) to be able to
&lt;br&gt;compare results. To do this, we've arbitrary chosen STRUTS 1.2.9.
&lt;br&gt;&lt;br&gt;Do you have such kind of reference : sources + set of rules ? 
&lt;br&gt;&lt;br&gt;FYI, I'm testing PMD through Maven and my feeling is that the problem with
&lt;br&gt;the ClassTypeResolver is increasing each time you add a new Maven
&lt;br&gt;dependencies, that is to say a new jar in the classpath.
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Ryan Gustafson (rgustav)
&lt;br&gt;Date: 2009-11-30 12:43
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Insufficient details, so closing. &amp;nbsp;You can reopen when you provide more.
&lt;br&gt;&lt;br&gt;This is nothing I can use. &amp;nbsp;The classloading during type resolution is a
&lt;br&gt;known part of the processing time, but in my testing is comparable to the
&lt;br&gt;parser overhead. &amp;nbsp;Provide me something I can reproduce and some real
&lt;br&gt;numbers. &amp;nbsp;If we're splitting hairs here on a 1 second total runtime, big
&lt;br&gt;deal. &amp;nbsp;I'd be much more interested in things that are measured in minutes.
&lt;br&gt;&lt;br&gt;FYI, if I check the PMD source code using every Java rule there is, it
&lt;br&gt;takes about 25 seconds, of which 2.5 seconds are spent in Type Resolution,
&lt;br&gt;more than 75% of the time is spent in the Rules. &amp;nbsp;This is as measure using
&lt;br&gt;the -benchmark option from the command line.
&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;You can respond by visiting: 
&lt;br&gt;&lt;a href=&quot;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26668689&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/--pmd-Bugs-2905035---17--of-PMD-processing-time-is-spent-in-ClassTypeResolver-tp26668689p26668689.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26668545</id>
	<title>[ pmd-Bugs-2905035 ] 17% of PMD processing time is spent in ClassTypeResolver</title>
	<published>2009-12-06T12:13:08Z</published>
	<updated>2009-12-06T12:13:08Z</updated>
	<author>
		<name>SourceForge.net</name>
	</author>
	<content type="html">Bugs item #2905035, was opened at 2009-11-27 19:01
&lt;br&gt;Message generated for change (Comment added) made by fmallet
&lt;br&gt;You can respond by visiting: 
&lt;br&gt;&lt;a href=&quot;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&lt;/a&gt;&lt;br&gt;&lt;br&gt;Please note that this message will contain a full copy of the comment thread,
&lt;br&gt;including the initial issue submission, for this request,
&lt;br&gt;not just the latest update.
&lt;br&gt;Category: pmd
&lt;br&gt;Group: None
&lt;br&gt;Status: Closed
&lt;br&gt;Resolution: Rejected
&lt;br&gt;Priority: 5
&lt;br&gt;Private: No
&lt;br&gt;Submitted By: Freddy Mallet (fmallet)
&lt;br&gt;Assigned to: Ryan Gustafson (rgustav)
&lt;br&gt;Summary: 17% of PMD processing time is spent in ClassTypeResolver
&lt;br&gt;&lt;br&gt;Initial Comment:
&lt;br&gt;In the method net.sourceforge.pmd.typeresolution.ClassTypeResolver.populateType(...) &amp;nbsp;most of the time is spent trying to load class from the ClassLoader.
&lt;br&gt;&lt;br&gt;associated ticket : &lt;a href=&quot;http://jira.codehaus.org/browse/SONAR-1286&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jira.codehaus.org/browse/SONAR-1286&lt;/a&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Freddy Mallet (fmallet)
&lt;br&gt;Date: 2009-12-06 23:20
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Thanks Ryan for this 
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Ryan Gustafson (rgustav)
&lt;br&gt;Date: 2009-12-02 02:27
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;On PreserveStackTrace I agree, and Romain knows about it now. &amp;nbsp;It's very
&lt;br&gt;easy to use XPath with crappy performance. &amp;nbsp;PMD performs much better now
&lt;br&gt;than it did in the past due improvements made in handling of XPath rules,
&lt;br&gt;but those improvements do not work on custom Java rules calling out to
&lt;br&gt;XPath.
&lt;br&gt;&lt;br&gt;As for Type Resolution, it works by probing the classpath to see if it can
&lt;br&gt;find a Class for a name in the code. &amp;nbsp;This is done by going to a
&lt;br&gt;ClassLoader and calling 'loadClass'. &amp;nbsp;Having many glob imports (i.e. import
&lt;br&gt;foo.bar.*) means we sometimes ask the class loader multiple times on
&lt;br&gt;different on possible package names. &amp;nbsp;Further, we are dependent upon the
&lt;br&gt;speed by which a ClassLoader can answer the question. &amp;nbsp;I'm not horribly
&lt;br&gt;surprised that the more JARs you add the longer it takes for Maven to
&lt;br&gt;determine the answer. &amp;nbsp;Generally the ClassLoaders take longer to say
&lt;br&gt;ClassNotFoundException than they do to return an actual class (anecdotally
&lt;br&gt;up to 5-10x longer). &amp;nbsp;Likely because they don't store negative entries,
&lt;br&gt;they only track real Classes.
&lt;br&gt;&lt;br&gt;Last evening I tried writing a smarter ClassLoader for use by PMD that can
&lt;br&gt;scan the entire classpath to determine all possible classes by name. &amp;nbsp;In
&lt;br&gt;the hopes never asking the real/parent ClassLoader for a non-existent
&lt;br&gt;class. &amp;nbsp;I had a gain in performance on the Type Resolution phase, but paid
&lt;br&gt;extra to scan the classpath. &amp;nbsp;For my test case they balanced out. &amp;nbsp;However,
&lt;br&gt;for a huge code base I imagine it could be a good win. &amp;nbsp;Scanning is done
&lt;br&gt;once. &amp;nbsp;The TR phase occurs once per file.
&lt;br&gt;&lt;br&gt;For performance testing, I generally run every Rule against the PMD
&lt;br&gt;source. &amp;nbsp;I also try the Hibernate source on occasion. &amp;nbsp;Others sometime run
&lt;br&gt;against the Java source, which I should start doing.
&lt;br&gt;&lt;br&gt;If you can provide a concrete performance regression, or example which
&lt;br&gt;demonstrates bad performance, I can look into it. &amp;nbsp;But TR takes some time,
&lt;br&gt;and it always will, we can only hope to lessen it somewhat.
&lt;br&gt;&lt;br&gt;For reference, TR was first turned on by default for PMD 4.1 if I'm
&lt;br&gt;reading the file history correctly.
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Freddy Mallet (fmallet)
&lt;br&gt;Date: 2009-12-01 23:48
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Ok Ryan, you're right and your message has been perfectly received ... but
&lt;br&gt;I'm fully convinced that there is an important performance bottlenecks here
&lt;br&gt;and on the PreserveStackTrace rule. So I need to understand what is your
&lt;br&gt;performance benchmark environment to give you some usable profiling
&lt;br&gt;information.
&lt;br&gt;&lt;br&gt;On my side, each time we release a new version of
&lt;br&gt;&lt;a href=&quot;http://sonar.codehaus.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://sonar.codehaus.org&lt;/a&gt;, I'm in charge to execute the performance
&lt;br&gt;non-regression tests. I'm always doing this on the same sources with the
&lt;br&gt;same quality profile (set of checkstyle and PMD rules) to be able to
&lt;br&gt;compare results. To do this, we've arbitrary chosen STRUTS 1.2.9.
&lt;br&gt;&lt;br&gt;Do you have such kind of reference : sources + set of rules ? 
&lt;br&gt;&lt;br&gt;FYI, I'm testing PMD through Maven and my feeling is that the problem with
&lt;br&gt;the ClassTypeResolver is increasing each time you add a new Maven
&lt;br&gt;dependencies, that is to say a new jar in the classpath.
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Ryan Gustafson (rgustav)
&lt;br&gt;Date: 2009-11-30 12:43
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Insufficient details, so closing. &amp;nbsp;You can reopen when you provide more.
&lt;br&gt;&lt;br&gt;This is nothing I can use. &amp;nbsp;The classloading during type resolution is a
&lt;br&gt;known part of the processing time, but in my testing is comparable to the
&lt;br&gt;parser overhead. &amp;nbsp;Provide me something I can reproduce and some real
&lt;br&gt;numbers. &amp;nbsp;If we're splitting hairs here on a 1 second total runtime, big
&lt;br&gt;deal. &amp;nbsp;I'd be much more interested in things that are measured in minutes.
&lt;br&gt;&lt;br&gt;FYI, if I check the PMD source code using every Java rule there is, it
&lt;br&gt;takes about 25 seconds, of which 2.5 seconds are spent in Type Resolution,
&lt;br&gt;more than 75% of the time is spent in the Rules. &amp;nbsp;This is as measure using
&lt;br&gt;the -benchmark option from the command line.
&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;You can respond by visiting: 
&lt;br&gt;&lt;a href=&quot;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=2905035&amp;group_id=56262&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26668545&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/--pmd-Bugs-2905035---17--of-PMD-processing-time-is-spent-in-ClassTypeResolver-tp26668545p26668545.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26660240</id>
	<title>SF.net SVN: pmd:[7017] trunk/pmd</title>
	<published>2009-12-05T14:51:55Z</published>
	<updated>2009-12-05T14:51:55Z</updated>
	<author>
		<name>rgustav</name>
	</author>
	<content type="html">Revision: 7017
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7017&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7017&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rgustav
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-05 22:51:55 +0000 (Sat, 05 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Add support for Unicode for JSP/JSF.
&lt;br&gt;Add support to not parse body of &amp;lt;script&amp;gt; for JSP/JSF.
&lt;br&gt;Add new NoInlineScript rule for JSP/JSF.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/build.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/etc/changelog.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/etc/grammar/JspParser.jjt
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/rulesets/jsp/basic.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/JspParser.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParser.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTreeConstants.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/rule/AbstractJspRule.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/build.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/build.xml	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/build.xml	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -409,7 +409,7 @@
&lt;br&gt;&amp;nbsp;		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast/ParseException.java&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;jjtree target=&amp;quot;etc/grammar/JspParser.jjt&amp;quot; outputdirectory=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast/&amp;quot; javacchome=&amp;quot;${javacc-home.path}&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;!-- Ensure generated using CharStream interface --&amp;gt;
&lt;br&gt;-		&amp;lt;javacc static=&amp;quot;false&amp;quot; usercharstream=&amp;quot;true&amp;quot; target=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast/JspParser.jj&amp;quot; outputdirectory=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast&amp;quot; javacchome=&amp;quot;${javacc-home.path}&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;javacc static=&amp;quot;false&amp;quot; usercharstream=&amp;quot;true&amp;quot; unicodeinput=&amp;quot;true&amp;quot; javaunicodeescape=&amp;quot;false&amp;quot; target=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast/JspParser.jj&amp;quot; outputdirectory=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast&amp;quot; javacchome=&amp;quot;${javacc-home.path}&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast/JspParser.jj&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast/Node.java&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/lang/jsp/ast/SimpleNode.java&amp;quot; /&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/etc/changelog.txt	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/etc/changelog.txt	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -472,6 +472,8 @@
&lt;br&gt;&amp;nbsp;The JSP RuleSets are now in the 'jsp' language, and are 'jsp-basic', 'jsp-basic-jsf', 'rulesets/jsp/basic.xml' and 'rulesets/jsp/basic-jsp.xml'
&lt;br&gt;&amp;nbsp;Enhanced logging in the ClassTypeResolver to provide more detailed messaging.
&lt;br&gt;&amp;nbsp;AvoidUsingHardCodedIP modified to not use InetAddress.getByName(String), instead does better pattern analysis.
&lt;br&gt;+The JSP/JSF parser can now parse Unicode input.
&lt;br&gt;+The JSP/JSP parser can now handle &amp;lt;script&amp;gt;...&amp;lt;/script&amp;gt; tags. &amp;nbsp;The AST HtmlScript node contains the content.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;New Java rules:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -490,6 +492,9 @@
&lt;br&gt;&amp;nbsp;New Java ruleset:
&lt;br&gt;&amp;nbsp;	android.xml: new rules specific to the Android platform
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+New JSP rules:
&lt;br&gt;+	Basic ruleset: NoInlineScript
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;New ECMAScript rules:
&lt;br&gt;&amp;nbsp;	Basic ruleset: AssignmentInOperand,ConsistentReturn,InnaccurateNumericLiteral,UnreachableCode
&lt;br&gt;&amp;nbsp;	Braces ruleset: ForLoopsMustUseBraces,IfStmtsMustUseBraces,IfElseStmtsMustUseBraces,WhileLoopsMustUseBraces
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/etc/grammar/JspParser.jjt
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/etc/grammar/JspParser.jjt	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/etc/grammar/JspParser.jjt	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -3,11 +3,13 @@
&lt;br&gt;&amp;nbsp; * The JSP Document style is supported, except for inline DTD.
&lt;br&gt;&amp;nbsp; * The JSP Page style (&amp;lt;% ... %&amp;gt;) is supported.
&lt;br&gt;&amp;nbsp; * Java code is not parsed.
&lt;br&gt;+ * Script code inside &amp;lt;script&amp;gt; ... &amp;lt;/script&amp;gt; is not parsed.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;options { 
&lt;br&gt;&amp;nbsp;	USER_CHAR_STREAM = true;
&lt;br&gt;&amp;nbsp;	NODE_USES_PARSER=true;
&lt;br&gt;+	UNICODE_INPUT=true;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;
&lt;br&gt;&amp;nbsp;	IGNORE_CASE = true; 
&lt;br&gt;&amp;nbsp;	STATIC = false; 
&lt;br&gt;@@ -80,6 +82,7 @@
&lt;br&gt;&amp;nbsp; * - JspExpressionState : inside an expression &amp;lt;%= ... %&amp;gt;
&lt;br&gt;&amp;nbsp; * - JspDeclarationState : inside a declaration &amp;lt;%! ... %&amp;gt;
&lt;br&gt;&amp;nbsp; * - JspCommentState : inside a comment &amp;lt;%-- ... --%&amp;gt;
&lt;br&gt;+ * - HtmlScriptContentState : inside an HTML script &amp;lt;script&amp;gt; ... &amp;lt;/script&amp;gt;
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -265,6 +268,18 @@
&lt;br&gt;&amp;nbsp;| &amp;lt; COMMENT_TEXT: (~[]) &amp;gt;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+&amp;lt;HtmlScriptContentState&amp;gt; TOKEN :
&lt;br&gt;+{
&lt;br&gt;+	&amp;lt;HTML_SCRIPT_CONTENT: (~[]) &amp;gt;
&lt;br&gt;+	| &amp;lt;HTML_SCRIPT_END_TAG : &amp;quot;&amp;lt;/script&amp;quot; | &amp;quot;&amp;lt;/Script&amp;quot; | &amp;quot;&amp;lt;/SCRIPT&amp;quot;&amp;gt;
&lt;br&gt;+	{
&lt;br&gt;+		// We've done a custom lookahead for the closing &amp;lt;/script&amp;gt; and found it.
&lt;br&gt;+		// Put it back into the input stream, so it can be processed normally.
&lt;br&gt;+		input_stream.backup(8);
&lt;br&gt;+		image.setLength(image.length() - 8); // kill the &amp;quot;&amp;lt;script&amp;quot;
&lt;br&gt;+		matchedToken.image = image.toString();
&lt;br&gt;+	} : AfterTagState
&lt;br&gt;+}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/** ******************************************************************** */
&lt;br&gt;&amp;nbsp;/** ************************* &amp;nbsp;JSP GRAMMAR &amp;nbsp;**************************** */
&lt;br&gt;@@ -500,9 +515,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;(Attribute())*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;( 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	(&amp;lt;TAG_END&amp;gt; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;		{ jjtThis.setEmpty(false); }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;			jjtThis.setEmpty(false);
&lt;br&gt;+
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// Content in a &amp;lt;script&amp;gt; element needs special treatment (like a comment or CDataSection).
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// Tell the TokenManager to start looking for the body of a script element. &amp;nbsp;In this
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// state all text will be consumed by the next token up to the closing &amp;lt;/script&amp;gt; tag.
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// This is a context sensitive switch for the token manager, not something one can
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// express using normal JavaCC syntax. &amp;nbsp;Hence the hoop jumping.
&lt;br&gt;+				if (&amp;quot;script&amp;quot;.equalsIgnoreCase(startTagName.image)) {
&lt;br&gt;+					token_source.SwitchTo(HtmlScriptContentState);
&lt;br&gt;+				}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	(Content())? 
&lt;br&gt;+ &amp;nbsp; 		(HtmlScript() | Content())?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	&amp;lt;ENDTAG_START&amp;gt; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	endTagName = &amp;lt;TAG_NAME&amp;gt; 
&lt;br&gt;@@ -647,3 +673,16 @@
&lt;br&gt;&amp;nbsp;				{ jjtThis.setUri(quoteContent(systemLiteral.image)); }
&lt;br&gt;&amp;nbsp;		)
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+void HtmlScript() :
&lt;br&gt;+{
&lt;br&gt;+	StringBuffer content = new StringBuffer();
&lt;br&gt;+	Token t;
&lt;br&gt;+}
&lt;br&gt;+{
&lt;br&gt;+	(t = &amp;lt;HTML_SCRIPT_CONTENT&amp;gt; &amp;nbsp;{ content.append(t.image); })*
&lt;br&gt;+	&amp;lt;HTML_SCRIPT_END_TAG&amp;gt;
&lt;br&gt;+		{
&lt;br&gt;+			jjtThis.setImage(content.toString().trim());
&lt;br&gt;+		}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -15,6 +15,7 @@
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.jsp.ast.ASTDoctypeDeclaration;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.jsp.ast.ASTDoctypeExternalId;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.jsp.ast.ASTElement;
&lt;br&gt;+import net.sourceforge.pmd.lang.jsp.ast.ASTHtmlScript;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.junit.Test;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;@@ -158,6 +159,17 @@
&lt;br&gt;&amp;nbsp;		assertEquals(&amp;quot;Correct comment content expected!&amp;quot;, &amp;quot;comment&amp;quot;, comment.getImage());
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Test parsing of HTML &amp;lt;script&amp;gt; element.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testHtmlScript() {
&lt;br&gt;+	Set scripts = getNodes(ASTHtmlScript.class, TEST_HTML_SCRIPT);
&lt;br&gt;+	assertEquals(&amp;quot;One script expected!&amp;quot;, 1, scripts.size());
&lt;br&gt;+	ASTHtmlScript script = (ASTHtmlScript) scripts.iterator().next();
&lt;br&gt;+	assertEquals(&amp;quot;Correct script content expected!&amp;quot;, &amp;quot;Script!&amp;quot;, script.getImage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;	private static final String TEST_SIMPLEST_HTML = &amp;quot;&amp;lt;html/&amp;gt;&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	private static final String TEST_ELEMENT_AND_NAMESPACE = &amp;quot;&amp;lt;h:html MyNsPrefix:MyAttr='MyValue'/&amp;gt;&amp;quot;;
&lt;br&gt;@@ -174,6 +186,9 @@
&lt;br&gt;&amp;nbsp;	private static final String TEST_ATTRIBUTE_VALUE_CONTAINING_HASH =
&lt;br&gt;&amp;nbsp;		&amp;quot;&amp;lt;tag:if something=\&amp;quot;#yes#\&amp;quot; foo=\&amp;quot;CREATE\&amp;quot;&amp;gt; &amp;nbsp;&amp;lt;a href=\&amp;quot;#\&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt; &amp;lt;/tag:if&amp;gt;&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+	private static final String TEST_HTML_SCRIPT =
&lt;br&gt;+		&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script&amp;gt;Script!&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter(JspDocStyleTest.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -18,6 +18,7 @@
&lt;br&gt;&amp;nbsp;	addRule(RULESET, &amp;quot;JspEncoding&amp;quot;);
&lt;br&gt;&amp;nbsp;	addRule(RULESET, &amp;quot;NoClassAttribute&amp;quot;);
&lt;br&gt;&amp;nbsp;	addRule(RULESET, &amp;quot;NoHtmlComments&amp;quot;);
&lt;br&gt;+	addRule(RULESET, &amp;quot;NoInlineScript&amp;quot;);
&lt;br&gt;&amp;nbsp;	addRule(RULESET, &amp;quot;NoInlineStyleInformation&amp;quot;);
&lt;br&gt;&amp;nbsp;	addRule(RULESET, &amp;quot;NoJspForward&amp;quot;);
&lt;br&gt;&amp;nbsp;	addRule(RULESET, &amp;quot;NoLongScripts&amp;quot;);
&lt;br&gt;&lt;br&gt;Added: trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -0,0 +1,53 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;test-data&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+A violation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script&amp;gt;Some script&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+A violation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script src=&amp;quot;script location&amp;quot;&amp;gt;Some script&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+Ok, no 'src' with empty body.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+Ok, only 'src' with empty whitespace body.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script src=&amp;quot;script location&amp;quot;&amp;gt; &amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+Ok, only 'src' without body.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script src=&amp;quot;script location&amp;quot;/&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+&amp;lt;/test-data&amp;gt;
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/rulesets/jsp/basic.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/rulesets/jsp/basic.xml	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/rulesets/jsp/basic.xml	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -262,4 +262,36 @@
&lt;br&gt;&amp;nbsp;		&amp;lt;/example&amp;gt;
&lt;br&gt;&amp;nbsp;	&amp;lt;/rule&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;rule
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;name=&amp;quot;NoInlineScript&amp;quot; language=&amp;quot;jsp&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;class=&amp;quot;net.sourceforge.pmd.lang.rule.XPathRule&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;message=&amp;quot;Avoiding inlining HTML script content&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;externalInfoUrl=&amp;quot;&lt;a href=&quot;http://pmd.sourceforge.net/rules/basic-jsp.html#NoInlineScript&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/rules/basic-jsp.html#NoInlineScript&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+Avoid inlining HTML script content. &amp;nbsp;Consider externalizing the HTML script using the 'src' attribute on the &amp;lt;script&amp;gt; element.
&lt;br&gt;+Externalized script could be reused between pages. &amp;nbsp;Browsers can also cache the script, reducing overall download bandwidth.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;priority&amp;gt;3&amp;lt;/priority&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;xpath&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+//HtmlScript[@Image != '']
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Most browsers should be able to interpret the following headers:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;%@ page contentType=&amp;quot;text/html; charset=UTF-8&amp;quot; pageEncoding=&amp;quot;UTF-8&amp;quot; %&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot;  content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;/ruleset&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/lang/jsp/JspParser.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/lang/jsp/JspParser.java	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/lang/jsp/JspParser.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -10,15 +10,16 @@
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.AbstractParser;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.TokenManager;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.ast.AbstractTokenManager;
&lt;br&gt;-import net.sourceforge.pmd.lang.ast.JavaCharStream;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.ast.Node;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.lang.ast.ParseException;
&lt;br&gt;+import net.sourceforge.pmd.lang.ast.SimpleCharStream;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Adapter for the JspParser.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;public class JspParser extends AbstractParser {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public TokenManager createTokenManager(Reader source) {
&lt;br&gt;&amp;nbsp;	return new JspTokenManager(source);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -29,7 +30,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Node parse(String fileName, Reader source) throws ParseException {
&lt;br&gt;&amp;nbsp;	AbstractTokenManager.setFileName(fileName);
&lt;br&gt;-	return new net.sourceforge.pmd.lang.jsp.ast.JspParser(new JavaCharStream(source)).CompilationUnit();
&lt;br&gt;+	return new net.sourceforge.pmd.lang.jsp.ast.JspParser(new SimpleCharStream(source)).CompilationUnit();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Map&amp;lt;Integer, String&amp;gt; getSuppressMap() {
&lt;br&gt;&lt;br&gt;Added: trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -0,0 +1,19 @@
&lt;br&gt;+/* Generated By:JJTree: Do not edit this line. ASTHtmlScript.java Version 4.1 */
&lt;br&gt;+/* JavaCCOptions:MULTI=true,NODE_USES_PARSER=true,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=AST,NODE_EXTENDS=,NODE_FACTORY= */
&lt;br&gt;+package net.sourceforge.pmd.lang.jsp.ast;
&lt;br&gt;+
&lt;br&gt;+public class ASTHtmlScript extends AbstractJspNode {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ASTHtmlScript(int id) {
&lt;br&gt;+	super(id);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ASTHtmlScript(JspParser p, int id) {
&lt;br&gt;+	super(p, id);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/** Accept the visitor. **/
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Override
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Object jjtAccept(JspParserVisitor visitor, Object data) {
&lt;br&gt;+	return visitor.visit(this, data);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParser.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParser.java	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParser.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -630,7 +630,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case TAG_END:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(TAG_END);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setEmpty(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setEmpty(false);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Content in a &amp;lt;script&amp;gt; element needs special treatment (like a comment or CDataSection).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Tell the TokenManager to start looking for the body of a script element. &amp;nbsp;In this
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// state all text will be consumed by the next token up to the closing &amp;lt;/script&amp;gt; tag.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// This is a context sensitive switch for the token manager, not something one can
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// express using normal JavaCC syntax. &amp;nbsp;Hence the hoop jumping.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;script&amp;quot;.equalsIgnoreCase(startTagName.image)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;token_source.SwitchTo(HtmlScriptContentState);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case TAG_START:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case COMMENT_START:
&lt;br&gt;@@ -642,10 +651,33 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_DIRECTIVE_START:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case EL_EXPRESSION:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case UNPARSED_TEXT:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Content();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_CONTENT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_END_TAG:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_CONTENT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_END_TAG:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HtmlScript();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case TAG_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case COMMENT_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case CDATA_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_COMMENT_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_DECLARATION_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_EXPRESSION_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_SCRIPTLET_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_DIRECTIVE_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case EL_EXPRESSION:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case UNPARSED_TEXT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Content();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[13] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[13] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[14] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(ENDTAG_START);
&lt;br&gt;@@ -666,7 +698,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setEmpty(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[14] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[15] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -748,7 +780,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[15] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[16] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_8;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;@@ -761,7 +793,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp = QuoteIndependentAttributeValueContent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[16] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[17] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -776,7 +808,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;content.append(t.image.substring(0, 1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[17] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[18] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -793,7 +825,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[18] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[19] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_9;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;@@ -806,7 +838,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp = QuoteIndependentAttributeValueContent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[19] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[20] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -821,13 +853,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content.append(t.image.substring(0, 1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[20] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[21] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[21] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[22] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -872,7 +904,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp = JspExpressionInAttribute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[22] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[23] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -914,7 +946,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[23] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[24] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_10;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t = jj_consume_token(COMMENT_TEXT);
&lt;br&gt;@@ -947,7 +979,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[24] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[25] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_11;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Attribute();
&lt;br&gt;@@ -989,7 +1021,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(WHITESPACES);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[25] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[26] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;@@ -1001,12 +1033,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(WHITESPACES);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[26] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[27] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[27] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[28] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(DOCTYPE_DECL_END);
&lt;br&gt;@@ -1059,7 +1091,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setUri(quoteContent(systemLiteral.image));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[28] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[29] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1070,6 +1102,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;final public void HtmlScript() throws ParseException {
&lt;br&gt;+ /*@bgen(jjtree) HtmlScript */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASTHtmlScript jjtn000 = new ASTHtmlScript(this, JJTHTMLSCRIPT);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean jjtc000 = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.openNodeScope(jjtn000);StringBuffer content = new StringBuffer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Token t;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;label_12:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_CONTENT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[30] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_12;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t = jj_consume_token(HTML_SCRIPT_CONTENT);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;content.append(t.image);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(HTML_SCRIPT_END_TAG);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.closeNodeScope(jjtn000, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtc000 = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setImage(content.toString().trim());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjtc000) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.closeNodeScope(jjtn000, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_2_1(int xla) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la = xla; jj_lastpos = jj_scanpos = token;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;try { return !jj_3_1(); }
&lt;br&gt;@@ -1084,102 +1147,79 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;finally { jj_save(1, xla); }
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_30() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOUBLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_22() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_26()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_32()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(72)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_33()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_29() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(PUBLIC)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_16() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_START)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_47() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(VALUE_BINDING_IN_ATTRIBUTE)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_27() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(NAME)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_30()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_31()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_22()) jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_3R_25() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_28()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_29()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_NAME)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_EQ)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_28()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_28() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(SYSTEM)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_41() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_DOUBLE_QUOTES)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_21() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_19() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_25()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_40() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_DOUBLE_QUOTES)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_14() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_START)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(TAG_NAME)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_19()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_15() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(NAME)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_21()) jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_21() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_24()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_24() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_NAME)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_EQ)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_27()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_43() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_SINGLE_QUOTES)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_20() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_27() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_TEXT)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_42() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_SINGLE_QUOTES)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_23() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_START)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_27()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1188,51 +1228,43 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_13() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(TAG_NAME)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_18()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_49() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_17() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_46() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_49()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_26() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_TEXT)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_45() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_48()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_19() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_22()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_44() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_47()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_14() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_20() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_15() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_19()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_20()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_20()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_21()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_22() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_26()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_40() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_42()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1240,147 +1272,178 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_14()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_15()) { jj_scanpos = xsp; break; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_15()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_16()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_12() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_36() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_SINGLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_13() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_16()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_17()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_17()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_18()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_16() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_22()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_17() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_48() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_39() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_43()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_45() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_48()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_34() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_DOUBLE_QUOTE)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3_1() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_42() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_12()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_44()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_45()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_46()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_13()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_44() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_47()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_35() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_39()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_40()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_43() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_46()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3_1() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_13()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_14()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_39() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_41()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_35() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_SINGLE_QUOTE)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_3R_38() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_42()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_33() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_DOUBLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_37() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_41()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_41() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_33() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_43()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_37()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_44()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_45()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_38()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_34() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_32() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(SINGLE_QUOTE)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_35()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_38()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(69)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_39()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_36()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_37() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_41()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_24() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_START)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_CONTENT)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_36() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_40()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_31() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOUBLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_33()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(72)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_34()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_23() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_CONTENT)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_30() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(PUBLIC)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_32() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_47() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(EL_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_28() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_36()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_31()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_37()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_32()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_31() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(SINGLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_26() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_34()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(69)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_29()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_35()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_30()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_46() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(EL_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_29() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(SYSTEM)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_48() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(VALUE_BINDING_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Generated Token Manager. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;public JspParserTokenManager token_source;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Current token. */
&lt;br&gt;@@ -1391,7 +1454,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;private Token jj_scanpos, jj_lastpos;
&lt;br&gt;&amp;nbsp; &amp;nbsp;private int jj_la;
&lt;br&gt;&amp;nbsp; &amp;nbsp;private int jj_gen;
&lt;br&gt;- &amp;nbsp;final private int[] jj_la1 = new int[29];
&lt;br&gt;+ &amp;nbsp;final private int[] jj_la1 = new int[31];
&lt;br&gt;&amp;nbsp; &amp;nbsp;static private int[] jj_la1_0;
&lt;br&gt;&amp;nbsp; &amp;nbsp;static private int[] jj_la1_1;
&lt;br&gt;&amp;nbsp; &amp;nbsp;static private int[] jj_la1_2;
&lt;br&gt;@@ -1401,13 +1464,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_init_2();
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void jj_la1_init_0() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_0 = new int[] {0x11000000,0x11000000,0x11000000,0x11000000,0xf9400000,0xf9400000,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_0 = new int[] {0x11000000,0x11000000,0x11000000,0x11000000,0xf9400000,0xf9400000,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0xf9400000,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void jj_la1_init_1() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x7,0x1,0x1,0x6,0x10,0x6,0x6,0x400000,0x4000000,0x7,0x28000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x10000,0x10000,0xc0000,0xc0000,};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x7,0x1,0x1,0x6,0x10,0x6,0x6,0x400000,0x4000000,0x7,0x7,0x28000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x10000,0x10000,0xc0000,0xc0000,0x0,};
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void jj_la1_init_2() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x21c,0x21c,0x500,0x5c,0x5c,0xa0,0x3,0x1c,0x1000,0x0,0x0,0x0,0x0,0x0,};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x6000,0x0,0x21c,0x21c,0x500,0x5c,0x5c,0xa0,0x3,0x1c,0x1000,0x0,0x0,0x0,0x0,0x0,0x2000,};
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp;final private JJCalls[] jj_2_rtns = new JJCalls[2];
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_rescan = false;
&lt;br&gt;@@ -1419,7 +1482,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;token = new Token();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1430,7 +1493,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.reset();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1440,7 +1503,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;token = new Token();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1451,7 +1514,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.reset();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1563,12 +1626,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Generate ParseException. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;public ParseException generateParseException() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentries.clear();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;boolean[] la1tokens = new boolean[77];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;boolean[] la1tokens = new boolean[79];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_kind &amp;gt;= 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;la1tokens[jj_kind] = true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_kind = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_la1[i] == jj_gen) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = 0; j &amp;lt; 32; j++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jj_la1_0[i] &amp; (1&amp;lt;&amp;lt;j)) != 0) {
&lt;br&gt;@@ -1583,7 +1646,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 77; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 79; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (la1tokens[i]) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentry = new int[1];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentry[0] = i;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserConstants.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -158,41 +158,47 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;int COMMENT_END = 75;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** RegularExpression Id. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;int COMMENT_TEXT = 76;
&lt;br&gt;+ &amp;nbsp;/** RegularExpression Id. */
&lt;br&gt;+ &amp;nbsp;int HTML_SCRIPT_CONTENT = 77;
&lt;br&gt;+ &amp;nbsp;/** RegularExpression Id. */
&lt;br&gt;+ &amp;nbsp;int HTML_SCRIPT_END_TAG = 78;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int CommentState = 0;
&lt;br&gt;+ &amp;nbsp;int HtmlScriptContentState = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AttrValueBetweenDoubleQuotesState = 1;
&lt;br&gt;+ &amp;nbsp;int CommentState = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AttrValueBetweenSingleQuotesState = 2;
&lt;br&gt;+ &amp;nbsp;int AttrValueBetweenDoubleQuotesState = 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int StartTagState = 3;
&lt;br&gt;+ &amp;nbsp;int AttrValueBetweenSingleQuotesState = 3;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int CDataState = 4;
&lt;br&gt;+ &amp;nbsp;int StartTagState = 4;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int DocTypeExternalIdState = 5;
&lt;br&gt;+ &amp;nbsp;int CDataState = 5;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int DocTypeState = 6;
&lt;br&gt;+ &amp;nbsp;int DocTypeExternalIdState = 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspCommentState = 7;
&lt;br&gt;+ &amp;nbsp;int DocTypeState = 7;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspDeclarationState = 8;
&lt;br&gt;+ &amp;nbsp;int JspCommentState = 8;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspExpressionState = 9;
&lt;br&gt;+ &amp;nbsp;int JspDeclarationState = 9;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspScriptletState = 10;
&lt;br&gt;+ &amp;nbsp;int JspExpressionState = 10;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int InTagState = 11;
&lt;br&gt;+ &amp;nbsp;int JspScriptletState = 11;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AfterTagState = 12;
&lt;br&gt;+ &amp;nbsp;int InTagState = 12;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AttrValueState = 13;
&lt;br&gt;+ &amp;nbsp;int AfterTagState = 13;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspDirectiveAttributesState = 14;
&lt;br&gt;+ &amp;nbsp;int AttrValueState = 14;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspDirectiveState = 15;
&lt;br&gt;+ &amp;nbsp;int JspDirectiveAttributesState = 15;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int DEFAULT = 16;
&lt;br&gt;+ &amp;nbsp;int JspDirectiveState = 16;
&lt;br&gt;+ &amp;nbsp;/** Lexical state. */
&lt;br&gt;+ &amp;nbsp;int DEFAULT = 17;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Literal token values. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;String[] tokenImage = {
&lt;br&gt;@@ -273,6 +279,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;DOLLAR_OR_HASH_DOUBLE_QUOTE&amp;gt;&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;COMMENT_END&amp;gt;&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;COMMENT_TEXT&amp;gt;&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;HTML_SCRIPT_CONTENT&amp;gt;&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;HTML_SCRIPT_END_TAG&amp;gt;&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/lang/jsp/ast/JspParserTokenManager.java	2009-12-05 22:51:55 UTC (rev 7017)
&lt;br&gt;@@ -11,21 +11,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;public &amp;nbsp;java.io.PrintStream debugStream = System.out;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Set debug output. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;public &amp;nbsp;void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
&lt;br&gt;-private final int jjStopStringLiteralDfa_9(int pos, long active0)
&lt;br&gt;+private final int jjStopStringLiteralDfa_2(int pos, long active0, long active1)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch (pos)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_9(int pos, long active0)
&lt;br&gt;+private final int jjStartNfa_2(int pos, long active0, long active1)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_9(jjStopStringLiteralDfa_9(pos, active0), pos + 1);
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0, active1), pos + 1);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;private int jjStopAtPos(int pos, int kind)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;@@ -33,483 +29,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjmatchedPos = pos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; return pos + 1;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_9()
&lt;br&gt;+private int jjMoveStringLiteralDfa0_2()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_9(0x40000000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;case 34:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 72);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_9(3, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_2(9, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_9(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_9(0, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 42);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_9(0, active0);
&lt;br&gt;-}
&lt;br&gt;&amp;nbsp;static final long[] jjbitVec0 = {
&lt;br&gt;+ &amp;nbsp; 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
&lt;br&gt;+};
&lt;br&gt;+static final long[] jjbitVec2 = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
&lt;br&gt;&amp;nbsp;};
&lt;br&gt;-private int jjMoveNfa_9(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 3;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 2;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 2;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xbfffffffffffffffL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_4()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 93:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_4(0x80000000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_4(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 93:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_4(active0, 0x80000000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_4(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x80000000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 55);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 3;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return 3;
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_6()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_6(1, 0);
&lt;br&gt;-}
&lt;br&gt;-static final long[] jjbitVec1 = {
&lt;br&gt;- &amp;nbsp; 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
&lt;br&gt;-};
&lt;br&gt;-private int jjMoveNfa_6(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 3;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 48)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 48;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ((0x400001000000000L &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 48;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec1[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_3()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_3(0, 0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_3(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 2;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar != 36)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec1[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_0()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_0(0, 0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_0(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 5;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(2, 3);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 32)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(2, 3);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 62 &amp;&amp; kind &amp;gt; 75)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 75;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 5 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStopStringLiteralDfa_2(int pos, long active0, long active1)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch (pos)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStartNfa_2(int pos, long active0, long active1)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0, active1), pos + 1);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_2()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 39:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 69);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_2(9, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;&amp;nbsp;private int jjMoveNfa_2(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;@@ -529,11 +64,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff67ffffffffL &amp; l) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffe3ffffffffL &amp; l) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ((0x1800000000L &amp; l) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(30, 36);
&lt;br&gt;@@ -546,7 +81,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff7bffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;@@ -558,7 +93,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;@@ -570,11 +105,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff7bffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;@@ -586,7 +121,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;@@ -598,7 +133,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 35)
&lt;br&gt;@@ -610,7 +145,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 22:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 37)
&lt;br&gt;@@ -618,7 +153,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xbfffffffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 24:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 62 &amp;&amp; kind &amp;gt; 68)
&lt;br&gt;@@ -637,22 +172,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 26;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff67ffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffe3ffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 29:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x1800000000L &amp; l) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 30:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff7fffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xfffffffbffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 33:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 35)
&lt;br&gt;@@ -667,8 +202,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(30, 36);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 36:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39 &amp;&amp; kind &amp;gt; 71)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 71;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34 &amp;&amp; kind &amp;gt; 74)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 74;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -682,25 +217,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 92)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(16, 17);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(14, 15);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 123)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xdfffffffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(18, 19);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(16, 17);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(20, 21);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(18, 19);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 125 &amp;&amp; kind &amp;gt; 66)
&lt;br&gt;@@ -708,17 +243,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 123)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xdfffffffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(22, 23);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(20, 21);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(24, 25);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(22, 23);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 125 &amp;&amp; kind &amp;gt; 67)
&lt;br&gt;@@ -726,30 +261,30 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 30:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xf7ffffffffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 31:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 92)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(16, 17);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(14, 15);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 32:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar != 123)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -757,6 +292,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;@@ -766,40 +304,40 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 30:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(18, 19);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(16, 17);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(20, 21);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(18, 19);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(22, 23);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(20, 21);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(24, 25);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(22, 23);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -818,98 +356,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_7(int pos, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa0_4()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; switch (pos)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 4;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_4(0, 0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_7(int pos, long active0)
&lt;br&gt;+static final long[] jjbitVec3 = {
&lt;br&gt;+ &amp;nbsp; 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
&lt;br&gt;+};
&lt;br&gt;+private int jjMoveNfa_4(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_7(jjStopStringLiteralDfa_7(pos, active0), pos + 1);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_7()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_7(0x400000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_7(8, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_7(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_7(0, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_7(active0, 0x400000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_7(0, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_7(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_7(0, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_7(1, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_7(active0, 0x400000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_7(1, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa3_7(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_7(1, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_7(2, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(3, 46);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_7(2, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_7(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 8;
&lt;br&gt;+ &amp;nbsp; jjnewStateCnt = 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int i = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;@@ -924,70 +381,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffdfffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 5;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 4;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffdfffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(29, 30);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffdfffffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar != 36)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(29, 30);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xbfffffffffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 5;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -999,58 +406,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -1062,13 +448,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_13(int pos, long active0, long active1)
&lt;br&gt;+private final int jjStopStringLiteralDfa_12(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch (pos)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;@@ -1076,320 +462,46 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_13(int pos, long active0, long active1)
&lt;br&gt;+private final int jjStartNfa_12(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_13(jjStopStringLiteralDfa_13(pos, active0, active1), pos + 1);
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_12(jjStopStringLiteralDfa_12(pos, active0), pos + 1);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_13()
&lt;br&gt;+private int jjMoveStringLiteralDfa0_12()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 34:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 65);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 39:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 64);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_13(0, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_13(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 1;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 21;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjstateSet[jjnewStateCnt++] = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 1 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStopStringLiteralDfa_16(int pos, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch (pos)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStartNfa_16(int pos, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_16(jjStopStringLiteralDfa_16(pos, active0), pos + 1);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_16()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 60:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = 22;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_16(0x1ff800000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_16(0, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_16(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(0, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_16(active0, 0xd000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x80000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedKind = 31;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedPos = 1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_16(active0, 0x170000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 47:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x800000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 23);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 63:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x2000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 25);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(0, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(0, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(1, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x20000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 29);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_16(active0, 0x11000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_12(0x2000000000000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 61:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 30);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 64:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x100000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 32);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 91:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_16(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 62);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 59);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_12(1, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(1, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa3_16(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa1_12(long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(1, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(2, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(0, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x1000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(3, 24);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if ((active0 &amp; 0x10000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(3, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x2000000000000000L) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 61);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 79:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 111:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_16(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(2, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_12(0, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa4_16(long old0, long active0)
&lt;br&gt;+private int jjMoveNfa_12(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(2, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(3, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 4;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(3, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa5_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(3, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(4, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 5;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 65:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 97:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 84:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 116:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(4, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa6_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(4, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(5, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 6;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 84:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 116:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 89:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 121:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(5, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa7_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(5, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(6, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 7;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 65:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 97:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 80:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 112:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(6, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa8_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(6, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(7, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 8;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 91:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x8000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(8, 27);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 69:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 101:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x4000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(8, 26);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(7, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_16(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 1;
&lt;br&gt;+ &amp;nbsp; jjnewStateCnt = 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int i = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;@@ -1404,12 +516,49 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 21)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 21;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 33)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 36)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 63)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 20;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjstateSet[jjnewStateCnt++] = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 21;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 62)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 60;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 63)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 33)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -1421,18 +570,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -1444,13 +612,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 1 - (jjnewStateCnt = startsAt)))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 6 - (jjnewStateCnt = startsAt)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_12(int pos, long active0)
&lt;br&gt;+private final int jjStopStringLiteralDfa_13(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch (pos)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;@@ -1458,39 +626,39 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_12(int pos, long active0)
&lt;br&gt;+private final int jjStartNfa_13(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_12(jjStopStringLiteralDfa_12(pos, active0), pos + 1);
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_13(jjStopStringLiteralDfa_13(pos, active0), pos + 1);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_12()
&lt;br&gt;+private int jjMoveStringLiteralDfa0_13()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 60:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = 22;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_12(0x1ff800000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_13(0x1ff800000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_12(10, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_13(10, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_12(long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa1_13(long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(0, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(0, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_12(active0, 0xd000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_13(active0, 0xd000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x80000000L) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedKind = 31;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedPos = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_12(active0, 0x170000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_13(active0, 0x170000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 47:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x800000L) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 23);
&lt;br&gt;@@ -1502,15 +670,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(0, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(0, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa2_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(0, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(0, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(1, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(1, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;@@ -1520,7 +688,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 29);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_12(active0, 0x11000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_13(active0, 0x11000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 61:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000L) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 30);
&lt;br&gt;@@ -1530,22 +698,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 32);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 91:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(1, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(1, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa3_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa3_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(1, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(1, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(2, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(2, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;@@ -1558,110 +726,110 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 79:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 111:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(2, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(2, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa4_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa4_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(2, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(2, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(3, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(3, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 4;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(3, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(3, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa5_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa5_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(3, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(3, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(4, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(4, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 5;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 65:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 97:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 84:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 116:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(4, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(4, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa6_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa6_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(4, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(4, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(5, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(5, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 84:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 116:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 89:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 121:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(5, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(5, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa7_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa7_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(5, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(5, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(6, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(6, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 7;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 65:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 97:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 80:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 112:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(6, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(6, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa8_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa8_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(6, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(6, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(7, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(7, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 8;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;@@ -1678,9 +846,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(7, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(7, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveNfa_12(int startState, int curPos)
&lt;br&gt;+private int jjMoveNfa_13(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjnewStateCnt = 18;
&lt;br&gt;@@ -1703,7 +871,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 36)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 13;
&lt;br&gt;@@ -1725,7 +893,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff7bffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(34, 37);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(27, 30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;@@ -1737,7 +905,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(34, 37);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(27, 30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;@@ -1749,14 +917,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(34, 37);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(27, 30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xefffffefffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 36)
&lt;br&gt;@@ -1767,7 +935,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 35)
&lt;br&gt;@@ -1791,23 +959,23 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 92)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(24, 25);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(22, 23);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 123)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(34, 37);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(27, 30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xdfffffffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(34, 37);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(27, 30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(38, 39);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(31, 32);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(40, 41);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(33, 34);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 125 &amp;&amp; kind &amp;gt; 33)
&lt;br&gt;@@ -1816,25 +984,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xf7ffffffffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 92)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(24, 25);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(22, 23);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar != 123)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1842,6 +1010,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;@@ -1851,23 +1022,23 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 34)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 34;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(31, 33);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(24, 26);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(34, 37);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(27, 30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(38, 39);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(31, 32);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(40, 41);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(33, 34);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1886,51 +1057,51 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_8(int pos, long active0)
&lt;br&gt;+private final int jjStopStringLiteralDfa_10(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch (pos)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x100000000000L) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000000L) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_8(int pos, long active0)
&lt;br&gt;+private final int jjStartNfa_10(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_8(jjStopStringLiteralDfa_8(pos, active0), pos + 1);
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_10(jjStopStringLiteralDfa_10(pos, active0), pos + 1);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_8()
&lt;br&gt;+private int jjMoveStringLiteralDfa0_10()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_8(0x100000000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_10(0x40000000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_8(3, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_10(3, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_8(long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa1_10(long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_8(0, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_10(0, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x100000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 44);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000000L) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 42);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_8(0, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_10(0, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveNfa_8(int startState, int curPos)
&lt;br&gt;+private int jjMoveNfa_10(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjnewStateCnt = 3;
&lt;br&gt;@@ -1951,8 +1122,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 45;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 43)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 43;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(0, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 37)
&lt;br&gt;@@ -1961,8 +1132,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 45;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;@@ -1972,8 +1143,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xbfffffffffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 45;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;@@ -1990,8 +1161,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 45;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;@@ -2000,6 +1171,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;@@ -2009,10 +1183,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 45;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;@@ -2032,54 +1206,160 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_11(int pos, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa0_16()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_16(1, 0);
&lt;br&gt;+}
&lt;br&gt;+private int jjMoveNfa_16(int startState, int curPos)
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; int startsAt = 0;
&lt;br&gt;+ &amp;nbsp; jjnewStateCnt = 3;
&lt;br&gt;+ &amp;nbsp; int i = 1;
&lt;br&gt;+ &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;+ &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;+ &amp;nbsp; for (;;)
&lt;br&gt;+ &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 20)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 20;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 36)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 35)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 35;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 20;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 35)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 35;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 35)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 35;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&lt;br&gt;@@ Diff output truncated at 100000 characters. @@
&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26660240&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7017--trunk-pmd-tp26660240p26660240.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26660118</id>
	<title>SF.net SVN: pmd:[7016] branches/pmd/4.2.x/rulesets/basic-jsp.xml</title>
	<published>2009-12-05T14:36:33Z</published>
	<updated>2009-12-05T14:36:33Z</updated>
	<author>
		<name>rgustav</name>
	</author>
	<content type="html">Revision: 7016
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7016&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7016&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rgustav
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-05 22:36:32 +0000 (Sat, 05 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Fix url for new rule.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/rulesets/basic-jsp.xml
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/rulesets/basic-jsp.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/rulesets/basic-jsp.xml	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;+++ branches/pmd/4.2.x/rulesets/basic-jsp.xml	2009-12-05 22:36:32 UTC (rev 7016)
&lt;br&gt;@@ -270,7 +270,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;name=&amp;quot;NoInlineScript&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;class=&amp;quot;net.sourceforge.pmd.rules.XPathRule&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;message=&amp;quot;Avoiding inlining HTML script content&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;externalInfoUrl=&amp;quot;&lt;a href=&quot;http://pmd.sourceforge.net/rules/basic-jsp.html#JspEncoding&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/rules/basic-jsp.html#JspEncoding&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;externalInfoUrl=&amp;quot;&lt;a href=&quot;http://pmd.sourceforge.net/rules/basic-jsp.html#NoInlineScript&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/rules/basic-jsp.html#NoInlineScript&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;&amp;nbsp;Avoid inlining HTML script content. &amp;nbsp;Consider externalizing the HTML script using the 'src' attribute on the &amp;lt;script&amp;gt; element.
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26660118&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7016--branches-pmd-4.2.x-rulesets-basic-jsp.xml-tp26660118p26660118.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26660100</id>
	<title>SF.net SVN: pmd:[7015] branches/pmd/4.2.x</title>
	<published>2009-12-05T14:34:45Z</published>
	<updated>2009-12-05T14:34:45Z</updated>
	<author>
		<name>rgustav</name>
	</author>
	<content type="html">Revision: 7015
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7015&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7015&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rgustav
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-05 22:34:45 +0000 (Sat, 05 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Add support for Unicode for JSP/JSF.
&lt;br&gt;Add support to not parse body of &amp;lt;script&amp;gt; for JSP/JSF.
&lt;br&gt;Add new NoInlineScript rule for JSP/JSF.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/bin/build.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/etc/grammar/JspParser.jjt
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/rulesets/basic-jsp.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspCharStream.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParser.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserConstants.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserTokenManager.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserTreeConstants.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserVisitor.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserVisitorAdapter.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/rules/AbstractJspRule.java
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/NoInlineScriptTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/xml/NoInlineScript.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/ASTHtmlScript.java
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/bin/build.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/bin/build.xml	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/bin/build.xml	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -392,8 +392,16 @@
&lt;br&gt;&amp;nbsp;		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/ParseException.java&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/CharStream.java&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;jjtree target=&amp;quot;etc/grammar/JspParser.jjt&amp;quot; outputdirectory=&amp;quot;src/net/sourceforge/pmd/jsp/ast/&amp;quot; javacchome=&amp;quot;${javacc-home.path}&amp;quot; /&amp;gt;
&lt;br&gt;+
&lt;br&gt;+		&amp;lt;!-- Generate Unicode w/o Unicode Escapes CharStream implementation --&amp;gt;
&lt;br&gt;+		&amp;lt;javacc static=&amp;quot;false&amp;quot; usercharstream=&amp;quot;false&amp;quot; unicodeinput=&amp;quot;true&amp;quot; javaunicodeescape=&amp;quot;false&amp;quot; target=&amp;quot;src/net/sourceforge/pmd/jsp/ast/JspParser.jj&amp;quot; outputdirectory=&amp;quot;src/net/sourceforge/pmd/jsp/ast&amp;quot; javacchome=&amp;quot;${javacc-home.path}&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;replace file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/SimpleCharStream.java&amp;quot; token=&amp;quot;public class SimpleCharStream&amp;quot; value=&amp;quot;public class JspCharStream implements CharStream&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;replace file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/SimpleCharStream.java&amp;quot; token=&amp;quot;public SimpleCharStream&amp;quot; value=&amp;quot;public JspCharStream&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;move file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/SimpleCharStream.java&amp;quot; tofile=&amp;quot;src/net/sourceforge/pmd/jsp/ast/JspCharStream.java&amp;quot;/&amp;gt;
&lt;br&gt;+		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/JspParser.java&amp;quot; /&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;		&amp;lt;!-- Ensure generated using CharStream interface --&amp;gt;
&lt;br&gt;-		&amp;lt;javacc static=&amp;quot;false&amp;quot; usercharstream=&amp;quot;true&amp;quot; target=&amp;quot;src/net/sourceforge/pmd/jsp/ast/JspParser.jj&amp;quot; outputdirectory=&amp;quot;src/net/sourceforge/pmd/jsp/ast&amp;quot; javacchome=&amp;quot;${javacc-home.path}&amp;quot; /&amp;gt;
&lt;br&gt;+		&amp;lt;javacc static=&amp;quot;false&amp;quot; usercharstream=&amp;quot;true&amp;quot; unicodeinput=&amp;quot;true&amp;quot; javaunicodeescape=&amp;quot;false&amp;quot; target=&amp;quot;src/net/sourceforge/pmd/jsp/ast/JspParser.jj&amp;quot; outputdirectory=&amp;quot;src/net/sourceforge/pmd/jsp/ast&amp;quot; javacchome=&amp;quot;${javacc-home.path}&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;		&amp;lt;delete file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/JspParser.jj&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp;		&amp;lt;replace file=&amp;quot;src/net/sourceforge/pmd/jsp/ast/JspParserTokenManager.java&amp;quot; token=&amp;quot;throw new Error&amp;quot; value=&amp;quot;throw new RuntimeException&amp;quot; /&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/etc/changelog.txt	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/etc/changelog.txt	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -13,6 +13,8 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;Correct -benchmark reporting of Rule visits via the RuleChain
&lt;br&gt;&amp;nbsp;Fix issue with Type Resolution incorrectly handling of Classes with same name as a java.lang Class.
&lt;br&gt;+The JSP/JSF parser can now parse Unicode input.
&lt;br&gt;+The JSP/JSP parser can now handle &amp;lt;script&amp;gt;...&amp;lt;/script&amp;gt; tags. &amp;nbsp;The AST HtmlScript node contains the content.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;Dependencies updates: asm updated to 3.2
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -23,6 +25,7 @@
&lt;br&gt;&amp;nbsp;	Controversial : AvoidLiteralsInIfCondition (patch 2591627), UseConcurrentHashMap
&lt;br&gt;&amp;nbsp;	StrictExceptions : AvoidCatchingGenericException, AvoidLosingExceptionInformation
&lt;br&gt;&amp;nbsp;	Naming : GenericsNaming
&lt;br&gt;+	JSP: NoInlineScript
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;February 08, 2009 - 4.2.5:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/etc/grammar/JspParser.jjt
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/etc/grammar/JspParser.jjt	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/etc/grammar/JspParser.jjt	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -1,13 +1,15 @@
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/* JSP Parser for PMD.
&lt;br&gt;+/* JSP Parser for PMD.
&lt;br&gt;&amp;nbsp; * It supports supports more-or-less well written JSP files.
&lt;br&gt;&amp;nbsp; * The JSP Document style is supported, except for inline DTD.
&lt;br&gt;&amp;nbsp; * The JSP Page style (&amp;lt;% ... %&amp;gt;) is supported.
&lt;br&gt;&amp;nbsp; * Java code is not parsed.
&lt;br&gt;+ * Script code inside &amp;lt;script&amp;gt; ... &amp;lt;/script&amp;gt; is not parsed.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;options { 
&lt;br&gt;&amp;nbsp;	USER_CHAR_STREAM = true;
&lt;br&gt;&amp;nbsp;	NODE_USES_PARSER=true;
&lt;br&gt;+	UNICODE_INPUT=true;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp;
&lt;br&gt;&amp;nbsp;	IGNORE_CASE = true; 
&lt;br&gt;&amp;nbsp;	STATIC = false; 
&lt;br&gt;@@ -78,6 +80,7 @@
&lt;br&gt;&amp;nbsp; * - JspExpressionState : inside an expression &amp;lt;%= ... %&amp;gt;
&lt;br&gt;&amp;nbsp; * - JspDeclarationState : inside a declaration &amp;lt;%! ... %&amp;gt;
&lt;br&gt;&amp;nbsp; * - JspCommentState : inside a comment &amp;lt;%-- ... --%&amp;gt;
&lt;br&gt;+ * - HtmlScriptContentState : inside an HTML script &amp;lt;script&amp;gt; ... &amp;lt;/script&amp;gt;
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -263,6 +266,18 @@
&lt;br&gt;&amp;nbsp;| &amp;lt; COMMENT_TEXT: (~[]) &amp;gt;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+&amp;lt;HtmlScriptContentState&amp;gt; TOKEN :
&lt;br&gt;+{
&lt;br&gt;+	&amp;lt;HTML_SCRIPT_CONTENT: (~[]) &amp;gt;
&lt;br&gt;+	| &amp;lt;HTML_SCRIPT_END_TAG : &amp;quot;&amp;lt;/script&amp;quot; | &amp;quot;&amp;lt;/Script&amp;quot; | &amp;quot;&amp;lt;/SCRIPT&amp;quot;&amp;gt;
&lt;br&gt;+	{
&lt;br&gt;+		// We've done a custom lookahead for the closing &amp;lt;/script&amp;gt; and found it.
&lt;br&gt;+		// Put it back into the input stream, so it can be processed normally.
&lt;br&gt;+		input_stream.backup(8);
&lt;br&gt;+		image.setLength(image.length() - 8); // kill the &amp;quot;&amp;lt;script&amp;quot;
&lt;br&gt;+		matchedToken.image = image.toString();
&lt;br&gt;+	} : AfterTagState
&lt;br&gt;+}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/** ******************************************************************** */
&lt;br&gt;&amp;nbsp;/** ************************* &amp;nbsp;JSP GRAMMAR &amp;nbsp;**************************** */
&lt;br&gt;@@ -498,9 +513,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;(Attribute())*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;( 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	(&amp;lt;TAG_END&amp;gt; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;		{ jjtThis.setEmpty(false); }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;			jjtThis.setEmpty(false);
&lt;br&gt;+
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// Content in a &amp;lt;script&amp;gt; element needs special treatment (like a comment or CDataSection).
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// Tell the TokenManager to start looking for the body of a script element. &amp;nbsp;In this
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// state all text will be consumed by the next token up to the closing &amp;lt;/script&amp;gt; tag.
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// This is a context sensitive switch for the token manager, not something one can
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;	// express using normal JavaCC syntax. &amp;nbsp;Hence the hoop jumping.
&lt;br&gt;+				if (&amp;quot;script&amp;quot;.equalsIgnoreCase(startTagName.image)) {
&lt;br&gt;+					token_source.SwitchTo(HtmlScriptContentState);
&lt;br&gt;+				}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	(Content())? 
&lt;br&gt;+ &amp;nbsp; 		(HtmlScript() | Content())?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	&amp;lt;ENDTAG_START&amp;gt; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	endTagName = &amp;lt;TAG_NAME&amp;gt; 
&lt;br&gt;@@ -645,3 +671,16 @@
&lt;br&gt;&amp;nbsp;				{ jjtThis.setUri(quoteContent(systemLiteral.image)); }
&lt;br&gt;&amp;nbsp;		)
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+void HtmlScript() :
&lt;br&gt;+{
&lt;br&gt;+	StringBuffer content = new StringBuffer();
&lt;br&gt;+	Token t;
&lt;br&gt;+}
&lt;br&gt;+{
&lt;br&gt;+	(t = &amp;lt;HTML_SCRIPT_CONTENT&amp;gt; &amp;nbsp;{ content.append(t.image); })*
&lt;br&gt;+	&amp;lt;HTML_SCRIPT_END_TAG&amp;gt;
&lt;br&gt;+		{
&lt;br&gt;+			jjtThis.setImage(content.toString().trim());
&lt;br&gt;+		}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -1,6 +1,13 @@
&lt;br&gt;&amp;nbsp;package test.net.sourceforge.pmd.jsp.ast;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import static org.junit.Assert.assertEquals;
&lt;br&gt;+
&lt;br&gt;+import java.util.ArrayList;
&lt;br&gt;+import java.util.Collections;
&lt;br&gt;+import java.util.Comparator;
&lt;br&gt;+import java.util.List;
&lt;br&gt;+import java.util.Set;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.jsp.ast.ASTAttribute;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.jsp.ast.ASTAttributeValue;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.jsp.ast.ASTCData;
&lt;br&gt;@@ -8,14 +15,9 @@
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.jsp.ast.ASTDoctypeDeclaration;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.jsp.ast.ASTDoctypeExternalId;
&lt;br&gt;&amp;nbsp;import net.sourceforge.pmd.jsp.ast.ASTElement;
&lt;br&gt;+import net.sourceforge.pmd.jsp.ast.ASTHtmlScript;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.junit.Test;
&lt;br&gt;-
&lt;br&gt;-import java.util.ArrayList;
&lt;br&gt;-import java.util.Collections;
&lt;br&gt;-import java.util.Comparator;
&lt;br&gt;-import java.util.List;
&lt;br&gt;-import java.util.Set;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * Test parsing of a JSP in document style, by checking the generated AST.
&lt;br&gt;&amp;nbsp; * 
&lt;br&gt;@@ -156,6 +158,17 @@
&lt;br&gt;&amp;nbsp;		ASTCommentTag comment = (ASTCommentTag) comments.iterator().next();
&lt;br&gt;&amp;nbsp;		assertEquals(&amp;quot;Correct comment content expected!&amp;quot;, &amp;quot;comment&amp;quot;, comment.getImage());
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Test parsing of HTML &amp;lt;script&amp;gt; element.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testHtmlScript() {
&lt;br&gt;+	Set scripts = getNodes(ASTHtmlScript.class, TEST_HTML_SCRIPT);
&lt;br&gt;+	assertEquals(&amp;quot;One script expected!&amp;quot;, 1, scripts.size());
&lt;br&gt;+	ASTHtmlScript script = (ASTHtmlScript) scripts.iterator().next();
&lt;br&gt;+	assertEquals(&amp;quot;Correct script content expected!&amp;quot;, &amp;quot;Script!&amp;quot;, script.getImage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	private static final String TEST_SIMPLEST_HTML = &amp;quot;&amp;lt;html/&amp;gt;&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -173,6 +186,9 @@
&lt;br&gt;&amp;nbsp;	private static final String TEST_ATTRIBUTE_VALUE_CONTAINING_HASH = 
&lt;br&gt;&amp;nbsp;		&amp;quot;&amp;lt;tag:if something=\&amp;quot;#yes#\&amp;quot; foo=\&amp;quot;CREATE\&amp;quot;&amp;gt; &amp;nbsp;&amp;lt;a href=\&amp;quot;#\&amp;quot;&amp;gt;foo&amp;lt;/a&amp;gt; &amp;lt;/tag:if&amp;gt;&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+	private static final String TEST_HTML_SCRIPT =
&lt;br&gt;+		&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script&amp;gt;Script!&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter(JspDocStyleTest.class);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Added: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/NoInlineScriptTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/NoInlineScriptTest.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/NoInlineScriptTest.java	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -0,0 +1,17 @@
&lt;br&gt;+package test.net.sourceforge.pmd.jsp.rules;
&lt;br&gt;+
&lt;br&gt;+import org.junit.Before;
&lt;br&gt;+
&lt;br&gt;+import test.net.sourceforge.pmd.testframework.SimpleAggregatorTst;
&lt;br&gt;+
&lt;br&gt;+public class NoInlineScriptTest extends SimpleAggregatorTst {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;@Before
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setUp() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(&amp;quot;jsp&amp;quot;, &amp;quot;NoInlineScript&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new junit.framework.JUnit4TestAdapter(NoInlineScriptTest.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Added: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/xml/NoInlineScript.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/xml/NoInlineScript.xml	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/jsp/rules/xml/NoInlineScript.xml	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -0,0 +1,53 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;test-data&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+A violation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script&amp;gt;Some script&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+A violation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script src=&amp;quot;script location&amp;quot;&amp;gt;Some script&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+Ok, no 'src' with empty body.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+Ok, only 'src' with empty whitespace body.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script src=&amp;quot;script location&amp;quot;&amp;gt; &amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+Ok, only 'src' without body.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script src=&amp;quot;script location&amp;quot;/&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;/html&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;jsp&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+&amp;lt;/test-data&amp;gt;
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/rulesets/basic-jsp.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/rulesets/basic-jsp.xml	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/rulesets/basic-jsp.xml	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -265,5 +265,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]]&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/example&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;rule
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;name=&amp;quot;NoInlineScript&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;class=&amp;quot;net.sourceforge.pmd.rules.XPathRule&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;message=&amp;quot;Avoiding inlining HTML script content&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;externalInfoUrl=&amp;quot;&lt;a href=&quot;http://pmd.sourceforge.net/rules/basic-jsp.html#JspEncoding&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/rules/basic-jsp.html#JspEncoding&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+Avoid inlining HTML script content. &amp;nbsp;Consider externalizing the HTML script using the 'src' attribute on the &amp;lt;script&amp;gt; element.
&lt;br&gt;+Externalized script could be reused between pages. &amp;nbsp;Browsers can also cache the script, reducing overall download bandwidth.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;priority&amp;gt;3&amp;lt;/priority&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;xpath&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+//HtmlScript[@Image != '']
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Most browsers should be able to interpret the following headers:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;%@ page contentType=&amp;quot;text/html; charset=UTF-8&amp;quot; pageEncoding=&amp;quot;UTF-8&amp;quot; %&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot;  content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;/ruleset&amp;gt;
&lt;br&gt;&lt;br&gt;Added: branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/ASTHtmlScript.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/ASTHtmlScript.java	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/ASTHtmlScript.java	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -0,0 +1,20 @@
&lt;br&gt;+/* Generated By:JJTree: Do not edit this line. ASTHtmlScript.java Version 4.1 */
&lt;br&gt;+/* JavaCCOptions:MULTI=true,NODE_USES_PARSER=true,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=AST,NODE_EXTENDS=,NODE_FACTORY= */
&lt;br&gt;+package net.sourceforge.pmd.jsp.ast;
&lt;br&gt;+
&lt;br&gt;+public class ASTHtmlScript extends SimpleNode {
&lt;br&gt;+ &amp;nbsp;public ASTHtmlScript(int id) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;super(id);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;public ASTHtmlScript(JspParser p, int id) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;super(p, id);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Accept the visitor. **/
&lt;br&gt;+ &amp;nbsp;public Object jjtAccept(JspParserVisitor visitor, Object data) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return visitor.visit(this, data);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;+/* JavaCC - OriginalChecksum=8170f25fd45a522c3d56439f6d24e048 (do not edit this line) */
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspCharStream.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspCharStream.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspCharStream.java	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -1,40 +1,477 @@
&lt;br&gt;+/* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 4.1 */
&lt;br&gt;+/* JavaCCOptions:STATIC=false */
&lt;br&gt;+/** 
&lt;br&gt;+ * JSP Parser for PMD.
&lt;br&gt;+ * @author Pieter � Application Engineers NV/SA � &lt;a href=&quot;http://www.ae.be&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ae.be&lt;/a&gt;&lt;br&gt;+ */
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;package net.sourceforge.pmd.jsp.ast;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import net.sourceforge.pmd.ast.JavaCharStream;
&lt;br&gt;+/**
&lt;br&gt;+ * An implementation of interface CharStream, where the stream is assumed to
&lt;br&gt;+ * contain only ASCII characters (without unicode processing).
&lt;br&gt;+ */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import java.io.InputStream;
&lt;br&gt;-import java.io.Reader;
&lt;br&gt;+public class JspCharStream implements CharStream
&lt;br&gt;+{
&lt;br&gt;+/** Whether parser is static. */
&lt;br&gt;+ &amp;nbsp;public static final boolean staticFlag = false;
&lt;br&gt;+ &amp;nbsp;int bufsize;
&lt;br&gt;+ &amp;nbsp;int available;
&lt;br&gt;+ &amp;nbsp;int tokenBegin;
&lt;br&gt;+/** Position in buffer. */
&lt;br&gt;+ &amp;nbsp;public int bufpos = -1;
&lt;br&gt;+ &amp;nbsp;protected int bufline[];
&lt;br&gt;+ &amp;nbsp;protected int bufcolumn[];
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-public class JspCharStream extends JavaCharStream implements CharStream {
&lt;br&gt;+ &amp;nbsp;protected int column = 0;
&lt;br&gt;+ &amp;nbsp;protected int line = 1;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JspCharStream(InputStream dstream, int startline, int startcolumn, int buffersize) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(dstream, startline, startcolumn, buffersize);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO Auto-generated constructor stub
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;protected boolean prevCharIsCR = false;
&lt;br&gt;+ &amp;nbsp;protected boolean prevCharIsLF = false;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JspCharStream(InputStream dstream, int startline, int startcolumn) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(dstream, startline, startcolumn);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO Auto-generated constructor stub
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;protected java.io.Reader inputStream;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JspCharStream(InputStream dstream) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(dstream);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO Auto-generated constructor stub
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;protected char[] buffer;
&lt;br&gt;+ &amp;nbsp;protected int maxNextCharInd = 0;
&lt;br&gt;+ &amp;nbsp;protected int inBuf = 0;
&lt;br&gt;+ &amp;nbsp;protected int tabSize = 8;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JspCharStream(Reader dstream, int startline, int startcolumn, int buffersize) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(dstream, startline, startcolumn, buffersize);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO Auto-generated constructor stub
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;protected void setTabSize(int i) { tabSize = i; }
&lt;br&gt;+ &amp;nbsp;protected int getTabSize(int i) { return tabSize; }
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JspCharStream(Reader dstream, int startline, int startcolumn) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(dstream, startline, startcolumn);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO Auto-generated constructor stub
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public JspCharStream(Reader dstream) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(dstream);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO Auto-generated constructor stub
&lt;br&gt;+ &amp;nbsp;protected void ExpandBuff(boolean wrapAround)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; char[] newbuffer = new char[bufsize + 2048];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int newbufline[] = new int[bufsize + 2048];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int newbufcolumn[] = new int[bufsize + 2048];
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; try
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (wrapAround)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(buffer, 0, newbuffer,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bufsize - tokenBegin, bufpos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer = newbuffer;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(bufline, 0, newbufline, bufsize - tokenBegin, bufpos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bufline = newbufline;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(bufcolumn, 0, newbufcolumn, bufsize - tokenBegin, bufpos);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bufcolumn = newbufcolumn;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; maxNextCharInd = (bufpos += (bufsize - tokenBegin));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; buffer = newbuffer;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(bufline, tokenBegin, newbufline, 0, bufsize - tokenBegin);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bufline = newbufline;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.arraycopy(bufcolumn, tokenBegin, newbufcolumn, 0, bufsize - tokenBegin);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bufcolumn = newbufcolumn;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; maxNextCharInd = (bufpos -= tokenBegin);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; catch (Throwable t)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new Error(t.getMessage());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; bufsize += 2048;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; available = bufsize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; tokenBegin = 0;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;protected void FillBuff() throws java.io.IOException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if (maxNextCharInd == available)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (available == bufsize)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (tokenBegin &amp;gt; 2048)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufpos = maxNextCharInd = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;available = tokenBegin;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if (tokenBegin &amp;lt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufpos = maxNextCharInd = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ExpandBuff(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (available &amp;gt; tokenBegin)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; available = bufsize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ((tokenBegin - available) &amp;lt; 2048)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExpandBuff(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; available = tokenBegin;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int i;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = inputStream.read(buffer, maxNextCharInd,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;available - maxNextCharInd)) == -1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inputStream.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw new java.io.IOException();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; maxNextCharInd += i;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--bufpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;backup(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (tokenBegin == -1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tokenBegin = bufpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw e;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+/** Start. */
&lt;br&gt;+ &amp;nbsp;public char BeginToken() throws java.io.IOException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; tokenBegin = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; char c = readChar();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; tokenBegin = bufpos;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return c;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;protected void UpdateLineColumn(char c)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; column++;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if (prevCharIsLF)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;prevCharIsLF = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;line += (column = 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; else if (prevCharIsCR)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;prevCharIsCR = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (c == '\n')
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; prevCharIsLF = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; line += (column = 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; switch (c)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case '\r' :
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; prevCharIsCR = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case '\n' :
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; prevCharIsLF = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case '\t' :
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; column--;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; column += (tabSize - (column % tabSize));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; bufline[bufpos] = line;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; bufcolumn[bufpos] = column;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+/** Read a character. */
&lt;br&gt;+ &amp;nbsp;public char readChar() throws java.io.IOException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if (inBuf &amp;gt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--inBuf;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++bufpos == bufsize)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bufpos = 0;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return buffer[bufpos];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if (++bufpos &amp;gt;= maxNextCharInd)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FillBuff();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; char c = buffer[bufpos];
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; UpdateLineColumn(c);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return c;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; * @deprecated
&lt;br&gt;+ &amp;nbsp; * @see #getEndColumn
&lt;br&gt;+ &amp;nbsp; */
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;public int getColumn() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return bufcolumn[bufpos];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; * @deprecated
&lt;br&gt;+ &amp;nbsp; * @see #getEndLine
&lt;br&gt;+ &amp;nbsp; */
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;public int getLine() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return bufline[bufpos];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Get token end column number. */
&lt;br&gt;+ &amp;nbsp;public int getEndColumn() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return bufcolumn[bufpos];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Get token end line number. */
&lt;br&gt;+ &amp;nbsp;public int getEndLine() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return bufline[bufpos];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Get token beginning column number. */
&lt;br&gt;+ &amp;nbsp;public int getBeginColumn() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return bufcolumn[tokenBegin];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Get token beginning line number. */
&lt;br&gt;+ &amp;nbsp;public int getBeginLine() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return bufline[tokenBegin];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+/** Backup a number of characters. */
&lt;br&gt;+ &amp;nbsp;public void backup(int amount) {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;inBuf += amount;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if ((bufpos -= amount) &amp;lt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; bufpos += bufsize;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.Reader dstream, int startline,
&lt;br&gt;+ &amp;nbsp;int startcolumn, int buffersize)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;inputStream = dstream;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;line = startline;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;column = startcolumn - 1;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;available = bufsize = buffersize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;buffer = new char[buffersize];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;bufline = new int[buffersize];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;bufcolumn = new int[buffersize];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.Reader dstream, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int startcolumn)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(dstream, startline, startcolumn, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.Reader dstream)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(dstream, 1, 1, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.Reader dstream, int startline,
&lt;br&gt;+ &amp;nbsp;int startcolumn, int buffersize)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;inputStream = dstream;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;line = startline;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;column = startcolumn - 1;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (buffer == null || buffersize != buffer.length)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;available = bufsize = buffersize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer = new char[buffersize];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;bufline = new int[buffersize];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;bufcolumn = new int[buffersize];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;prevCharIsLF = prevCharIsCR = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;tokenBegin = inBuf = maxNextCharInd = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;bufpos = -1;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.Reader dstream, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int startcolumn)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(dstream, startline, startcolumn, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.Reader dstream)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(dstream, 1, 1, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.InputStream dstream, String encoding, int startline,
&lt;br&gt;+ &amp;nbsp;int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.InputStream dstream, int startline,
&lt;br&gt;+ &amp;nbsp;int startcolumn, int buffersize)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.InputStream dstream, String encoding, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int startcolumn) throws java.io.UnsupportedEncodingException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(dstream, encoding, startline, startcolumn, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.InputStream dstream, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int startcolumn)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(dstream, startline, startcolumn, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(dstream, encoding, 1, 1, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Constructor. */
&lt;br&gt;+ &amp;nbsp;public JspCharStream(java.io.InputStream dstream)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; this(dstream, 1, 1, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.InputStream dstream, String encoding, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.InputStream dstream, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int startcolumn, int buffersize)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(dstream, encoding, 1, 1, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.InputStream dstream)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(dstream, 1, 1, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.InputStream dstream, String encoding, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int startcolumn) throws java.io.UnsupportedEncodingException
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(dstream, encoding, startline, startcolumn, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;/** Reinitialise. */
&lt;br&gt;+ &amp;nbsp;public void ReInit(java.io.InputStream dstream, int startline,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int startcolumn)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ReInit(dstream, startline, startcolumn, 4096);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;/** Get token literal value. */
&lt;br&gt;+ &amp;nbsp;public String GetImage()
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if (bufpos &amp;gt;= tokenBegin)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new String(buffer, tokenBegin, bufpos - tokenBegin + 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new String(buffer, tokenBegin, bufsize - tokenBegin) +
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new String(buffer, 0, bufpos + 1);
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Get the suffix. */
&lt;br&gt;+ &amp;nbsp;public char[] GetSuffix(int len)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; char[] ret = new char[len];
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if ((bufpos + 1) &amp;gt;= len)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.arraycopy(buffer, bufpos - len + 1, ret, 0, len);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.arraycopy(buffer, bufsize - (len - bufpos - 1), ret, 0,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;len - bufpos - 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.arraycopy(buffer, 0, ret, len - bufpos - 1, bufpos + 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; return ret;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/** Reset buffer when finished. */
&lt;br&gt;+ &amp;nbsp;public void Done()
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; buffer = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; bufline = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; bufcolumn = null;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; * Method to adjust line and column numbers for the start of a token.
&lt;br&gt;+ &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp;public void adjustBeginLineColumn(int newLine, int newCol)
&lt;br&gt;+ &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int start = tokenBegin;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int len;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if (bufpos &amp;gt;= tokenBegin)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;len = bufpos - tokenBegin + inBuf + 1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;len = bufsize - tokenBegin + bufpos + 1 + inBuf;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int i = 0, j = 0, k = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; int nextColDiff = 0, columnDiff = 0;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; while (i &amp;lt; len &amp;&amp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufline[j = start % bufsize] == bufline[k = ++start % bufsize])
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufline[j] = newLine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufcolumn[j] = newCol + columnDiff;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnDiff = nextColDiff;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;i++;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; if (i &amp;lt; len)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufline[j] = newLine++;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufcolumn[j] = newCol + columnDiff;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (i++ &amp;lt; len)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (bufline[j = start % bufsize] != bufline[++start % bufsize])
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufline[j] = newLine++;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bufline[j] = newLine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; line = bufline[j];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; column = bufcolumn[j];
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+/* JavaCC - OriginalChecksum=0cfeecb717597c69bc2c1c86633e8048 (do not edit this line) */
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParser.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParser.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParser.java	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -628,7 +628,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case TAG_END:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(TAG_END);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setEmpty(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setEmpty(false);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Content in a &amp;lt;script&amp;gt; element needs special treatment (like a comment or CDataSection).
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Tell the TokenManager to start looking for the body of a script element. &amp;nbsp;In this
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// state all text will be consumed by the next token up to the closing &amp;lt;/script&amp;gt; tag.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// This is a context sensitive switch for the token manager, not something one can
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// express using normal JavaCC syntax. &amp;nbsp;Hence the hoop jumping.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;script&amp;quot;.equalsIgnoreCase(startTagName.image)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;token_source.SwitchTo(HtmlScriptContentState);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case TAG_START:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case COMMENT_START:
&lt;br&gt;@@ -640,10 +649,33 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_DIRECTIVE_START:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case EL_EXPRESSION:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case UNPARSED_TEXT:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Content();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_CONTENT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_END_TAG:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_CONTENT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_END_TAG:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HtmlScript();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case TAG_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case COMMENT_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case CDATA_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_COMMENT_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_DECLARATION_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_EXPRESSION_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_SCRIPTLET_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case JSP_DIRECTIVE_START:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case EL_EXPRESSION:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case UNPARSED_TEXT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Content();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[13] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[13] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[14] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(ENDTAG_START);
&lt;br&gt;@@ -664,7 +696,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setEmpty(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[14] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[15] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -746,7 +778,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[15] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[16] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_8;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;@@ -759,7 +791,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp = QuoteIndependentAttributeValueContent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[16] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[17] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -774,7 +806,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;content.append(t.image.substring(0, 1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[17] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[18] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -791,7 +823,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[18] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[19] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_9;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;@@ -804,7 +836,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp = QuoteIndependentAttributeValueContent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[19] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[20] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -819,13 +851,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; content.append(t.image.substring(0, 1));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[20] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[21] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[21] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[22] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -870,7 +902,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp = JspExpressionInAttribute();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[22] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[23] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -912,7 +944,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[23] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[24] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_10;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t = jj_consume_token(COMMENT_TEXT);
&lt;br&gt;@@ -945,7 +977,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[24] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[25] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_11;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Attribute();
&lt;br&gt;@@ -987,7 +1019,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(WHITESPACES);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[25] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[26] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;@@ -999,12 +1031,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(WHITESPACES);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[26] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[27] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[27] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[28] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(DOCTYPE_DECL_END);
&lt;br&gt;@@ -1057,7 +1089,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setUri(quoteContent(systemLiteral.image));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[28] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[29] = jj_gen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(-1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new ParseException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1068,6 +1100,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;final public void HtmlScript() throws ParseException {
&lt;br&gt;+ /*@bgen(jjtree) HtmlScript */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASTHtmlScript jjtn000 = new ASTHtmlScript(this, JJTHTMLSCRIPT);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean jjtc000 = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.openNodeScope(jjtn000);StringBuffer content = new StringBuffer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Token t;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;label_12:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case HTML_SCRIPT_CONTENT:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1[30] = jj_gen;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break label_12;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;t = jj_consume_token(HTML_SCRIPT_CONTENT);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;content.append(t.image);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_consume_token(HTML_SCRIPT_END_TAG);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.closeNodeScope(jjtn000, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtc000 = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtn000.setImage(content.toString().trim());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;} finally {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjtc000) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.closeNodeScope(jjtn000, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_2_1(int xla) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la = xla; jj_lastpos = jj_scanpos = token;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;try { return !jj_3_1(); }
&lt;br&gt;@@ -1082,102 +1145,79 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;finally { jj_save(1, xla); }
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_30() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOUBLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_22() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_26()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_32()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(72)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_33()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_29() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(PUBLIC)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_16() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_START)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_47() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(VALUE_BINDING_IN_ATTRIBUTE)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_27() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(NAME)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_30()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_31()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_22()) jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_3R_25() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_28()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_29()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_NAME)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_EQ)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_28()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_28() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(SYSTEM)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_41() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_DOUBLE_QUOTES)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_21() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_19() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_25()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_40() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_DOUBLE_QUOTES)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_14() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_START)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(TAG_NAME)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_19()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_15() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(NAME)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(48)) jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_21()) jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOCTYPE_DECL_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_21() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_24()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_24() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_NAME)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(ATTR_EQ)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_27()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_43() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_SINGLE_QUOTES)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_20() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_27() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_TEXT)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_42() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(UNPARSED_TEXT_NO_SINGLE_QUOTES)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_23() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_START)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_27()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1186,51 +1226,43 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_13() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(TAG_NAME)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_18()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DECL_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_49() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_17() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_46() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_49()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_26() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_TEXT)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_45() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_48()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_19() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_22()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_44() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_47()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_14() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_20() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_15() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_19()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_20()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_20()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_21()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_22() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_26()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(COMMENT_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_40() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_42()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1238,34 +1270,52 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_14()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_15()) { jj_scanpos = xsp; break; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_15()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_16()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_12() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_36() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_SINGLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_39() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_43()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_13() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_16()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_17()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_17()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_18()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_16() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_22()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_17() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_23()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_48() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_34() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_DOUBLE_QUOTE)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_45() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_48()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_42() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_44()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_45()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_46()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1273,29 +1323,19 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_12()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_13()) { jj_scanpos = xsp; break; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_13()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_14()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_44() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_47()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_43() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_46()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_39() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_41()) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;- &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_3R_35() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_SINGLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_39()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_40()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1304,81 +1344,104 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_33() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOLLAR_OR_HASH_DOUBLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_37() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_41()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_41() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_33() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_43()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_37()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_44()) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_45()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_38()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_34() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_32() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(SINGLE_QUOTE)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_35()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_38()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(69)) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_39()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_36()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_37() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_41()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_24() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_START)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_CONTENT)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_END)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_36() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_40()) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_31() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(DOUBLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_33()) { jj_scanpos = xsp; break; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(72)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_34()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_23() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_START)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_CONTENT)) return true;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(JSP_COMMENT_END)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_30() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(PUBLIC)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_32() {
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_47() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(EL_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_28() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_36()) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_31()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_37()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_32()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_31() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(SINGLE_QUOTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_26() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Token xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;while (true) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_3R_34()) { jj_scanpos = xsp; break; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsp = jj_scanpos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(69)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_29()) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_scanpos = xsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_3R_35()) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_3R_30()) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp;private boolean jj_3R_46() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (jj_scan_token(EL_EXPRESSION_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_29() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(SYSTEM)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(WHITESPACES)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(QUOTED_LITERAL)) return true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp;private boolean jj_3R_48() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (jj_scan_token(VALUE_BINDING_IN_ATTRIBUTE)) return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;+ &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Generated Token Manager. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;public JspParserTokenManager token_source;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Current token. */
&lt;br&gt;@@ -1389,7 +1452,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;private Token jj_scanpos, jj_lastpos;
&lt;br&gt;&amp;nbsp; &amp;nbsp;private int jj_la;
&lt;br&gt;&amp;nbsp; &amp;nbsp;private int jj_gen;
&lt;br&gt;- &amp;nbsp;final private int[] jj_la1 = new int[29];
&lt;br&gt;+ &amp;nbsp;final private int[] jj_la1 = new int[31];
&lt;br&gt;&amp;nbsp; &amp;nbsp;static private int[] jj_la1_0;
&lt;br&gt;&amp;nbsp; &amp;nbsp;static private int[] jj_la1_1;
&lt;br&gt;&amp;nbsp; &amp;nbsp;static private int[] jj_la1_2;
&lt;br&gt;@@ -1399,13 +1462,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_init_2();
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void jj_la1_init_0() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_0 = new int[] {0x11000000,0x11000000,0x11000000,0x11000000,0xf9400000,0xf9400000,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_0 = new int[] {0x11000000,0x11000000,0x11000000,0x11000000,0xf9400000,0xf9400000,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0xf9400000,0xf9400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void jj_la1_init_1() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x7,0x1,0x1,0x6,0x10,0x6,0x6,0x400000,0x4000000,0x7,0x28000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x10000,0x10000,0xc0000,0xc0000,};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x7,0x1,0x1,0x6,0x10,0x6,0x6,0x400000,0x4000000,0x7,0x7,0x28000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x10000,0x10000,0xc0000,0xc0000,0x0,};
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; private static void jj_la1_init_2() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x21c,0x21c,0x500,0x5c,0x5c,0xa0,0x3,0x1c,0x1000,0x0,0x0,0x0,0x0,0x0,};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_la1_2 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x6000,0x0,0x21c,0x21c,0x500,0x5c,0x5c,0xa0,0x3,0x1c,0x1000,0x0,0x0,0x0,0x0,0x0,0x2000,};
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp;final private JJCalls[] jj_2_rtns = new JJCalls[2];
&lt;br&gt;&amp;nbsp; &amp;nbsp;private boolean jj_rescan = false;
&lt;br&gt;@@ -1417,7 +1480,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;token = new Token();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1428,7 +1491,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.reset();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1438,7 +1501,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;token = new Token();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1449,7 +1512,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_ntk = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jjtree.reset();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_gen = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) jj_la1[i] = -1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) jj_la1[i] = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
&lt;br&gt;&amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1561,12 +1624,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Generate ParseException. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;public ParseException generateParseException() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentries.clear();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;boolean[] la1tokens = new boolean[77];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;boolean[] la1tokens = new boolean[79];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_kind &amp;gt;= 0) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;la1tokens[jj_kind] = true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_kind = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 29; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 31; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jj_la1[i] == jj_gen) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int j = 0; j &amp;lt; 32; j++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jj_la1_0[i] &amp; (1&amp;lt;&amp;lt;j)) != 0) {
&lt;br&gt;@@ -1581,7 +1644,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 77; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 79; i++) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (la1tokens[i]) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentry = new int[1];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jj_expentry[0] = i;
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserConstants.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserConstants.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserConstants.java	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -1,7 +1,7 @@
&lt;br&gt;&amp;nbsp;/* Generated By:JJTree&amp;JavaCC: Do not edit this line. JspParserConstants.java */
&lt;br&gt;&amp;nbsp;/** 
&lt;br&gt;&amp;nbsp; * JSP Parser for PMD.
&lt;br&gt;- * @author Pieter � Application Engineers NV/SA � &lt;a href=&quot;http://www.ae.be&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ae.be&lt;/a&gt;&lt;br&gt;+ * @author Pieter \x96 Application Engineers NV/SA \x96 &lt;a href=&quot;http://www.ae.be&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ae.be&lt;/a&gt;&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;package net.sourceforge.pmd.jsp.ast;
&lt;br&gt;@@ -163,41 +163,47 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;int COMMENT_END = 75;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** RegularExpression Id. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;int COMMENT_TEXT = 76;
&lt;br&gt;+ &amp;nbsp;/** RegularExpression Id. */
&lt;br&gt;+ &amp;nbsp;int HTML_SCRIPT_CONTENT = 77;
&lt;br&gt;+ &amp;nbsp;/** RegularExpression Id. */
&lt;br&gt;+ &amp;nbsp;int HTML_SCRIPT_END_TAG = 78;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int CommentState = 0;
&lt;br&gt;+ &amp;nbsp;int HtmlScriptContentState = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AttrValueBetweenDoubleQuotesState = 1;
&lt;br&gt;+ &amp;nbsp;int CommentState = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AttrValueBetweenSingleQuotesState = 2;
&lt;br&gt;+ &amp;nbsp;int AttrValueBetweenDoubleQuotesState = 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int StartTagState = 3;
&lt;br&gt;+ &amp;nbsp;int AttrValueBetweenSingleQuotesState = 3;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int CDataState = 4;
&lt;br&gt;+ &amp;nbsp;int StartTagState = 4;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int DocTypeExternalIdState = 5;
&lt;br&gt;+ &amp;nbsp;int CDataState = 5;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int DocTypeState = 6;
&lt;br&gt;+ &amp;nbsp;int DocTypeExternalIdState = 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspCommentState = 7;
&lt;br&gt;+ &amp;nbsp;int DocTypeState = 7;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspDeclarationState = 8;
&lt;br&gt;+ &amp;nbsp;int JspCommentState = 8;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspExpressionState = 9;
&lt;br&gt;+ &amp;nbsp;int JspDeclarationState = 9;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspScriptletState = 10;
&lt;br&gt;+ &amp;nbsp;int JspExpressionState = 10;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int InTagState = 11;
&lt;br&gt;+ &amp;nbsp;int JspScriptletState = 11;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AfterTagState = 12;
&lt;br&gt;+ &amp;nbsp;int InTagState = 12;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int AttrValueState = 13;
&lt;br&gt;+ &amp;nbsp;int AfterTagState = 13;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspDirectiveAttributesState = 14;
&lt;br&gt;+ &amp;nbsp;int AttrValueState = 14;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int JspDirectiveState = 15;
&lt;br&gt;+ &amp;nbsp;int JspDirectiveAttributesState = 15;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Lexical state. */
&lt;br&gt;- &amp;nbsp;int DEFAULT = 16;
&lt;br&gt;+ &amp;nbsp;int JspDirectiveState = 16;
&lt;br&gt;+ &amp;nbsp;/** Lexical state. */
&lt;br&gt;+ &amp;nbsp;int DEFAULT = 17;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Literal token values. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;String[] tokenImage = {
&lt;br&gt;@@ -278,6 +284,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;DOLLAR_OR_HASH_DOUBLE_QUOTE&amp;gt;&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;COMMENT_END&amp;gt;&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;COMMENT_TEXT&amp;gt;&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;HTML_SCRIPT_CONTENT&amp;gt;&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;HTML_SCRIPT_END_TAG&amp;gt;&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserTokenManager.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserTokenManager.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/jsp/ast/JspParserTokenManager.java	2009-12-05 22:34:45 UTC (rev 7015)
&lt;br&gt;@@ -1,7 +1,7 @@
&lt;br&gt;&amp;nbsp;/* Generated By:JJTree&amp;JavaCC: Do not edit this line. JspParserTokenManager.java */
&lt;br&gt;&amp;nbsp;/** 
&lt;br&gt;&amp;nbsp; * JSP Parser for PMD.
&lt;br&gt;- * @author Pieter � Application Engineers NV/SA � &lt;a href=&quot;http://www.ae.be&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ae.be&lt;/a&gt;&lt;br&gt;+ * @author Pieter \x96 Application Engineers NV/SA \x96 &lt;a href=&quot;http://www.ae.be&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ae.be&lt;/a&gt;&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;package net.sourceforge.pmd.jsp.ast;
&lt;br&gt;@@ -14,21 +14,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;public &amp;nbsp;java.io.PrintStream debugStream = System.out;
&lt;br&gt;&amp;nbsp; &amp;nbsp;/** Set debug output. */
&lt;br&gt;&amp;nbsp; &amp;nbsp;public &amp;nbsp;void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
&lt;br&gt;-private final int jjStopStringLiteralDfa_9(int pos, long active0)
&lt;br&gt;+private final int jjStopStringLiteralDfa_2(int pos, long active0, long active1)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch (pos)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_9(int pos, long active0)
&lt;br&gt;+private final int jjStartNfa_2(int pos, long active0, long active1)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_9(jjStopStringLiteralDfa_9(pos, active0), pos + 1);
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0, active1), pos + 1);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;private int jjStopAtPos(int pos, int kind)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;@@ -36,483 +32,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjmatchedPos = pos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; return pos + 1;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_9()
&lt;br&gt;+private int jjMoveStringLiteralDfa0_2()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_9(0x40000000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;case 34:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 72);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_9(3, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_2(9, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_9(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_9(0, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 42);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_9(0, active0);
&lt;br&gt;-}
&lt;br&gt;&amp;nbsp;static final long[] jjbitVec0 = {
&lt;br&gt;+ &amp;nbsp; 0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
&lt;br&gt;+};
&lt;br&gt;+static final long[] jjbitVec2 = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
&lt;br&gt;&amp;nbsp;};
&lt;br&gt;-private int jjMoveNfa_9(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 3;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 2;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 2;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xbfffffffffffffffL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 43)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 43;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddTwoStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_4()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 93:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_4(0x80000000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_4(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 93:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_4(active0, 0x80000000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_4(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x80000000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 55);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 3;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return 3;
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_6()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_6(1, 0);
&lt;br&gt;-}
&lt;br&gt;-static final long[] jjbitVec1 = {
&lt;br&gt;- &amp;nbsp; 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
&lt;br&gt;-};
&lt;br&gt;-private int jjMoveNfa_6(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 3;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 48)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 48;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ((0x400001000000000L &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 48;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec1[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 49)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 49;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_3()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_3(0, 0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_3(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 2;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar != 36)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec1[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_0()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_0(0, 0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_0(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 5;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(0, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(2, 3);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 32)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(2, 3);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 62 &amp;&amp; kind &amp;gt; 75)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 75;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 5 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStopStringLiteralDfa_2(int pos, long active0, long active1)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch (pos)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStartNfa_2(int pos, long active0, long active1)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0, active1), pos + 1);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_2()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 39:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 69);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_2(9, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;&amp;nbsp;private int jjMoveNfa_2(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;@@ -532,11 +67,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff67ffffffffL &amp; l) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffe3ffffffffL &amp; l) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ((0x1800000000L &amp; l) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(30, 36);
&lt;br&gt;@@ -549,7 +84,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff7bffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;@@ -561,7 +96,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;@@ -573,11 +108,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff7bffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 12:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;@@ -589,7 +124,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 14:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 15:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;@@ -601,7 +136,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 17:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 19:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 35)
&lt;br&gt;@@ -613,7 +148,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 22:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 37)
&lt;br&gt;@@ -621,7 +156,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xbfffffffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 24:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 62 &amp;&amp; kind &amp;gt; 68)
&lt;br&gt;@@ -640,22 +175,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 26;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff67ffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffe3ffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 29:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x1800000000L &amp; l) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(30);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 30:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffff7fffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xfffffffbffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 33:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 35)
&lt;br&gt;@@ -670,8 +205,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddTwoStates(30, 36);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 36:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 39 &amp;&amp; kind &amp;gt; 71)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 71;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 34 &amp;&amp; kind &amp;gt; 74)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 74;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -685,25 +220,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 92)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(16, 17);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(14, 15);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 123)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xdfffffffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(18, 19);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(16, 17);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(20, 21);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(18, 19);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 125 &amp;&amp; kind &amp;gt; 66)
&lt;br&gt;@@ -711,17 +246,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 10:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 123)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xdfffffffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(22, 23);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(20, 21);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(24, 25);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjAddStates(22, 23);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 18:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 125 &amp;&amp; kind &amp;gt; 67)
&lt;br&gt;@@ -729,30 +264,30 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 30:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xf7ffffffffffffffL &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 31:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 92)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(16, 17);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(14, 15);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 32:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar != 123)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -760,6 +295,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;@@ -769,40 +307,40 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 9:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 28:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 30:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 70)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 70;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(2, 4);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 73)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 73;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(0, 2);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(5, 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(3, 6);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(18, 19);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(16, 17);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(20, 21);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(18, 19);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 11:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(9, 12);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(7, 10);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 13:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(22, 23);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(20, 21);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 16:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(24, 25);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(22, 23);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 21:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 23:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(13, 15);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jjCanMove_0(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(11, 13);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -821,98 +359,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_7(int pos, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa0_4()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; switch (pos)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 4;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_4(0, 0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_7(int pos, long active0)
&lt;br&gt;+static final long[] jjbitVec3 = {
&lt;br&gt;+ &amp;nbsp; 0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
&lt;br&gt;+};
&lt;br&gt;+private int jjMoveNfa_4(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_7(jjStopStringLiteralDfa_7(pos, active0), pos + 1);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_7()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_7(0x400000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_7(8, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_7(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_7(0, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_7(active0, 0x400000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_7(0, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_7(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_7(0, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_7(1, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_7(active0, 0x400000000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_7(1, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa3_7(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_7(1, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_7(2, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x400000000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(3, 46);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_7(2, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_7(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 8;
&lt;br&gt;+ &amp;nbsp; jjnewStateCnt = 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int i = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;@@ -927,70 +384,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffffdfffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffdfffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 5;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 4;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffdfffffffffffL &amp; l) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(29, 30);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xffffdfffffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar != 36)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjAddStates(29, 30);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 37)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0xbfffffffffffffffL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 7:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 45)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjstateSet[jjnewStateCnt++] = 5;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -1002,58 +409,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 6:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 56)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 56;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 8:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((jjbitVec0[i2] &amp; l2) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 47)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 47;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAddStates(26, 28);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -1065,13 +451,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 2 - (jjnewStateCnt = startsAt)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_13(int pos, long active0, long active1)
&lt;br&gt;+private final int jjStopStringLiteralDfa_12(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch (pos)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;@@ -1079,320 +465,46 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_13(int pos, long active0, long active1)
&lt;br&gt;+private final int jjStartNfa_12(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_13(jjStopStringLiteralDfa_13(pos, active0, active1), pos + 1);
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_12(jjStopStringLiteralDfa_12(pos, active0), pos + 1);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_13()
&lt;br&gt;+private int jjMoveStringLiteralDfa0_12()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 34:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 65);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 39:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 64);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_13(0, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_13(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 1;
&lt;br&gt;- &amp;nbsp; int i = 1;
&lt;br&gt;- &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;- &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; for (;;)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (++jjround == 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReInitRounds();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar &amp;lt; 64)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; curChar;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 21;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjstateSet[jjnewStateCnt++] = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar &amp;lt; 128)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind != 0x7fffffff)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = kind;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedPos = curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 1 - (jjnewStateCnt = startsAt)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStopStringLiteralDfa_16(int pos, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch (pos)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private final int jjStartNfa_16(int pos, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_16(jjStopStringLiteralDfa_16(pos, active0), pos + 1);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_16()
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 60:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = 22;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_16(0x1ff800000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_16(0, 0);
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_16(long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(0, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_16(active0, 0xd000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x80000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedKind = 31;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedPos = 1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_16(active0, 0x170000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 47:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x800000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 23);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 63:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x2000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 25);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(0, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(0, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(1, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x20000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 29);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_16(active0, 0x11000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_12(0x2000000000000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 61:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 30);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 64:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x100000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 32);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 91:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_16(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 62);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjStopAtPos(0, 59);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_12(1, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(1, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa3_16(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa1_12(long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(1, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(2, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(0, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x1000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(3, 24);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else if ((active0 &amp; 0x10000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(3, 28);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;case 62:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x2000000000000000L) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 61);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 79:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 111:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_16(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(2, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_12(0, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa4_16(long old0, long active0)
&lt;br&gt;+private int jjMoveNfa_12(int startState, int curPos)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(2, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(3, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 4;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(3, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa5_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(3, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(4, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 5;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 65:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 97:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 84:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 116:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa6_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(4, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa6_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(4, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(5, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 6;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 84:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 116:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 89:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 121:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa7_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(5, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa7_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(5, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(6, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 7;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 65:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 97:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_16(active0, 0x8000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 80:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 112:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa8_16(active0, 0x4000000L);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(6, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveStringLiteralDfa8_16(long old0, long active0)
&lt;br&gt;-{
&lt;br&gt;- &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_16(6, old0);
&lt;br&gt;- &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;- &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_16(7, active0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return 8;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; switch(curChar)
&lt;br&gt;- &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 91:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x8000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(8, 27);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 69:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;case 101:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x4000000L) != 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(8, 26);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_16(7, active0);
&lt;br&gt;-}
&lt;br&gt;-private int jjMoveNfa_16(int startState, int curPos)
&lt;br&gt;-{
&lt;br&gt;&amp;nbsp; &amp;nbsp; int startsAt = 0;
&lt;br&gt;- &amp;nbsp; jjnewStateCnt = 1;
&lt;br&gt;+ &amp;nbsp; jjnewStateCnt = 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int i = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; jjstateSet[0] = startState;
&lt;br&gt;&amp;nbsp; &amp;nbsp; int kind = 0x7fffffff;
&lt;br&gt;@@ -1407,12 +519,49 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) != 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 21)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 21;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 33)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 36)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (curChar == 63)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x100002600L &amp; l) == 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 20;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjstateSet[jjnewStateCnt++] = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kind = 21;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7ff601000000000L &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 3:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 62)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 60;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 4:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 63)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 5:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (curChar == 33)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjCheckNAdd(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -1424,18 +573,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((0x7fffffe87fffffeL &amp; l) == 0L)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int hiByte = (int)(curChar &amp;gt;&amp;gt; 8);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i1 = hiByte &amp;gt;&amp;gt; 6;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l1 = 1L &amp;lt;&amp;lt; (hiByte &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int i2 = (curChar &amp; 0xff) &amp;gt;&amp;gt; 6;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; long l2 = 1L &amp;lt;&amp;lt; (curChar &amp; 077);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch(jjstateSet[--i])
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case 2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (kind &amp;gt; 58)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 58;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjCheckNAdd(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default : break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } while(i != startsAt);
&lt;br&gt;@@ -1447,13 +615,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kind = 0x7fffffff;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;++curPos;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 1 - (jjnewStateCnt = startsAt)))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((i = jjnewStateCnt) == (startsAt = 6 - (jjnewStateCnt = startsAt)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return curPos;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(java.io.IOException e) { return curPos; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStopStringLiteralDfa_12(int pos, long active0)
&lt;br&gt;+private final int jjStopStringLiteralDfa_13(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch (pos)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;@@ -1461,39 +629,39 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private final int jjStartNfa_12(int pos, long active0)
&lt;br&gt;+private final int jjStartNfa_13(int pos, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; return jjMoveNfa_12(jjStopStringLiteralDfa_12(pos, active0), pos + 1);
&lt;br&gt;+ &amp;nbsp; return jjMoveNfa_13(jjStopStringLiteralDfa_13(pos, active0), pos + 1);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa0_12()
&lt;br&gt;+private int jjMoveStringLiteralDfa0_13()
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 60:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jjmatchedKind = 22;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_12(0x1ff800000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa1_13(0x1ff800000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_12(10, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveNfa_13(10, 0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa1_12(long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa1_13(long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(0, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(0, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 33:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_12(active0, 0xd000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_13(active0, 0xd000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 37:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x80000000L) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedKind = 31;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jjmatchedPos = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_12(active0, 0x170000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa2_13(active0, 0x170000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 47:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x800000L) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(1, 23);
&lt;br&gt;@@ -1505,15 +673,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(0, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(0, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa2_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa2_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(0, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(0, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(1, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(1, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;@@ -1523,7 +691,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 29);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 45:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_12(active0, 0x11000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_13(active0, 0x11000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 61:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((active0 &amp; 0x40000000L) != 0L)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 30);
&lt;br&gt;@@ -1533,22 +701,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStopAtPos(2, 32);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 91:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa3_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(1, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(1, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa3_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa3_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(1, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(1, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(2, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(2, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;@@ -1561,110 +729,110 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 79:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 111:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa4_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(2, active0);
&lt;br&gt;+ &amp;nbsp; return jjStartNfa_13(2, active0);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;-private int jjMoveStringLiteralDfa4_12(long old0, long active0)
&lt;br&gt;+private int jjMoveStringLiteralDfa4_13(long old0, long active0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; if (((active0 &amp;= old0)) == 0L)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_12(2, old0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;return jjStartNfa_13(2, old0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; try { curChar = input_stream.readChar(); }
&lt;br&gt;&amp;nbsp; &amp;nbsp; catch(java.io.IOException e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_12(3, active0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;jjStopStringLiteralDfa_13(3, active0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 4;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;nbsp; &amp;nbsp; switch(curChar)
&lt;br&gt;&amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 67:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 99:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_12(active0, 0x4000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_13(active0, 0x4000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 68:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case 100:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_12(active0, 0x8000000L);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jjMoveStringLiteralDfa5_13(active0, 0x8000000L);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default :
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; return jjStartNfa_12(3, active0);
&lt;br&gt;&lt;br&gt;@@ Diff output truncated at 100000 characters. @@
&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26660100&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7015--branches-pmd-4.2.x-tp26660100p26660100.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26657484</id>
	<title>SF.net SVN: pmd:[7014] trunk/pmd-jedit/PMDPlugin</title>
	<published>2009-12-05T09:25:19Z</published>
	<updated>2009-12-05T09:25:19Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7014
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7014&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7014&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-05 17:25:18 +0000 (Sat, 05 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Put hard-coded strings in properties file so they can be localized.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/PMDPlugin.props
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDDuplicateCodeViewer.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDGeneralOptionPane.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDRulesOptionPane.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/SelectedRules.java
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/PMDPlugin.props
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/PMDPlugin.props	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/PMDPlugin.props	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;@@ -8,8 +8,11 @@
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.depend.0=jdk 1.5
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.depend.1=jedit 04.03.18.00
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.depend.2=plugin errorlist.ErrorListPlugin 1.8
&lt;br&gt;+plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.depend.3=plugin CommonControlsPlugin 1.1
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.jars=pmd-4.2.5.jar jaxen-1.1.1.jar asm-3.1.jar
&lt;br&gt;&amp;nbsp;plugin.net.sourceforge.pmd.jedit.PMDJEditPlugin.description=The PMD plugin is a Java source code analysis tool.
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;#
&lt;br&gt;&amp;nbsp;# Menu properties
&lt;br&gt;&amp;nbsp;#
&lt;br&gt;@@ -71,4 +74,41 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+# various strings
&lt;br&gt;+net.sf.pmd.CPD,_Select_File_Type=CPD, Select File Type
&lt;br&gt;+net.sf.pmd.CPD_does_not_yet_support_this_file_type&amp;gt;_=CPD does not yet support this file type: 
&lt;br&gt;+net.sf.pmd.Cannot_run_CPD_on_Invalid_directory/files.=Cannot run CPD on Invalid directory/files.
&lt;br&gt;+net.sf.pmd.Copy/Paste_Detector=Copy/Paste Detector
&lt;br&gt;+net.sf.pmd.Copy/Paste_detection_can_not_be_performed_on_this_file\nbecause_the_mode_can_not_be_determined.=Copy/Paste detection can not be performed on this file\nbecause the mode can not be determined.
&lt;br&gt;+net.sf.pmd.Description=Description
&lt;br&gt;+net.sf.pmd.Error_Loading_Custom_Ruleset=Error Loading Custom Ruleset
&lt;br&gt;+net.sf.pmd.Error_Loading_Rules=Error Loading Rules
&lt;br&gt;+net.sf.pmd.Error_loading_rules._Check_any_custom_rulesets_for_errors.=Error loading rules. Check any custom rulesets for errors.
&lt;br&gt;+net.sf.pmd.Error_while_processing_=Error while processing 
&lt;br&gt;+net.sf.pmd.Example=Example
&lt;br&gt;+net.sf.pmd.Export_Output_as_=Export Output as 
&lt;br&gt;+net.sf.pmd.Ignore_Literals_&amp;_identifiers_when_detecting_Duplicate_Code=Ignore Literals &amp; identifiers when detecting Duplicate Code
&lt;br&gt;+net.sf.pmd.Invalid_Renderer=Invalid Renderer
&lt;br&gt;+net.sf.pmd.Minimum_Tile_Size&amp;gt;=Minimum Tile Size:
&lt;br&gt;+net.sf.pmd.Minimum_Tile_size_&amp;gt;=Minimum Tile size :
&lt;br&gt;+net.sf.pmd.No_duplicates_found.=No duplicates found.
&lt;br&gt;+net.sf.pmd.No_problems_found=No problems found
&lt;br&gt;+net.sf.pmd.One_Directory_has_to_be_selected_in_which_to_detect_duplicate_code.=One Directory has to be selected in which to detect duplicate code.
&lt;br&gt;+net.sf.pmd.One_file_must_be_selected=One file must be selected
&lt;br&gt;+net.sf.pmd.PMD_Check_in_Progress=PMD Check in Progress
&lt;br&gt;+net.sf.pmd.PMD_General_Options=PMD General Options
&lt;br&gt;+net.sf.pmd.Please_see_http&amp;gt;//pmd.sf.net/_for_more_information=Please see &lt;a href=&quot;http://pmd.sf.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sf.net/&lt;/a&gt;&amp;nbsp;for more information
&lt;br&gt;+net.sf.pmd.Print_Rulename_in_ErrorList=Print Rulename in ErrorList
&lt;br&gt;+net.sf.pmd.Recursive=Recursive
&lt;br&gt;+net.sf.pmd.Rules=Rules
&lt;br&gt;+net.sf.pmd.Run_PMD_on_Save=Run PMD on Save
&lt;br&gt;+net.sf.pmd.Select_default_rules=Select default rules
&lt;br&gt;+net.sf.pmd.Select_type_of_files_to_check&amp;gt;=Select type of files to check:
&lt;br&gt;+net.sf.pmd.Selected_file_cannot_be_a_Directory.=Selected file cannot be a Directory.
&lt;br&gt;+net.sf.pmd.Selected_file_must_be_a_Directory.=Selected file must be a Directory.
&lt;br&gt;+net.sf.pmd.Selection_must_be_a_directory=Selection must be a directory
&lt;br&gt;+net.sf.pmd.Selection_not_a_directory.=Selection not a directory.
&lt;br&gt;+net.sf.pmd.Show_PMD_Progress_Bar=Show PMD Progress Bar
&lt;br&gt;+net.sf.pmd.There_was_an_error_loading_one_or_more_custom_rulesets,_so_no_custom_rulesets_were_loaded=There was an error loading one or more custom rulesets, so no custom rulesets were loaded
&lt;br&gt;+net.sf.pmd.Unable_to_find_rulesets,_halting_PMD=Unable to find rulesets, halting PMD
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDDuplicateCodeViewer.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDDuplicateCodeViewer.java	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDDuplicateCodeViewer.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;@@ -26,167 +26,141 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;*
&lt;br&gt;&amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-public class CPDDuplicateCodeViewer &amp;nbsp;extends JPanel
&lt;br&gt;-{
&lt;br&gt;-	JTree tree;
&lt;br&gt;-	DefaultTreeModel treeModel = new DefaultTreeModel(new DefaultMutableTreeNode(&amp;quot;CPD Results&amp;quot;,true));
&lt;br&gt;-	View view;
&lt;br&gt;+public class CPDDuplicateCodeViewer extends JPanel {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;JTree tree;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;DefaultTreeModel treeModel = new DefaultTreeModel( new DefaultMutableTreeNode( &amp;quot;CPD Results&amp;quot;, true ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;View view;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public CPDDuplicateCodeViewer(View view)
&lt;br&gt;-	{
&lt;br&gt;-		this.view = view;
&lt;br&gt;-		setLayout(new BorderLayout());
&lt;br&gt;-		tree = new JTree(treeModel);
&lt;br&gt;-		tree.getSelectionModel().setSelectionMode
&lt;br&gt;-		(TreeSelectionModel.SINGLE_TREE_SELECTION);
&lt;br&gt;-		tree.addTreeSelectionListener(new TreeSelectionListener()
&lt;br&gt;-									 &amp;nbsp;{
&lt;br&gt;-										 &amp;nbsp;public void valueChanged(TreeSelectionEvent e)
&lt;br&gt;-										 &amp;nbsp;{
&lt;br&gt;-											 &amp;nbsp;DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
&lt;br&gt;-											 &amp;nbsp;if (node != null)
&lt;br&gt;-											 &amp;nbsp;{
&lt;br&gt;-												 &amp;nbsp;//System.out.println(&amp;quot;Node is &amp;quot; + node +&amp;quot; class &amp;quot;+ node.getClass());
&lt;br&gt;-												 &amp;nbsp;if (node.isLeaf() &amp;&amp; node instanceof Duplicate)
&lt;br&gt;-												 &amp;nbsp;{
&lt;br&gt;-													 &amp;nbsp;Duplicate duplicate = (Duplicate)node;
&lt;br&gt;-													 &amp;nbsp;gotoDuplicate(duplicate);
&lt;br&gt;-													 &amp;nbsp;//System.out.println(&amp;quot;Got!! &amp;quot; + duplicate);
&lt;br&gt;-												 &amp;nbsp;}
&lt;br&gt;-											 &amp;nbsp;}
&lt;br&gt;-										 &amp;nbsp;}
&lt;br&gt;-									 &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public CPDDuplicateCodeViewer( View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.view = view;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setLayout( new BorderLayout() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tree = new JTree( treeModel );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tree.getSelectionModel().setSelectionMode
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( TreeSelectionModel.SINGLE_TREE_SELECTION );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tree.addTreeSelectionListener(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new TreeSelectionListener() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void valueChanged( TreeSelectionEvent e ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DefaultMutableTreeNode node = ( DefaultMutableTreeNode ) tree.getLastSelectedPathComponent();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( node != null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//System.out.println(&amp;quot;Node is &amp;quot; + node +&amp;quot; class &amp;quot;+ node.getClass());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( node.isLeaf() &amp;&amp; node instanceof Duplicate ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Duplicate duplicate = ( Duplicate ) node;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;gotoDuplicate( duplicate );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//System.out.println(&amp;quot;Got!! &amp;quot; + duplicate);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		add(new JScrollPane(tree));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;add( new JScrollPane( tree ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	}//End of CPDDuplicateCodeViewer constructor
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;} //End of CPDDuplicateCodeViewer constructor
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public void refreshTree()
&lt;br&gt;-	{
&lt;br&gt;-		treeModel.reload();
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void refreshTree() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;treeModel.reload();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public void gotoDuplicate(final Duplicate duplicate)
&lt;br&gt;-	{
&lt;br&gt;-		if(duplicate != null)
&lt;br&gt;-		{
&lt;br&gt;-			final Buffer buffer = jEdit.openFile(view,duplicate.getFilename());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void gotoDuplicate( final Duplicate duplicate ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( duplicate != null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final Buffer buffer = jEdit.openFile( view, duplicate.getFilename() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-			VFSManager.runInAWTThread(new Runnable()
&lt;br&gt;-			{
&lt;br&gt;-				public void run()
&lt;br&gt;-				{
&lt;br&gt;-					view.setBuffer(buffer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSManager.runInAWTThread(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Runnable() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void run() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.setBuffer( buffer );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-					int start = buffer.getLineStartOffset(duplicate.getBeginLine()-1);
&lt;br&gt;-					int end = buffer.getLineEndOffset(duplicate.getEndLine());
&lt;br&gt;-					//Log.log(Log.DEBUG, this.getClass(), &amp;quot;Start Line &amp;quot;+ duplicate.getBeginLine() + &amp;quot; End Line &amp;quot;+ duplicate.getEndLine() + &amp;quot; Start &amp;quot; + start + &amp;quot; End &amp;quot;+ end);
&lt;br&gt;-					//Since an AIOOB Exception is thrown if the end is the end of file. we do a -1 from end to fix it.
&lt;br&gt;-					view.getTextArea().setSelection(new Selection.Range(start,end-1));
&lt;br&gt;-					view.getTextArea().moveCaretPosition(start);
&lt;br&gt;-				}
&lt;br&gt;-			});
&lt;br&gt;-		}
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int start = buffer.getLineStartOffset( duplicate.getBeginLine() - 1 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int end = buffer.getLineEndOffset( duplicate.getEndLine() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Log.log(Log.DEBUG, this.getClass(), &amp;quot;Start Line &amp;quot;+ duplicate.getBeginLine() + &amp;quot; End Line &amp;quot;+ duplicate.getEndLine() + &amp;quot; Start &amp;quot; + start + &amp;quot; End &amp;quot;+ end);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Since an AIOOB Exception is thrown if the end is the end of file. we do a -1 from end to fix it.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getTextArea().setSelection( new Selection.Range( start, end - 1 ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getTextArea().moveCaretPosition( start );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public DefaultMutableTreeNode getRoot()
&lt;br&gt;-	{
&lt;br&gt;-		return (DefaultMutableTreeNode)treeModel.getRoot();
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public DefaultMutableTreeNode getRoot() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ( DefaultMutableTreeNode ) treeModel.getRoot();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public void addDuplicates(Duplicates duplicates)
&lt;br&gt;-	{
&lt;br&gt;-		//System.out.println(&amp;quot;Inside addDuplicates &amp;quot; + duplicates +&amp;quot; Root child count &amp;quot;+ treeModel.getChildCount(treeModel.getRoot()));
&lt;br&gt;-		getRoot().add(duplicates);
&lt;br&gt;-		//vecDuplicates.addElement(duplicates);
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void addDuplicates( Duplicates duplicates ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//System.out.println(&amp;quot;Inside addDuplicates &amp;quot; + duplicates +&amp;quot; Root child count &amp;quot;+ treeModel.getChildCount(treeModel.getRoot()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getRoot().add( duplicates );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//vecDuplicates.addElement(duplicates);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public class Duplicates extends DefaultMutableTreeNode
&lt;br&gt;-	{
&lt;br&gt;-		//List vecduplicate = new ArrayList();
&lt;br&gt;-		String message, sourcecode;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public class Duplicates extends DefaultMutableTreeNode {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//List vecduplicate = new ArrayList();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String message, sourcecode;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public Duplicates(String message, String sourcecode)
&lt;br&gt;-		{
&lt;br&gt;-			this.message = message;
&lt;br&gt;-			this.sourcecode = sourcecode;
&lt;br&gt;-		}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Duplicates( String message, String sourcecode ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.message = message;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.sourcecode = sourcecode;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public String getSourceCode()
&lt;br&gt;-		{
&lt;br&gt;-			return sourcecode;
&lt;br&gt;-		}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getSourceCode() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sourcecode;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public void addDuplicate(Duplicate duplicate)
&lt;br&gt;-		{
&lt;br&gt;-			add(duplicate);
&lt;br&gt;-			//vecduplicate.addElement(duplicate);
&lt;br&gt;-		}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void addDuplicate( Duplicate duplicate ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;add( duplicate );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//vecduplicate.addElement(duplicate);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public String toString()
&lt;br&gt;-		{
&lt;br&gt;-			return message;
&lt;br&gt;-		}
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return message;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public class Duplicate extends DefaultMutableTreeNode
&lt;br&gt;-	{
&lt;br&gt;-		private final String filename;
&lt;br&gt;-		private final int beginLine, endLine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public class Duplicate extends DefaultMutableTreeNode {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final String filename;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private final int beginLine, endLine;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public Duplicate(String filename,int beginLine, int endLine)
&lt;br&gt;-		{
&lt;br&gt;-			this.filename = filename;
&lt;br&gt;-			this.beginLine = beginLine;
&lt;br&gt;-			this.endLine = endLine;
&lt;br&gt;-		}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Duplicate( String filename, int beginLine, int endLine ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.filename = filename;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.beginLine = beginLine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.endLine = endLine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public String getFilename()
&lt;br&gt;-		{
&lt;br&gt;-			return filename;
&lt;br&gt;-		}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String getFilename() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return filename;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public int getBeginLine()
&lt;br&gt;-		{
&lt;br&gt;-			return beginLine;
&lt;br&gt;-		}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int getBeginLine() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return beginLine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public int getEndLine()
&lt;br&gt;-		{
&lt;br&gt;-			return endLine;
&lt;br&gt;-		}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int getEndLine() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return endLine;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-		public String toString()
&lt;br&gt;-		{
&lt;br&gt;-			return filename + &amp;quot;:&amp;quot;+ (getBeginLine())+&amp;quot;-&amp;quot;+(getEndLine());
&lt;br&gt;-		}
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return filename + &amp;quot;:&amp;quot; + ( getBeginLine() ) + &amp;quot;-&amp;quot; + ( getEndLine() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public void expandAll()
&lt;br&gt;-	{
&lt;br&gt;-		int row = 0;
&lt;br&gt;-		while (row &amp;lt; tree.getRowCount())
&lt;br&gt;-		{
&lt;br&gt;-			tree.expandRow(row);
&lt;br&gt;-			row++;
&lt;br&gt;-		}
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void expandAll() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int row = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while ( row &amp;lt; tree.getRowCount() ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tree.expandRow( row );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row++;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public void collapseAll()
&lt;br&gt;-	{
&lt;br&gt;-		int row = tree.getRowCount() - 1;
&lt;br&gt;-		while (row &amp;gt;= 0) {
&lt;br&gt;-			tree.collapseRow(row);
&lt;br&gt;-			row--;
&lt;br&gt;-		}
&lt;br&gt;-	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void collapseAll() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int row = tree.getRowCount() - 1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while ( row &amp;gt;= 0 ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tree.collapseRow( row );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row--;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-	public void clearDuplicates()
&lt;br&gt;-	{
&lt;br&gt;-		getRoot().removeAllChildren();
&lt;br&gt;-	}
&lt;br&gt;-
&lt;br&gt;-}//End of class CPDDuplicateCodeViewer
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void clearDuplicates() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getRoot().removeAllChildren();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/CPDFileFilter.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;@@ -44,7 +44,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get the file name extension
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String name = f.getName();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int index = name.lastIndexOf(&amp;quot;.&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int index = name.lastIndexOf('.');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (index == -1) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -71,4 +71,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public String getMode() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return mode; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String toString() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return description; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDGeneralOptionPane.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDGeneralOptionPane.java	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDGeneralOptionPane.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;@@ -44,16 +44,16 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;javaVersionBox = new JComboBox( PMDJEditPlugin.sourceTypes );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkRunPMDOnSave = new JCheckBox( &amp;quot;Run PMD on Save&amp;quot;, jEdit.getBooleanProperty( PMDJEditPlugin.RUN_PMD_ON_SAVE ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkShowProgressBar = new JCheckBox( &amp;quot;Show PMD Progress Bar&amp;quot;, jEdit.getBooleanProperty( PMDJEditPlugin.SHOW_PROGRESS ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkIgnoreLiterals = new JCheckBox( &amp;quot;Ignore Literals &amp; identifiers when detecting Duplicate Code&amp;quot;, jEdit.getBooleanProperty( PMDJEditPlugin.IGNORE_LITERALS ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkPrintRule = new JCheckBox( &amp;quot;Print Rulename in ErrorList&amp;quot;, jEdit.getBooleanProperty( PMDJEditPlugin.PRINT_RULE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkRunPMDOnSave = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Run_PMD_on_Save&amp;quot;, &amp;quot;Run PMD on Save&amp;quot;), jEdit.getBooleanProperty( PMDJEditPlugin.RUN_PMD_ON_SAVE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkShowProgressBar = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Show_PMD_Progress_Bar&amp;quot;, &amp;quot;Show PMD Progress Bar&amp;quot;), jEdit.getBooleanProperty( PMDJEditPlugin.SHOW_PROGRESS ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkIgnoreLiterals = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Ignore_Literals_&amp;_identifiers_when_detecting_Duplicate_Code&amp;quot;, &amp;quot;Ignore Literals &amp; identifiers when detecting Duplicate Code&amp;quot;), jEdit.getBooleanProperty( PMDJEditPlugin.IGNORE_LITERALS ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chkPrintRule = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Print_Rulename_in_ErrorList&amp;quot;, &amp;quot;Print Rulename in ErrorList&amp;quot;), jEdit.getBooleanProperty( PMDJEditPlugin.PRINT_RULE ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlSouth = new JPanel( new GridLayout( 0, 1 ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlTileSize = new JPanel();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( ( FlowLayout ) pnlTileSize.getLayout() ).setAlignment( FlowLayout.LEFT );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( &amp;quot;Minimum Tile Size :&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Minimum_Tile_Size&amp;gt;&amp;quot;, &amp;quot;Minimum Tile Size:&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;txtMinTileSize = new JTextField( jEdit.getProperty( PMDJEditPlugin.DEFAULT_TILE_MINSIZE_PROPERTY, &amp;quot;100&amp;quot; ), 5 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTileSize.add( lblMinTileSize );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTileSize.add( txtMinTileSize );
&lt;br&gt;@@ -62,7 +62,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;comboRenderer.setSelectedItem( jEdit.getProperty( PMDJEditPlugin.RENDERER ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblRenderer = new JLabel( &amp;quot;Export Output as &amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblRenderer = new JLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Export_Output_as_&amp;quot;, &amp;quot;Export Output as &amp;quot;) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTileSize.add( lblRenderer );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTileSize.add( comboRenderer );
&lt;br&gt;@@ -74,7 +74,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel mainPanel = new JPanel();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainPanel.setLayout( new BorderLayout() );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainPanel.add(new JLabel(&amp;quot;PMD General Options&amp;quot;), BorderLayout.NORTH);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mainPanel.add(new JLabel(jEdit.getProperty(&amp;quot;net.sf.pmd.PMD_General_Options&amp;quot;, &amp;quot;PMD General Options&amp;quot;)), BorderLayout.NORTH);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlSouth.add( javaVersionBox );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlSouth.add( chkRunPMDOnSave );
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;@@ -128,7 +128,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( &amp;quot;Recursive&amp;quot;, jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Recursive&amp;quot;, &amp;quot;Recursive&amp;quot;), jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( chkRecursive );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory( pnlAccessory );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -141,7 +141,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedFile = chooser.getSelectedFile();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !selectedFile.isDirectory() ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selection not a directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selection_not_a_directory.&amp;quot;, &amp;quot;Selection not a directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -213,7 +213,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// only show popup if run on save is NOT selected, otherwise it is annoying
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean run_on_save = jEdit.getBooleanProperty( PMDJEditPlugin.RUN_PMD_ON_SAVE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !run_on_save ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;No problems found&amp;quot;, NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.No_problems_found&amp;quot;, &amp;quot;No problems found&amp;quot;), NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -238,7 +238,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;RuleSet not found&amp;quot;, rsne );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( PMDException pmde ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = &amp;quot;Error while processing &amp;quot; + buffer.getPath() + &amp;quot;:\n&amp;quot; + pmde.getMessage() + &amp;quot;\n\n&amp;quot; + pmde.getCause();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = jEdit.getProperty(&amp;quot;net.sf.pmd.Error_while_processing_&amp;quot;, &amp;quot;Error while processing &amp;quot;) + buffer.getPath() + &amp;quot;:\n&amp;quot; + pmde.getMessage() + &amp;quot;\n\n&amp;quot; + pmde.getCause();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, msg, pmde );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -285,7 +285,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( RuleSetNotFoundException rsne ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// should never happen since rulesets are fetched via getRegisteredRuleSet, nonetheless:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;PMD ERROR: Couldn't find a ruleset&amp;quot;, rsne );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), &amp;quot;Unable to find rulesets, halting PMD&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), jEdit.getProperty(&amp;quot;net.sf.pmd.Unable_to_find_rulesets,_halting_PMD&amp;quot;, &amp;quot;Unable to find rulesets, halting PMD&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -314,7 +314,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;PMD ERROR: Unable to open file &amp;quot; + file.getAbsolutePath(), fnfe );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( PMDException pmde ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = &amp;quot;Error while processing &amp;quot; + file.getAbsolutePath() + &amp;quot;:\n&amp;quot; + pmde.getMessage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = jEdit.getProperty(&amp;quot;net.sf.pmd.Error_while_processing_&amp;quot;, &amp;quot;Error while processing &amp;quot;) + file.getAbsolutePath() + &amp;quot;:\n&amp;quot; + pmde.getMessage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, msg, pmde );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -325,7 +325,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !foundProblems ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), &amp;quot;No problems found&amp;quot;, NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), jEdit.getProperty(&amp;quot;net.sf.pmd.No_problems_found&amp;quot;, &amp;quot;No problems found&amp;quot;), NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;@@ -353,7 +353,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void cpdCurrentFile( View view ) throws IOException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String modeName = getFileType( view.getBuffer().getMode().getName() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( modeName == null ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Copy/Paste detection can not be performed on this file\nbecause the mode can not be determined.&amp;quot;, &amp;quot;Copy/Paste Detector&amp;quot;, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Copy/Paste_detection_can_not_be_performed_on_this_file\nbecause_the_mode_can_not_be_determined.&amp;quot;, &amp;quot;Copy/Paste detection can not be performed on this file\nbecause the mode can not be determined.&amp;quot;), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Copy/Paste_Detector&amp;quot;, &amp;quot;Copy/Paste Detector&amp;quot;), JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDCurrentFile( view, view.getBuffer().getPath(), modeName );
&lt;br&gt;@@ -363,12 +365,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile selectedFile[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedFile == null || selectedFile.length == 0 ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;One file must be selected&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.One_file_must_be_selected&amp;quot;, &amp;quot;One file must be selected&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedFile[ 0 ].getType() == VFSFile.DIRECTORY ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selected file cannot be a Directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selected_file_cannot_be_a_Directory.&amp;quot;, &amp;quot;Selected file cannot be a Directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = selectedFile[ 0 ].getPath();
&lt;br&gt;@@ -400,7 +402,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getDockableWindowManager().showDockableWindow( &amp;quot;cpd-viewer&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( &amp;quot;CPD does not yet support this file type: &amp;quot; + fileType );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( jEdit.getProperty(&amp;quot;net.sf.pmd.CPD_does_not_yet_support_this_file_type&amp;gt;_&amp;quot;, &amp;quot;CPD does not yet support this file type: &amp;quot;) + fileType );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -413,11 +415,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.setLayout(new KappaLayout());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( &amp;quot;Minimum Tile size :&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Minimum_Tile_size_&amp;gt;&amp;quot;, &amp;quot;Minimum Tile size :&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JTextField txttilesize = new JTextField( 3 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;txttilesize.setText( jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ) + &amp;quot;&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( &amp;quot;Recursive&amp;quot;, jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Recursive&amp;quot;, &amp;quot;Recursive&amp;quot;), jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JComboBox fileTypeSelector = new JComboBox();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.setEditable( false );
&lt;br&gt;@@ -448,7 +450,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mode = ( ( CPDFileFilter ) fileTypeSelector.getSelectedItem() ).getMode();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !selectedFile.isDirectory() ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selection not a directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selection_not_a_directory.&amp;quot;, &amp;quot;Selection not a directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -482,12 +484,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( view != null &amp;&amp; browser != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile selectedDir[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedDir == null || selectedDir.length == 0 ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;One Directory has to be selected in which to detect duplicate code.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.One_Directory_has_to_be_selected_in_which_to_detect_duplicate_code.&amp;quot;, &amp;quot;One Directory has to be selected in which to detect duplicate code.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedDir[ 0 ].getType() != VFSFile.DIRECTORY ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selected file must be a Directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selected_file_must_be_a_Directory.&amp;quot;, &amp;quot;Selected file must be a Directory.&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -502,7 +504,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[6] = new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[7] = new CPDFileFilter( &amp;quot;any&amp;quot;, &amp;quot;All&amp;quot;, &amp;quot;*&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object choice = JOptionPane.showInputDialog(view, &amp;quot;Select type of files to check:&amp;quot;, &amp;quot;CPD, Select File Type&amp;quot;, JOptionPane.OK_CANCEL_OPTION, null, choices, choices[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object choice = JOptionPane.showInputDialog(view, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Select_type_of_files_to_check&amp;gt;&amp;quot;, &amp;quot;Select type of files to check:&amp;quot;), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.CPD,_Select_File_Type&amp;quot;, &amp;quot;CPD, Select File Type&amp;quot;), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.OK_CANCEL_OPTION, null, choices, choices[0]);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( choice == null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -531,7 +536,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.processDuplicates( cpd, view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( &amp;quot;Cannot run CPD on Invalid directory/files.&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( jEdit.getProperty(&amp;quot;net.sf.pmd.Cannot_run_CPD_on_Invalid_directory/files.&amp;quot;, &amp;quot;Cannot run CPD on Invalid directory/files.&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -567,7 +572,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !foundDuplicates ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.getRoot().add( new DefaultMutableTreeNode( &amp;quot;No duplicates found.&amp;quot;, false ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.getRoot().add( new DefaultMutableTreeNode( jEdit.getProperty(&amp;quot;net.sf.pmd.No_duplicates_found.&amp;quot;, &amp;quot;No duplicates found.&amp;quot;), false ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.refreshTree();
&lt;br&gt;@@ -603,7 +608,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile de[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( de == null || de.length == 0 || de[ 0 ].getType() != VFSFile.DIRECTORY ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selection must be a directory&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Selection_must_be_a_directory&amp;quot;, &amp;quot;Selection must be a directory&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -644,7 +649,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer = new TextRenderer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Invalid Renderer&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, jEdit.getProperty(&amp;quot;net.sf.pmd.Invalid_Renderer&amp;quot;, &amp;quot;Invalid Renderer&amp;quot;), NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -693,7 +698,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBorder( new EtchedBorder( EtchedBorder.RAISED ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setToolTipText( &amp;quot;PMD Check in Progress&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setToolTipText( jEdit.getProperty(&amp;quot;net.sf.pmd.PMD_Check_in_Progress&amp;quot;, &amp;quot;PMD Check in Progress&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setForeground( jEdit.getColorProperty( &amp;quot;pmd.progressbar.background&amp;quot; ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBackground( jEdit.getColorProperty( &amp;quot;view.status.background&amp;quot; ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDRulesOptionPane.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDRulesOptionPane.java	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDRulesOptionPane.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;@@ -49,8 +49,8 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setLayout( new KappaLayout() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel rules_label = new JLabel( &amp;quot;Rules&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;useDefaultRules = new JCheckBox( &amp;quot;Select default rules&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel rules_label = new JLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Rules&amp;quot;, &amp;quot;Rules&amp;quot;) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;useDefaultRules = new JCheckBox( jEdit.getProperty(&amp;quot;net.sf.pmd.Select_default_rules&amp;quot;, &amp;quot;Select default rules&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;useDefaultRules.setSelected( jEdit.getBooleanProperty( USE_DEFAULT_RULES_KEY, false ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// use a checkbox tree for displaying the rules. &amp;nbsp;This lets the rules be
&lt;br&gt;@@ -62,7 +62,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// is checked.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JScrollPane rules_pane = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( rules == null ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( null, &amp;quot;Error loading rules. Check any custom rulesets for errors.&amp;quot;, &amp;quot;Error Loading Rules&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( null, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Error_loading_rules._Check_any_custom_rulesets_for_errors.&amp;quot;, &amp;quot;Error loading rules. Check any custom rulesets for errors.&amp;quot;), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Error_Loading_Rules&amp;quot;, &amp;quot;Error Loading Rules&amp;quot;), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( jEdit.getBooleanProperty( USE_DEFAULT_RULES_KEY, false ) ) {
&lt;br&gt;@@ -109,10 +112,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rulesPanel.add( pnlCustomRules, BorderLayout.SOUTH );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exampleLabel = new JLabel( &amp;quot;Example&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exampleLabel = new JLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Example&amp;quot;, &amp;quot;Example&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JScrollPane example_pane = new JScrollPane( exampleTextArea );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel more_info_label = new JLabel( &amp;quot;Please see &lt;a href=&quot;http://pmd.sf.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sf.net/&lt;/a&gt;&amp;nbsp;for more information&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel more_info_label = new JLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Please_see_http&amp;gt;//pmd.sf.net/_for_more_information&amp;quot;, &amp;quot;Please see &lt;a href=&quot;http://pmd.sf.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sf.net/&lt;/a&gt;&amp;nbsp;for more information&amp;quot;) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setBorder( BorderFactory.createEmptyBorder( 12, 11, 11, 12 ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;add( &amp;quot;0, 0, &amp;nbsp;1, 1, &amp;nbsp;W, w, &amp;nbsp;3&amp;quot;, rules_label );
&lt;br&gt;@@ -143,7 +146,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( node != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object userObject = node.getUserObject();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( userObject instanceof RuleNode ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;changeExampleLabel( &amp;quot;Example&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;changeExampleLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Example&amp;quot;, &amp;quot;Example&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String description = ( ( RuleNode ) userObject ).getRule().getDescription();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;description = description.trim();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; examples = ( ( RuleNode ) userObject ).getRule().getExamples();
&lt;br&gt;@@ -153,7 +156,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exampleTextArea.setCaretPosition( 0 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ( userObject instanceof RuleSetNode ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;changeExampleLabel( &amp;quot;Description&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;changeExampleLabel( jEdit.getProperty(&amp;quot;net.sf.pmd.Description&amp;quot;, &amp;quot;Description&amp;quot;) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String description = ( ( RuleSetNode ) userObject ).getRuleSet().getDescription();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;description = description.trim();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;description = description.replaceAll( &amp;quot;\n&amp;quot;, &amp;quot; &amp;quot; );
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/SelectedRules.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/SelectedRules.java	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/SelectedRules.java	2009-12-05 17:25:18 UTC (rev 7014)
&lt;br&gt;@@ -146,7 +146,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( RuleSetNotFoundException e ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( null, &amp;quot;There was an error loading one or more custom rulesets, so no custom rulesets were loaded&amp;quot;, &amp;quot;Error Loading Custom Ruleset&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( null, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.There_was_an_error_loading_one_or_more_custom_rulesets,_so_no_custom_rulesets_were_loaded&amp;quot;, &amp;quot;There was an error loading one or more custom rulesets, so no custom rulesets were loaded&amp;quot;), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getProperty(&amp;quot;net.sf.pmd.Error_Loading_Custom_Ruleset&amp;quot;, &amp;quot;Error Loading Custom Ruleset&amp;quot;), 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return rulesets;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26657484&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7014--trunk-pmd-jedit-PMDPlugin-tp26657484p26657484.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26657324</id>
	<title>SF.net SVN: pmd:[7013] trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/ jedit/PMDJEditPlugin.java</title>
	<published>2009-12-05T09:03:29Z</published>
	<updated>2009-12-05T09:03:29Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7013
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7013&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7013&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-05 17:03:29 +0000 (Sat, 05 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Added dialog to let the user choose the types of files to run CPD against from the VFSBrowser.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-04 17:13:12 UTC (rev 7012)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-05 17:03:29 UTC (rev 7013)
&lt;br&gt;@@ -7,7 +7,6 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.awt.BorderLayout;
&lt;br&gt;&amp;nbsp;import java.awt.Color;
&lt;br&gt;-import java.awt.FlowLayout;
&lt;br&gt;&amp;nbsp;import java.io.File;
&lt;br&gt;&amp;nbsp;import java.io.FileInputStream;
&lt;br&gt;&amp;nbsp;import java.io.FileNotFoundException;
&lt;br&gt;@@ -17,13 +16,7 @@
&lt;br&gt;&amp;nbsp;import java.util.List;
&lt;br&gt;&amp;nbsp;import java.util.Properties;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import javax.swing.JCheckBox;
&lt;br&gt;-import javax.swing.JFileChooser;
&lt;br&gt;-import javax.swing.JLabel;
&lt;br&gt;-import javax.swing.JOptionPane;
&lt;br&gt;-import javax.swing.JPanel;
&lt;br&gt;-import javax.swing.JProgressBar;
&lt;br&gt;-import javax.swing.JTextField;
&lt;br&gt;+import javax.swing.*;
&lt;br&gt;&amp;nbsp;import javax.swing.border.EtchedBorder;
&lt;br&gt;&amp;nbsp;import javax.swing.plaf.basic.BasicProgressBarUI;
&lt;br&gt;&amp;nbsp;import javax.swing.tree.DefaultMutableTreeNode;
&lt;br&gt;@@ -64,6 +57,8 @@
&lt;br&gt;&amp;nbsp;import errorlist.DefaultErrorSource;
&lt;br&gt;&amp;nbsp;import errorlist.ErrorSource;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+import ise.java.awt.KappaLayout;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;/** jEdit plugin for PMD
&lt;br&gt;&amp;nbsp; &amp;nbsp;@version $Id$
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -300,7 +295,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean foundProblems = false;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( File file : files ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setReport( new Report() ); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setReport( new Report() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setSourceCodeFilename( file.getAbsolutePath() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;@@ -413,33 +408,35 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void cpdDir( View view ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JFileChooser chooser = new JFileChooser( jEdit.getProperty( LAST_DIRECTORY ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: need to figure out how to create these filters dynamically
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: check on the AnyLanguage and AnyTokenizer, can they be used for file types that are not specifically supported? 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;javascript&amp;quot;, &amp;quot;Javascript files&amp;quot;, &amp;quot;js&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.setLayout(new KappaLayout());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel( new BorderLayout() );
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlTile = new JPanel( new FlowLayout( FlowLayout.LEFT ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( &amp;quot;Minimum Tile size :&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JTextField txttilesize = new JTextField( 3 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;txttilesize.setText( jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ) + &amp;quot;&amp;quot; );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTile.add( lblMinTileSize );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTile.add( txttilesize );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( BorderLayout.NORTH, pnlTile );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlRecursive = new JPanel( new FlowLayout( FlowLayout.LEFT ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( &amp;quot;Recursive&amp;quot;, jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlRecursive.add( chkRecursive );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( BorderLayout.CENTER, pnlRecursive );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JComboBox fileTypeSelector = new JComboBox();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.setEditable( false );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;javascript&amp;quot;, &amp;quot;Javascript files&amp;quot;, &amp;quot;js&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: the &amp;quot;any&amp;quot; tokenizer doesn't seem to work
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileTypeSelector.addItem( new CPDFileFilter( &amp;quot;any&amp;quot;, &amp;quot;All&amp;quot;, &amp;quot;*&amp;quot; ) );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( lblMinTileSize, &amp;nbsp;&amp;quot;0, 0, 1, 1, W, , 3&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( txttilesize, &amp;nbsp; &amp;nbsp; &amp;quot;1, 0, 1, 1, W, , 3&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( chkRecursive, &amp;nbsp; &amp;nbsp;&amp;quot;0, 1, 2, 1, W, , 3&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( fileTypeSelector,&amp;quot;0, 2, 2, 1, W, , 3&amp;quot; );
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory( pnlAccessory );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int returnVal = chooser.showOpenDialog( view );
&lt;br&gt;@@ -448,7 +445,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( returnVal == JFileChooser.APPROVE_OPTION ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedFile = chooser.getSelectedFile();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mode = ( ( CPDFileFilter ) chooser.getFileFilter() ).getMode();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mode = ( ( CPDFileFilter ) fileTypeSelector.getSelectedItem() ).getMode();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !selectedFile.isDirectory() ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selection not a directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;@@ -464,7 +461,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tilesize = jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setBooleanProperty( CHECK_DIR_RECURSIVE, chkRecursive.isSelected() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir( view, selectedFile.getCanonicalPath(), tilesize, chkRecursive.isSelected(), mode );
&lt;br&gt;@@ -474,7 +470,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Run CPD on a directory selected from the File System Browser.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param view The current view.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param browser The file system browser supplying the user selecte directory to check.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param recursive If true, check all files in the selected directory and all child
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * directories, otherwise, just check the files in the selected directory only.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void cpdDir( View view, VFSBrowser browser, boolean recursive ) throws IOException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( view != null &amp;&amp; browser != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile selectedDir[] = browser.getSelectedFiles();
&lt;br&gt;@@ -487,7 +490,27 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selected file must be a Directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir( view, selectedDir[ 0 ].getPath(), jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ), recursive, &amp;quot;java&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// display chooser for type of files to check
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object[] choices = new Object[8];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[0] = new CPDFileFilter( &amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[1] = new CPDFileFilter( &amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[2] = new CPDFileFilter( &amp;quot;javascript&amp;quot;, &amp;quot;Javascript files&amp;quot;, &amp;quot;js&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[3] = new CPDFileFilter( &amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[4] = new CPDFileFilter( &amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[5] = new CPDFileFilter( &amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[6] = new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;choices[7] = new CPDFileFilter( &amp;quot;any&amp;quot;, &amp;quot;All&amp;quot;, &amp;quot;*&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Object choice = JOptionPane.showInputDialog(view, &amp;quot;Select type of files to check:&amp;quot;, &amp;quot;CPD, Select File Type&amp;quot;, JOptionPane.OK_CANCEL_OPTION, null, choices, choices[0]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( choice == null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String mode = ((CPDFileFilter)choice).getMode();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir( view, selectedDir[ 0 ].getPath(),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;recursive, mode );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -511,7 +534,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( &amp;quot;Cannot run CPD on Invalid directory/files.&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void processDuplicates( CPD cpd, View view ) {
&lt;br&gt;@@ -538,7 +561,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDDuplicateCodeViewer.Duplicate duplicate = dv.new Duplicate( mark.getTokenSrcID(), mark.getBeginLine(), lastLine ); //NOPMD
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;duplicates.addDuplicate( duplicate );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.addDuplicates( duplicates );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -549,7 +572,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.refreshTree();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.expandAll();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public CPDDuplicateCodeViewer getCPDDuplicateCodeViewer( View view ) {
&lt;br&gt;@@ -566,9 +589,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( view != null &amp;&amp; de != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;File&amp;gt; files = new ArrayList&amp;lt;File&amp;gt;();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (VFSFile file : de) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( VFSFile file : de ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( file.getType() == VFSFile.FILE ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;files.add( new File( file.getPath() ) ); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;files.add( new File( file.getPath() ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -672,7 +695,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBorder( new EtchedBorder( EtchedBorder.RAISED ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setToolTipText( &amp;quot;PMD Check in Progress&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setForeground( jEdit.getColorProperty( &amp;quot;pmd.progressbar.background&amp;quot; ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBackground( jEdit.getColorProperty( &amp;quot;view.status.background&amp;quot; ) ); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBackground( jEdit.getColorProperty( &amp;quot;view.status.background&amp;quot; ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setStringPainted( true );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;add( pBar, BorderLayout.CENTER );
&lt;br&gt;@@ -695,16 +718,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private CPD getCPD( int tileSize, String fileType ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Language lang;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LanguageFactory lf = new LanguageFactory();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Properties props = new Properties();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( &amp;quot;java&amp;quot;.equals( fileType ) ) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Properties props = new Properties();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;props.setProperty( JavaTokenizer.IGNORE_LITERALS, String.valueOf( jEdit.getBooleanProperty( PMDJEditPlugin.IGNORE_LITERALS ) ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( &amp;quot;java&amp;quot;, props );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( fileType );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( fileType, props );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: the &amp;quot;any&amp;quot; tokenizer doesn't seem to work
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( lang == null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( &amp;quot;any&amp;quot;, props );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return lang == null ? null : new CPD( tileSize, lang );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26657324&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7013--trunk-pmd-jedit-PMDPlugin-src-net-sourceforge-pmd--jedit-PMDJEditPlugin.java-tp26657324p26657324.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26645842</id>
	<title>SF.net SVN: pmd:[7012] trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/ jedit/PMDJEditPlugin.java</title>
	<published>2009-12-04T09:13:12Z</published>
	<updated>2009-12-04T09:13:12Z</updated>
	<author>
		<name>daleanson</name>
	</author>
	<content type="html">Revision: 7012
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7012&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7012&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; daleanson
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-04 17:13:12 +0000 (Fri, 04 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Code clean up.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-04 14:54:59 UTC (rev 7011)
&lt;br&gt;+++ trunk/pmd-jedit/PMDPlugin/src/net/sourceforge/pmd/jedit/PMDJEditPlugin.java	2009-12-04 17:13:12 UTC (rev 7012)
&lt;br&gt;@@ -1,8 +1,8 @@
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;- * User: tom
&lt;br&gt;- * Date: Jul 3, 2002
&lt;br&gt;- * Time: 2:33:24 PM
&lt;br&gt;- */
&lt;br&gt;+* User: tom
&lt;br&gt;+* Date: Jul 3, 2002
&lt;br&gt;+* Time: 2:33:24 PM
&lt;br&gt;+*/
&lt;br&gt;&amp;nbsp;package net.sourceforge.pmd.jedit;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.awt.BorderLayout;
&lt;br&gt;@@ -66,12 +66,13 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/** jEdit plugin for PMD
&lt;br&gt;&amp;nbsp; &amp;nbsp;@version $Id$
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;TODO: move strings to property file so they can be localized.
&lt;br&gt;&amp;nbsp;**/
&lt;br&gt;-public class PMDJEditPlugin extends EBPlugin
&lt;br&gt;-{
&lt;br&gt;+public class PMDJEditPlugin extends EBPlugin {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final SourceType[] sourceTypes =
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new SourceType[]{SourceType.JAVA_14, SourceType.JAVA_15, SourceType.JAVA_16};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new SourceType[] {SourceType.JAVA_14, SourceType.JAVA_15, SourceType.JAVA_16};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String NAME = &amp;quot;PMD&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String OPTION_RULES_PREFIX = &amp;quot;options.pmd.rules.&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String DEFAULT_TILE_MINSIZE_PROPERTY = &amp;quot;pmd.cpd.defMinTileSize&amp;quot;;
&lt;br&gt;@@ -84,285 +85,213 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String LAST_DIRECTORY = &amp;quot;pmd.cpd.lastDirectory&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String CHECK_DIR_RECURSIVE = &amp;quot;pmd.checkDirRecursive&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;//private static RE re = new UncheckedRE(&amp;quot;Starting at line ([0-9]*) of (\\S*)&amp;quot;);
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static PMDJEditPlugin instance;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/* 	static {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance = new PMDJEditPlugin();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.start();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private DefaultErrorSource errorSource;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static final String RENDERER = &amp;quot;pmd.renderer&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// boilerplate JEdit code
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void start()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void start() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance = this;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Log.log(Log.DEBUG,this,&amp;quot;Instance created.&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource = new DefaultErrorSource(NAME);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//ErrorSource.registerErrorSource(errorSource);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource = new DefaultErrorSource( NAME );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void stop()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void stop() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;unRegisterErrorSource();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/* 	public void createMenuItems(Vector menuItems) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;menuItems.addElement(GUIUtilities.loadMenu(&amp;quot;pmd-menu&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void createOptionPanes(OptionsDialog optionsDialog) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;optionsDialog.addOptionPane(new PMDOptionPane());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// boilerplate JEdit code
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void checkDirectory(View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCheckDirectory(view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void checkDirectory( View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCheckDirectory( view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void handleMessage(EBMessage ebmess)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ebmess instanceof BufferUpdate &amp;&amp; jEdit.getBooleanProperty(PMDJEditPlugin.RUN_PMD_ON_SAVE))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BufferUpdate bu = (BufferUpdate)ebmess;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (bu.getWhat() == BufferUpdate.SAVED)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(bu.getBuffer().getMode().getName().equals(&amp;quot;java&amp;quot;)) //NOPMD
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;check(bu.getBuffer(),bu.getView());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void handleMessage( EBMessage ebmess ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// maybe run PMD on buffer save
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ebmess instanceof BufferUpdate &amp;&amp; jEdit.getBooleanProperty( PMDJEditPlugin.RUN_PMD_ON_SAVE ) ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BufferUpdate bu = ( BufferUpdate ) ebmess;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( bu.getWhat() == BufferUpdate.SAVED &amp;&amp; &amp;quot;java&amp;quot;.equals( bu.getBuffer().getMode().getName() ) ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;check( bu.getBuffer(), bu.getView() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// check all open buffers
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void checkAllOpenBuffers(View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCheckAllOpenBuffers(view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void checkAllOpenBuffers( View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCheckAllOpenBuffers( view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void clearErrorList()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void clearErrorList() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceClearErrorList();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void instanceClearErrorList()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void instanceClearErrorList() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void instanceCheckDirectory(View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JFileChooser chooser = new JFileChooser(jEdit.getProperty(LAST_DIRECTORY));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void instanceCheckDirectory( View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JFileChooser chooser = new JFileChooser( jEdit.getProperty( LAST_DIRECTORY ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode( JFileChooser.DIRECTORIES_ONLY );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox(&amp;quot;Recursive&amp;quot;, jEdit.getBooleanProperty(CHECK_DIR_RECURSIVE));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add(chkRecursive);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory(pnlAccessory);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( &amp;quot;Recursive&amp;quot;, jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( chkRecursive );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory( pnlAccessory );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int returnVal = chooser.showOpenDialog(view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int returnVal = chooser.showOpenDialog( view );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File selectedFile = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(returnVal == JFileChooser.APPROVE_OPTION)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( returnVal == JFileChooser.APPROVE_OPTION ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedFile = chooser.getSelectedFile();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!selectedFile.isDirectory())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view,&amp;quot;Selection not a directory.&amp;quot;,NAME,JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !selectedFile.isDirectory() ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selection not a directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setProperty(LAST_DIRECTORY,selectedFile.getCanonicalPath());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setBooleanProperty(CHECK_DIR_RECURSIVE,chkRecursive.isSelected());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;process(findFiles(selectedFile.getCanonicalPath(), chkRecursive.isSelected()), view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setProperty( LAST_DIRECTORY, selectedFile.getCanonicalPath() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setBooleanProperty( CHECK_DIR_RECURSIVE, chkRecursive.isSelected() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;process( findFiles( selectedFile.getCanonicalPath(), chkRecursive.isSelected() ), view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return; //Incase the user presses cancel or escape.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ; // In case the user presses cancel or escape.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(IOException e)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.DEBUG,this,e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( IOException e ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.DEBUG, this, e );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}//End of instanceCheckDirectory
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void instanceCheckAllOpenBuffers(View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void instanceCheckAllOpenBuffers( View view ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// I'm putting the files in a Set to work around some
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// odd behavior in jEdit - the buffer.getNext()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// seems to iterate over the files twice.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Buffer buffers[] = jEdit.getBuffers();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(buffers != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( buffers != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProgressBar pbd = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(jEdit.getBooleanProperty(SHOW_PROGRESS))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd = startProgressBarDisplay(view,0,buffers.length);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( jEdit.getBooleanProperty( SHOW_PROGRESS ) ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd = startProgressBarDisplay( view, 0, buffers.length );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i=0; i&amp;lt;buffers.length; i++ )
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (buffers[i].getName().endsWith(&amp;quot;.java&amp;quot;))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//fileSet.add(buffer.getFile());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.DEBUG,this,&amp;quot;checking = &amp;quot; + buffers[i].getPath());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instanceCheck(buffers[i],view, false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( Buffer buffer : buffers ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( buffer.getName().endsWith( &amp;quot;.java&amp;quot; ) ) { &amp;nbsp;// TODO: check mode rather than filename
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.DEBUG, this, &amp;quot;checking = &amp;quot; + buffer.getPath() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instanceCheck( buffer, view, false );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(pbd != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.increment(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( pbd != null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.increment( 1 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;endProgressBarDisplay(pbd);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;endProgressBarDisplay( pbd );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//List files = new ArrayList();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//files.addAll(fileSet);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//process(files);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void instanceCheck(Buffer buffer, View view, boolean clearErrorList)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void instanceCheck( Buffer buffer, View view, boolean clearErrorList ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;unRegisterErrorSource();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(clearErrorList)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( clearErrorList ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PMD pmd = new PMD();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int jvidx = jEdit.getIntegerProperty(JAVA_VERSION_PROPERTY, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.setJavaVersion(sourceTypes[jvidx]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int jvidx = jEdit.getIntegerProperty( JAVA_VERSION_PROPERTY, 1 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.setJavaVersion( sourceTypes[ jvidx ] );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SelectedRules selectedRuleSets = new SelectedRules();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RuleContext ctx = new RuleContext();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setReport(new Report());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setReport( new Report() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = buffer.getPath();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setSourceCodeFilename(path);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setSourceCodeFilename( path );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFS vfs = buffer.getVFS();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.processFile(vfs._createInputStream(vfs.createVFSSession(path, view), path, false, view),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.getProperty(&amp;quot;file.encoding&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.processFile( vfs._createInputStream( vfs.createVFSSession( path, view ), path, false, view ),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.getProperty( &amp;quot;file.encoding&amp;quot; ),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedRuleSets.getSelectedRules(),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (ctx.getReport().isEmpty())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/// danson, this is annoying if 'Run PMD on Save' is checked
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( ctx.getReport().isEmpty() ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// only show popup if run on save is NOT selected, otherwise it is annoying
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean run_on_save = jEdit.getBooleanProperty( PMDJEditPlugin.RUN_PMD_ON_SAVE );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!run_on_save) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: put string in properties file
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;No problems found&amp;quot;, NAME, JOptionPane.INFORMATION_MESSAGE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !run_on_save ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;No problems found&amp;quot;, NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String rulename = &amp;quot;&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String rulename=&amp;quot;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final boolean isPrintRule = jEdit.getBooleanProperty( PMDJEditPlugin.PRINT_RULE );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final boolean isPrintRule = jEdit.getBooleanProperty(PMDJEditPlugin.PRINT_RULE);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;IRuleViolation&amp;gt; i = ctx.getReport().iterator(); i.hasNext();)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( Iterator&amp;lt;IRuleViolation&amp;gt; i = ctx.getReport().iterator(); i.hasNext(); ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IRuleViolation rv = i.next();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(isPrintRule)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rulename = rv.getRule().getName() +&amp;quot;-&amp;gt;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( isPrintRule ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rulename = rv.getRule().getName() + &amp;quot;-&amp;gt;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.addError(new DefaultErrorSource.DefaultError(errorSource, ErrorSource.WARNING, path, rv.getBeginLine()-1,0,0,rulename + rv.getDescription())); //NOPMD
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.addError( new DefaultErrorSource.DefaultError( errorSource, ErrorSource.WARNING, path, rv.getBeginLine() - 1, 0, 0, rulename + rv.getDescription() ) ); //NOPMD
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;registerErrorSource();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (RuleSetNotFoundException rsne)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, this, &amp;quot;RuleSet not found&amp;quot;, rsne);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( RuleSetNotFoundException rsne ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;RuleSet not found&amp;quot;, rsne );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (PMDException pmde)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg=&amp;quot;Error while processing &amp;quot; + buffer.getPath() + &amp;quot;:\n&amp;quot; + pmde.getMessage() + &amp;quot;\n\n&amp;quot; + pmde.getCause();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, this, msg, pmde);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( PMDException pmde ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = &amp;quot;Error while processing &amp;quot; + buffer.getPath() + &amp;quot;:\n&amp;quot; + pmde.getMessage() + &amp;quot;\n\n&amp;quot; + pmde.getCause();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, msg, pmde );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(Exception e)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( Exception e ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: is this useful to log?
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, this, &amp;quot;Exception processing file &amp;quot;+ buffer.getPath(), e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;Exception processing file &amp;quot; + buffer.getPath(), e );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}// check current buffer
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void process(final List&amp;lt;File&amp;gt; files, final View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Thread(new Runnable ()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void run()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; processFiles(files, view);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;).start();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void process( final List&amp;lt;File&amp;gt; files, final View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: use SwingWorker?
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Thread(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Runnable () {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void run() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processFiles( files, view );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;).start();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// check current buffer
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void check(Buffer buffer, View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCheck(buffer, view, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void check( Buffer buffer, View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCheck( buffer, view, true );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;void processFiles(List&amp;lt;File&amp;gt; files, View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void processFiles( List&amp;lt;File&amp;gt; files, View view ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;unRegisterErrorSource();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProgressBar pbd = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(jEdit.getBooleanProperty(SHOW_PROGRESS))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd = startProgressBarDisplay(view,0,files.size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( jEdit.getBooleanProperty( SHOW_PROGRESS ) ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd = startProgressBarDisplay( view, 0, files.size() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PMD pmd = new PMD();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int jvidx = jEdit.getIntegerProperty(JAVA_VERSION_PROPERTY, 1);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.setJavaVersion(sourceTypes[jvidx]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int jvidx = jEdit.getIntegerProperty( JAVA_VERSION_PROPERTY, 1 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.setJavaVersion( sourceTypes[ jvidx ] );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SelectedRules selectedRuleSets = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedRuleSets = new SelectedRules();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (RuleSetNotFoundException rsne)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( RuleSetNotFoundException rsne ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// should never happen since rulesets are fetched via getRegisteredRuleSet, nonetheless:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, this, &amp;quot;PMD ERROR: Couldn't find a ruleset&amp;quot;, rsne);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(jEdit.getFirstView(), &amp;quot;Unable to find rulesets, halting PMD&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;PMD ERROR: Couldn't find a ruleset&amp;quot;, rsne );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), &amp;quot;Unable to find rulesets, halting PMD&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RuleContext ctx = new RuleContext();
&lt;br&gt;@@ -370,518 +299,424 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Report&amp;gt; reports = new ArrayList&amp;lt;Report&amp;gt;();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean foundProblems = false;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator&amp;lt;File&amp;gt; iter = files.iterator();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while(iter.hasNext())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File file = iter.next();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//ctx.setReport(new Report());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setReport(new Report()); //NOPMD
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setSourceCodeFilename(file.getAbsolutePath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( File file : files ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setReport( new Report() ); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ctx.setSourceCodeFilename( file.getAbsolutePath() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.processFile(new FileInputStream(file), System.getProperty(&amp;quot;file.encoding&amp;quot;), selectedRuleSets.getSelectedRules(), ctx); //NOPMD
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;IRuleViolation&amp;gt; j = ctx.getReport().iterator(); j.hasNext();)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmd.processFile( new FileInputStream( file ), System.getProperty( &amp;quot;file.encoding&amp;quot; ), selectedRuleSets.getSelectedRules(), ctx ); //NOPMD
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( Iterator&amp;lt;IRuleViolation&amp;gt; j = ctx.getReport().iterator(); j.hasNext(); ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;foundProblems = true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IRuleViolation rv = j.next();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.addError(new DefaultErrorSource.DefaultError(errorSource, ErrorSource.ERROR, &amp;nbsp;file.getAbsolutePath(), rv.getBeginLine()-1,0,0,rv.getDescription())); //NOPMD
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.addError( new DefaultErrorSource.DefaultError( errorSource, ErrorSource.ERROR, file.getAbsolutePath(), rv.getBeginLine() - 1, 0, 0, rv.getDescription() ) ); //NOPMD
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!ctx.getReport().isEmpty())//That means Report contains some violations, so only cache such reports.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reports.add(ctx.getReport());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !ctx.getReport().isEmpty() ) { &amp;nbsp; // That means Report contains some violations, so only cache such reports.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reports.add( ctx.getReport() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (FileNotFoundException fnfe)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( FileNotFoundException fnfe ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// should never happen, but if it does, carry on to the next file
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, this, &amp;quot;PMD ERROR: Unable to open file &amp;quot; + file.getAbsolutePath(), fnfe);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;PMD ERROR: Unable to open file &amp;quot; + file.getAbsolutePath(), fnfe );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (PMDException pmde)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( PMDException pmde ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String msg = &amp;quot;Error while processing &amp;quot; + file.getAbsolutePath() + &amp;quot;:\n&amp;quot; + pmde.getMessage();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, this, msg, pmde);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, msg, pmde );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, msg, &amp;quot;PMD&amp;quot;, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(jEdit.getBooleanProperty(SHOW_PROGRESS))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.increment(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( jEdit.getBooleanProperty( SHOW_PROGRESS ) ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.increment( 1 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}//End of for
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!foundProblems)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(jEdit.getFirstView(), &amp;quot;No problems found&amp;quot;, NAME, JOptionPane.INFORMATION_MESSAGE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !foundProblems ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( jEdit.getFirstView(), &amp;quot;No problems found&amp;quot;, NAME, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;errorSource.clear();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;registerErrorSource();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exportErrorAsReport(view, reports.toArray(new Report[reports.size()]));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exportErrorAsReport( view, reports.toArray( new Report[ reports.size() ] ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;endProgressBarDisplay(pbd);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;endProgressBarDisplay( pbd );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private List&amp;lt;File&amp;gt; findFiles(String dir, boolean recurse)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileFinder f &amp;nbsp;= new FileFinder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return f.findFilesFrom(dir, new net.sourceforge.pmd.cpd.SourceFileOrDirectoryFilter(new SourceFileSelector()), recurse);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private List&amp;lt;File&amp;gt; findFiles( String dir, boolean recurse ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FileFinder f = new FileFinder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return f.findFilesFrom( dir, new net.sourceforge.pmd.cpd.SourceFileOrDirectoryFilter( new SourceFileSelector() ), recurse );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void registerErrorSource()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Log.log(Log.DEBUG,this,&amp;quot;Registering ErrorSource of PMD&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ErrorSource.registerErrorSource(errorSource);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void registerErrorSource() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ErrorSource.registerErrorSource( errorSource );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void unRegisterErrorSource()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Log.log(Log.DEBUG,this,&amp;quot;Unregistering ErrorSource of PMD&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ErrorSource.unregisterErrorSource(errorSource);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void unRegisterErrorSource() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ErrorSource.unregisterErrorSource( errorSource );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void cpdCurrentFile(View view) throws IOException
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String modeName = getFileType(view.getBuffer().getMode().getName());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (modeName == null) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;Copy/Paste detection can not be performed on this file\nbecause the mode can not be determined.&amp;quot;, &amp;quot;Copy/Paste Detector&amp;quot;, JOptionPane.INFORMATION_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void cpdCurrentFile( View view ) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String modeName = getFileType( view.getBuffer().getMode().getName() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( modeName == null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Copy/Paste detection can not be performed on this file\nbecause the mode can not be determined.&amp;quot;, &amp;quot;Copy/Paste Detector&amp;quot;, JOptionPane.INFORMATION_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDCurrentFile(view, view.getBuffer().getPath(), modeName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDCurrentFile( view, view.getBuffer().getPath(), modeName );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void cpdCurrentFile(View view, VFSBrowser browser) throws IOException
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void cpdCurrentFile( View view, VFSBrowser browser ) throws IOException {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile selectedFile[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(selectedFile == null || selectedFile.length == 0)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;One file must be selected&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedFile == null || selectedFile.length == 0 ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;One file must be selected&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(selectedFile[0].getType() == VFSFile.DIRECTORY)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;Selected file cannot be a Directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedFile[ 0 ].getType() == VFSFile.DIRECTORY ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selected file cannot be a Directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = selectedFile[0].getPath();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDCurrentFile(view, path, getFileType(path));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = selectedFile[ 0 ].getPath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDCurrentFile( view, path, getFileType( path ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;//TODO: Replace this method with a smart file type/mode detector.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private static String getFileType(String name)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(name != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (String lang : LanguageFactory.supportedLanguages) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (name.endsWith(lang)) return lang;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// TODO: Replace this method with a smart file type/mode detector.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private static String getFileType( String name ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( name != null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( String lang : LanguageFactory.supportedLanguages ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( name.endsWith( lang ) )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return lang;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(name.endsWith(&amp;quot;h&amp;quot;) || name.endsWith(&amp;quot;cxx&amp;quot;) || name.endsWith(&amp;quot;c++&amp;quot;))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( name.endsWith( &amp;quot;h&amp;quot; ) || name.endsWith( &amp;quot;cxx&amp;quot; ) || name.endsWith( &amp;quot;c++&amp;quot; ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return &amp;quot;cpp&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void instanceCPDCurrentFile(View view, String filename, String fileType) throws IOException
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPD cpd = getCPD(fileType, view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void instanceCPDCurrentFile( View view, String filename, String fileType ) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPD cpd = getCPD( fileType );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Log.log(Log.DEBUG, PMDJEditPlugin.class , &amp;quot;See mode &amp;quot; + view.getBuffer().getMode().getName());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(cpd != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.add(new File(filename));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( cpd != null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.add( new File( filename ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.go();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.processDuplicates(cpd, view);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getDockableWindowManager().showDockableWindow(&amp;quot;cpd-viewer&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.processDuplicates( cpd, view );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getDockableWindowManager().showDockableWindow( &amp;quot;cpd-viewer&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear(&amp;quot;CPD does not yet support this file type: &amp;quot; + fileType);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( &amp;quot;CPD does not yet support this file type: &amp;quot; + fileType );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void cpdDir(View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JFileChooser chooser = new JFileChooser(jEdit.getProperty(LAST_DIRECTORY));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void cpdDir( View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JFileChooser chooser = new JFileChooser( jEdit.getProperty( LAST_DIRECTORY ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setFileSelectionMode( JFileChooser.FILES_AND_DIRECTORIES );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter(new CPDFileFilter(&amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter(new CPDFileFilter(&amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter(new CPDFileFilter(&amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter(new CPDFileFilter(&amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter(new CPDFileFilter(&amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter(new CPDFileFilter(&amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel(new BorderLayout());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: need to figure out how to create these filters dynamically
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: check on the AnyLanguage and AnyTokenizer, can they be used for file types that are not specifically supported? 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;ruby&amp;quot;, &amp;quot;Ruby files&amp;quot;, &amp;quot;rb&amp;quot;, &amp;quot;rbw&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;php&amp;quot;, &amp;quot;PHP files&amp;quot;, &amp;quot;php&amp;quot;, &amp;quot;php3&amp;quot;, &amp;quot;php4&amp;quot;, &amp;quot;phtml&amp;quot;, &amp;quot;inc&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;jsp&amp;quot;, &amp;quot;JSP files&amp;quot;, &amp;quot;jsp&amp;quot;, &amp;quot;jsf&amp;quot;, &amp;quot;jspf&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;fortran&amp;quot;, &amp;quot;Fortran files&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;fort&amp;quot;, &amp;quot;f77&amp;quot;, &amp;quot;f90&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;cpp&amp;quot;, &amp;quot;C/C++ files&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;cc&amp;quot;, &amp;quot;cpp&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;javascript&amp;quot;, &amp;quot;Javascript files&amp;quot;, &amp;quot;js&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.addChoosableFileFilter( new CPDFileFilter( &amp;quot;java&amp;quot;, &amp;quot;Java files&amp;quot;, &amp;quot;java&amp;quot; ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlTile = new JPanel(new FlowLayout(FlowLayout.LEFT));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel(&amp;quot;Minimum Tile size :&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JTextField txttilesize = new JTextField(3);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;txttilesize.setText(jEdit.getIntegerProperty(DEFAULT_TILE_MINSIZE_PROPERTY,100)+&amp;quot;&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTile.add(lblMinTileSize);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTile.add(txttilesize);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add(BorderLayout.NORTH, pnlTile);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlAccessory = new JPanel( new BorderLayout() );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlRecursive = new JPanel(new FlowLayout(FlowLayout.LEFT));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox(&amp;quot;Recursive&amp;quot;, jEdit.getBooleanProperty(CHECK_DIR_RECURSIVE));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlRecursive.add(chkRecursive);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add(BorderLayout.CENTER, pnlRecursive);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlTile = new JPanel( new FlowLayout( FlowLayout.LEFT ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel lblMinTileSize = new JLabel( &amp;quot;Minimum Tile size :&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JTextField txttilesize = new JTextField( 3 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;txttilesize.setText( jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ) + &amp;quot;&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTile.add( lblMinTileSize );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlTile.add( txttilesize );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( BorderLayout.NORTH, pnlTile );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory(pnlAccessory);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel pnlRecursive = new JPanel( new FlowLayout( FlowLayout.LEFT ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JCheckBox chkRecursive = new JCheckBox( &amp;quot;Recursive&amp;quot;, jEdit.getBooleanProperty( CHECK_DIR_RECURSIVE ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlRecursive.add( chkRecursive );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pnlAccessory.add( BorderLayout.CENTER, pnlRecursive );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int returnVal = chooser.showOpenDialog(view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;chooser.setAccessory( pnlAccessory );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int returnVal = chooser.showOpenDialog( view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;File selectedFile = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String mode = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(returnVal == JFileChooser.APPROVE_OPTION)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( returnVal == JFileChooser.APPROVE_OPTION ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;selectedFile = chooser.getSelectedFile();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mode = ((CPDFileFilter)chooser.getFileFilter()).getMode();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mode = ( ( CPDFileFilter ) chooser.getFileFilter() ).getMode();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!selectedFile.isDirectory())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view,&amp;quot;Selection not a directory.&amp;quot;,NAME,JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !selectedFile.isDirectory() ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selection not a directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int tilesize = 100;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tilesize = Integer.parseInt(txttilesize.getText());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tilesize = Integer.parseInt( txttilesize.getText() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(NumberFormatException e)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( NumberFormatException e ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//use the default.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tilesize = jEdit.getIntegerProperty(DEFAULT_TILE_MINSIZE_PROPERTY,100);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tilesize = jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setBooleanProperty(CHECK_DIR_RECURSIVE,chkRecursive.isSelected());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir(view, selectedFile.getCanonicalPath(), tilesize, chkRecursive.isSelected(), mode);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setBooleanProperty( CHECK_DIR_RECURSIVE, chkRecursive.isSelected() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir( view, selectedFile.getCanonicalPath(), tilesize, chkRecursive.isSelected(), mode );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch(IOException e)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, instance, &amp;quot;PMD ERROR: Unable to open file &amp;quot; + selectedFile, e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( IOException e ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, instance, &amp;quot;PMD ERROR: Unable to open file &amp;quot; + selectedFile, e );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void cpdDir(View view, VFSBrowser browser, boolean recursive) throws IOException
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(view != null &amp;&amp; browser != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void cpdDir( View view, VFSBrowser browser, boolean recursive ) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( view != null &amp;&amp; browser != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile selectedDir[] = browser.getSelectedFiles();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(selectedDir == null || selectedDir.length == 0)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;One Directory has to be selected in which to detect duplicate code.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedDir == null || selectedDir.length == 0 ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;One Directory has to be selected in which to detect duplicate code.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(selectedDir[0].getType() != VFSFile.DIRECTORY)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;Selected file must be a Directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( selectedDir[ 0 ].getType() != VFSFile.DIRECTORY ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selected file must be a Directory.&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir(view, selectedDir[0].getPath(), jEdit.getIntegerProperty(DEFAULT_TILE_MINSIZE_PROPERTY,100), recursive, &amp;quot;java&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.instanceCPDDir( view, selectedDir[ 0 ].getPath(), jEdit.getIntegerProperty( DEFAULT_TILE_MINSIZE_PROPERTY, 100 ), recursive, &amp;quot;java&amp;quot; );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void instanceCPDDir(View view, String dir, int tileSize, boolean recursive, String mode) throws IOException
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(dir != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setProperty(LAST_DIRECTORY,dir);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void instanceCPDDir( View view, String dir, int tileSize, boolean recursive, String mode ) throws IOException {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( dir != null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jEdit.setProperty( LAST_DIRECTORY, dir );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.errorSource.clear();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPD cpd = getCPD(tileSize, mode, view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPD cpd = getCPD( tileSize, mode );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(cpd != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(recursive)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.addRecursively(dir);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( cpd != null ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( recursive ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.addRecursively( dir );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.addAllInDirectory(dir);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.addAllInDirectory( dir );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cpd.go();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.processDuplicates(cpd, view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.processDuplicates( cpd, view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear(&amp;quot;Cannot run CPD on Invalid directory/files.&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().setMessageAndClear( &amp;quot;Cannot run CPD on Invalid directory/files.&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}//End of if(dir != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private void processDuplicates(CPD cpd, View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//StringBuffer report = new StringBuffer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDDuplicateCodeViewer dv = getCPDDuplicateCodeViewer(view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void processDuplicates( CPD cpd, View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDDuplicateCodeViewer dv = getCPDDuplicateCodeViewer( view );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.clearDuplicates();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean foundDuplicates = false;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;Match&amp;gt; i = cpd.getMatches(); i.hasNext();)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!foundDuplicates) //Set foundDuplicates to true and that too only once.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( Iterator&amp;lt;Match&amp;gt; i = cpd.getMatches(); i.hasNext(); ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !foundDuplicates ) { &amp;nbsp; &amp;nbsp;// Set foundDuplicates to true and that too only once.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;foundDuplicates = true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Match match = i.next();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDDuplicateCodeViewer.Duplicates duplicates = dv.new Duplicates(match.getLineCount() + &amp;quot; duplicate lines&amp;quot;, match.getSourceCodeSlice()); //NOPMD
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDDuplicateCodeViewer.Duplicates duplicates = dv.new Duplicates( match.getLineCount() + &amp;quot; duplicate lines&amp;quot;, match.getSourceCodeSlice() ); //NOPMD
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (Iterator&amp;lt;TokenEntry&amp;gt; occurrences = match.iterator(); occurrences.hasNext();)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( Iterator&amp;lt;TokenEntry&amp;gt; occurrences = match.iterator(); occurrences.hasNext(); ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TokenEntry mark = occurrences.next();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int lastLine = mark.getBeginLine()+match.getLineCount();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.DEBUG, this, &amp;quot;Begin line &amp;quot; + mark.getBeginLine() +&amp;quot; of file &amp;quot;+ mark.getTokenSrcID() +&amp;quot; Line Count &amp;quot;+ match.getLineCount() +&amp;quot; last line &amp;quot;+ lastLine);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int lastLine = mark.getBeginLine() + match.getLineCount();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.DEBUG, this, &amp;quot;Begin line &amp;quot; + mark.getBeginLine() + &amp;quot; of file &amp;quot; + mark.getTokenSrcID() + &amp;quot; Line Count &amp;quot; + match.getLineCount() + &amp;quot; last line &amp;quot; + lastLine );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDDuplicateCodeViewer.Duplicate duplicate = &amp;nbsp;dv.new Duplicate(mark.getTokenSrcID(),mark.getBeginLine(),lastLine); //NOPMD
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CPDDuplicateCodeViewer.Duplicate duplicate = dv.new Duplicate( mark.getTokenSrcID(), mark.getBeginLine(), lastLine ); //NOPMD
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//System.out.println(&amp;quot;Adding Duplicate &amp;quot; + duplicate +&amp;quot; to Duplicates &amp;quot;+ duplicates);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;duplicates.addDuplicate(duplicate);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}//End of inner for
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;duplicates.addDuplicate( duplicate );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.addDuplicates(duplicates);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}//End of outer for
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.addDuplicates( duplicates );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(!foundDuplicates)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.getRoot().add(new DefaultMutableTreeNode(&amp;quot;No Duplicates found.&amp;quot;,false));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !foundDuplicates ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.getRoot().add( new DefaultMutableTreeNode( &amp;quot;No duplicates found.&amp;quot;, false ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.refreshTree();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dv.expandAll();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}//End of processDuplicates
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public CPDDuplicateCodeViewer getCPDDuplicateCodeViewer(View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getDockableWindowManager().showDockableWindow(&amp;quot;cpd-viewer&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (CPDDuplicateCodeViewer)view.getDockableWindowManager().getDockableWindow(&amp;quot;cpd-viewer&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public CPDDuplicateCodeViewer getCPDDuplicateCodeViewer( View view ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getDockableWindowManager().showDockableWindow( &amp;quot;cpd-viewer&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ( CPDDuplicateCodeViewer ) view.getDockableWindowManager().getDockableWindow( &amp;quot;cpd-viewer&amp;quot; );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void checkFile(View view, VFSBrowser browser)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.checkFile(view, browser.getSelectedFiles());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void checkFile( View view, VFSBrowser browser ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.checkFile( view, browser.getSelectedFiles() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void checkFile(View view, &amp;nbsp;VFSFile de[])
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(view != null &amp;&amp; de != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void checkFile( View view, VFSFile de[] ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( view != null &amp;&amp; de != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;File&amp;gt; files = new ArrayList&amp;lt;File&amp;gt;();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int i=0;i&amp;lt;de.length;i++)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(de[i].getType() == VFSFile.FILE)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;files.add(new File(de[i].getPath())); //NOPMD
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (VFSFile file : de) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( file.getType() == VFSFile.FILE ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;files.add( new File( file.getPath() ) ); 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;process(files, view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;process( files, view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static void checkDirectory(View view, VFSBrowser browser, boolean recursive)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static void checkDirectory( View view, VFSBrowser browser, boolean recursive ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSFile de[] = browser.getSelectedFiles();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(de == null || de.length == 0 || de[0].getType() != VFSFile.DIRECTORY)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;Selection must be a directory&amp;quot;,NAME, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( de == null || de.length == 0 || de[ 0 ].getType() != VFSFile.DIRECTORY ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Selection must be a directory&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.process(instance.findFiles(de[0].getPath(), recursive),view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance.process( instance.findFiles( de[ 0 ].getPath(), recursive ), view );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public ProgressBar startProgressBarDisplay(View view, int min, int max)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProgressBar pbd = new ProgressBar(view,min,max);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.setVisible(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ProgressBar startProgressBarDisplay( View view, int min, int max ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProgressBar pbd = new ProgressBar( view, min, max );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.setVisible( true );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pbd;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void endProgressBarDisplay(ProgressBar pbd)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(pbd != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void endProgressBarDisplay( ProgressBar pbd ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( pbd != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.completeBar();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.setVisible(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pbd.setVisible( false );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void exportErrorAsReport(final View view, Report reports[])
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void exportErrorAsReport( final View view, Report reports[] ) {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String format = jEdit.getProperty(PMDJEditPlugin.RENDERER);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String format = jEdit.getProperty( PMDJEditPlugin.RENDERER );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&amp;quot;None&amp;quot;, &amp;quot;Text&amp;quot;, &amp;quot;Html&amp;quot;, &amp;quot;XML&amp;quot;, &amp;quot;CSV&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(format != null &amp;&amp; !format.equals(&amp;quot;None&amp;quot;))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;quot;None&amp;quot;, &amp;quot;Text&amp;quot;, &amp;quot;Html&amp;quot;, &amp;quot;XML&amp;quot;, &amp;quot;CSV&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( format != null &amp;&amp; !format.equals( &amp;quot;None&amp;quot; ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;net.sourceforge.pmd.renderers.Renderer renderer = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;XML&amp;quot;.equals(format))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( &amp;quot;XML&amp;quot;.equals( format ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer = new XMLRenderer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (&amp;quot;Html&amp;quot;.equals(format))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ( &amp;quot;Html&amp;quot;.equals( format ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer = new HTMLRenderer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (&amp;quot;CSV&amp;quot;.equals(format))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ( &amp;quot;CSV&amp;quot;.equals( format ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer = new CSVRenderer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (&amp;quot;Text&amp;quot;.equals(format))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ( &amp;quot;Text&amp;quot;.equals( format ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer = new TextRenderer();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view, &amp;quot;Invalid Renderer&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog( view, &amp;quot;Invalid Renderer&amp;quot;, NAME, JOptionPane.ERROR_MESSAGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(reports != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( reports != null ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;final StringBuffer strbuf = new StringBuffer();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// String output = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer.start();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int i=0;i&amp;lt;reports.length;i++)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer.renderFileReport(reports[i]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for ( int i = 0;i &amp;lt; reports.length;i++ )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer.renderFileReport( reports[ i ] );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;renderer.end();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (IOException ioe) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log(Log.ERROR, this, &amp;quot;Renderer can't report.&amp;quot;, ioe );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch ( IOException ioe ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Log.log( Log.ERROR, this, &amp;quot;Renderer can't report.&amp;quot;, ioe );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.setBuffer(jEdit.newFile(view));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.setBuffer( jEdit.newFile( view ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VFSManager.runInAWTThread(
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Runnable()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void run()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getTextArea().setText(strbuf.toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Runnable() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void run() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getTextArea().setText( strbuf.toString() );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}//End of if
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}//End of exportErrorAsReport
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;class ProgressBar extends JPanel
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;class ProgressBar extends JPanel {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private JProgressBar pBar;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private View view;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public ProgressBar(View view, int min,int max)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public ProgressBar( View view, int min, int max ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.view = view;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setLayout(new BorderLayout());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar = new JProgressBar(min,max);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setUI(new BasicProgressBarUI()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Color getSelectionBackground()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jEdit.getColorProperty(&amp;quot;pmd.progressbar.foreground&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;setLayout( new BorderLayout() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar = new JProgressBar( min, max );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setUI( new BasicProgressBarUI() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Color getSelectionBackground() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jEdit.getColorProperty( &amp;quot;pmd.progressbar.foreground&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Color getSelectionForeground()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return jEdit.getColorProperty(&amp;quot;pmd.progressbar.foreground&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public Color getSelectionForeground() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return jEdit.getColorProperty( &amp;quot;pmd.progressbar.foreground&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//pBar.addNotify();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBorder(new EtchedBorder(EtchedBorder.RAISED));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setToolTipText(&amp;quot;PMD Check in Progress&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setForeground(jEdit.getColorProperty(&amp;quot;pmd.progressbar.background&amp;quot;)); //Color of the ProgressBar flow
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBackground(jEdit.getColorProperty(&amp;quot;view.status.background&amp;quot;)); //Color of the ProgressBar Background
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBorder( new EtchedBorder( EtchedBorder.RAISED ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setToolTipText( &amp;quot;PMD Check in Progress&amp;quot; );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setForeground( jEdit.getColorProperty( &amp;quot;pmd.progressbar.background&amp;quot; ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setBackground( jEdit.getColorProperty( &amp;quot;view.status.background&amp;quot; ) ); 
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setStringPainted(true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;add(pBar, BorderLayout.CENTER);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().add(pBar, BorderLayout.EAST);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setStringPainted( true );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;add( pBar, BorderLayout.CENTER );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().add( pBar, BorderLayout.EAST );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void increment(int num)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setValue(pBar.getValue()+num);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void increment( int num ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setValue( pBar.getValue() + num );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void completeBar()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setValue(pBar.getMaximum());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().remove(pBar);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public void completeBar() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar.setValue( pBar.getMaximum() );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view.getStatus().remove( pBar );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;view = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pBar = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private CPD getCPD(int tileSize, String fileType, View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private CPD getCPD( int tileSize, String fileType ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Language lang;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LanguageFactory lf = new LanguageFactory();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder sb = new StringBuilder();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean supported = false;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (String s : lf.supportedLanguages) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sb.append(s).append(&amp;quot;, &amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (s.equals(fileType)) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;supported = true; &amp;nbsp; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!supported) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JOptionPane.showMessageDialog(view,&amp;quot;Copy/Paste detection can only be performed on &amp;quot; + sb.toString().substring(0, sb.length() - 2) + &amp;quot; code.&amp;quot;,&amp;quot;Copy/Paste Detector&amp;quot;,JOptionPane.INFORMATION_MESSAGE);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;java&amp;quot;.equals(fileType))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Log.log(Log.DEBUG, PMDJEditPlugin.class, &amp;quot;Doing java&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( &amp;quot;java&amp;quot;.equals( fileType ) ) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Properties props = new Properties();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;props.setProperty(JavaTokenizer.IGNORE_LITERALS, String.valueOf(jEdit.getBooleanProperty(PMDJEditPlugin.IGNORE_LITERALS)));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage(&amp;quot;java&amp;quot;, props);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;props.setProperty( JavaTokenizer.IGNORE_LITERALS, String.valueOf( jEdit.getBooleanProperty( PMDJEditPlugin.IGNORE_LITERALS ) ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( &amp;quot;java&amp;quot;, props );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage(fileType); &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lang = lf.createLanguage( fileType );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new CPD(tileSize,lang);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return lang == null ? null : new CPD( tileSize, lang );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private CPD getCPD(String fileType, View view)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getCPD(jEdit.getIntegerProperty(PMDJEditPlugin.DEFAULT_TILE_MINSIZE_PROPERTY,100), fileType, view);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private CPD getCPD( String fileType ) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return getCPD( jEdit.getIntegerProperty( PMDJEditPlugin.DEFAULT_TILE_MINSIZE_PROPERTY, 100 ), fileType );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Run the PMD rule designer.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static void runDesigner() {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] args = new String[]{&amp;quot;-noexitonclose&amp;quot;};
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Designer(args);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String[] args = new String[] {&amp;quot;-noexitonclose&amp;quot;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new Designer( args );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-}
&lt;br&gt;-
&lt;br&gt;-
&lt;br&gt;+}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26645842&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7012--trunk-pmd-jedit-PMDPlugin-src-net-sourceforge-pmd--jedit-PMDJEditPlugin.java-tp26645842p26645842.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26643680</id>
	<title>SF.net SVN: pmd:[7011] trunk/pmd</title>
	<published>2009-12-04T06:55:00Z</published>
	<updated>2009-12-04T06:55:00Z</updated>
	<author>
		<name>rpelisse-2</name>
	</author>
	<content type="html">Revision: 7011
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7011&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7011&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rpelisse
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-04 14:54:59 +0000 (Fri, 04 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;fixing performance issue on PreserveStackTrace by removing use of descendant:: axis. See bug &amp;nbsp;1808110
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/etc/changelog.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/src/net/sourceforge/pmd/lang/java/rule/design/PreserveStackTraceRule.java
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/etc/changelog.txt	2009-12-04 14:37:46 UTC (rev 7010)
&lt;br&gt;+++ trunk/pmd/etc/changelog.txt	2009-12-04 14:54:59 UTC (rev 7011)
&lt;br&gt;@@ -405,7 +405,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* UselessParentheses
&lt;br&gt;&amp;nbsp;	Basic rulesets still includes a reference to those rules.	
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-Fixed bug 2832322 - &amp;nbsp;cpd.xml file tag path attribute should be entity-encoded
&lt;br&gt;+Fixed bug 1808110 - Fixed performance issues on PreserveStackTrace
&lt;br&gt;+Fixed bug 2832322 - cpd.xml file tag path attribute should be entity-encoded
&lt;br&gt;&amp;nbsp;Fixed bug 2826119 - False +: DoubleCheckedLocking warning with volatile field
&lt;br&gt;&amp;nbsp;Fixed bug 2835074 - False -: DoubleCheckedLocking with reversed null check
&lt;br&gt;&amp;nbsp;Fixed bug 1932242 - EmptyMethodInAbstractClassShouldBeAbstract false +
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/src/net/sourceforge/pmd/lang/java/rule/design/PreserveStackTraceRule.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/src/net/sourceforge/pmd/lang/java/rule/design/PreserveStackTraceRule.java	2009-12-04 14:37:46 UTC (rev 7010)
&lt;br&gt;+++ trunk/pmd/src/net/sourceforge/pmd/lang/java/rule/design/PreserveStackTraceRule.java	2009-12-04 14:54:59 UTC (rev 7011)
&lt;br&gt;@@ -123,7 +123,7 @@
&lt;br&gt;&amp;nbsp;		// In case of NPE...
&lt;br&gt;&amp;nbsp;		if ( node != null &amp;&amp; node.getImage() != null )
&lt;br&gt;&amp;nbsp;		{
&lt;br&gt;-			return catchStmt.hasDescendantMatchingXPath(&amp;quot;descendant::StatementExpression/PrimaryExpression/PrimaryPrefix/Name[@Image = '&amp;quot; + node.getImage() + &amp;quot;.initCause']&amp;quot;);
&lt;br&gt;+			return catchStmt.hasDescendantMatchingXPath(&amp;quot;./Block/BlockStatement/Statement/StatementExpression/PrimaryExpression/PrimaryPrefix/Name[@Image = '&amp;quot; + node.getImage() + &amp;quot;.initCause']&amp;quot;);
&lt;br&gt;&amp;nbsp;		}
&lt;br&gt;&amp;nbsp;		return false;
&lt;br&gt;&amp;nbsp;	}
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26643680&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7011--trunk-pmd-tp26643680p26643680.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26643652</id>
	<title>[ pmd-Bugs-1808110 ] PreserveStackTrace shoud check use of initCause method</title>
	<published>2009-12-04T06:53:38Z</published>
	<updated>2009-12-04T06:53:38Z</updated>
	<author>
		<name>SourceForge.net</name>
	</author>
	<content type="html">Bugs item #1808110, was opened at 2007-10-05 16:33
&lt;br&gt;Message generated for change (Comment added) made by rpelisse
&lt;br&gt;You can respond by visiting: 
&lt;br&gt;&lt;a href=&quot;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=1808110&amp;group_id=56262&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=1808110&amp;group_id=56262&lt;/a&gt;&lt;br&gt;&lt;br&gt;Please note that this message will contain a full copy of the comment thread,
&lt;br&gt;including the initial issue submission, for this request,
&lt;br&gt;not just the latest update.
&lt;br&gt;Category: pmd
&lt;br&gt;Group: None
&lt;br&gt;&amp;gt;Status: Closed
&lt;br&gt;&amp;gt;Resolution: Fixed
&lt;br&gt;Priority: 5
&lt;br&gt;Private: No
&lt;br&gt;Submitted By: sanjeev (sanjeevrjha)
&lt;br&gt;Assigned to: Romain PELISSE (rpelisse)
&lt;br&gt;Summary: PreserveStackTrace shoud check use of initCause method
&lt;br&gt;&lt;br&gt;Initial Comment:
&lt;br&gt;PreserveStackTrace rule is only checking if you throw new exception without using original exception. It is ignoring thrown exception if exception is a local variable. More ever, if &amp;nbsp;“initCause” is called, it should not be reported. IllegalStateException does not have any constructor which takes original exception.
&lt;br&gt;&lt;br&gt;Case 1: 
&lt;br&gt;Violations reported by PreserveStackTrace Rule
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;} catch (Exception e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalStateException();
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Case 2: 
&lt;br&gt;No violations reported by PreserveStackTrace Rule
&lt;br&gt;&lt;br&gt;} catch (Exception e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IllegalStateException ex = new &amp;nbsp;IllegalStateException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; throw ex;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;Case 3: 
&lt;br&gt;PreserveStackTrace Rule should exclude this as initCause is used.
&lt;br&gt;&lt;br&gt;} catch (Exception e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IllegalStateException ex = new &amp;nbsp;IllegalStateException();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex.initCause(e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; throw ex;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;gt;Comment By: Romain PELISSE (rpelisse)
&lt;br&gt;Date: 2009-12-04 15:53
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;@burdoche:
&lt;br&gt;&lt;br&gt;There is a test case called &amp;quot;17, PreserveStackTrace Rule should exclude
&lt;br&gt;this as initCause is used.&amp;quot; that reproduce the Case 3 of this bug entry.
&lt;br&gt;When I run it does not seems to be an issue.
&lt;br&gt;&lt;br&gt;(check the file
&lt;br&gt;regress/test/net/sourceforge/pmd/rules/design/xml/PreserveStackTrace.xml) 
&lt;br&gt;&lt;br&gt;Unless you can provide us a failure example, I have to consider case 3 as
&lt;br&gt;closed. If you still have an issue with this, please create a new bug
&lt;br&gt;entry, this one has too much history, it's confusing.
&lt;br&gt;&lt;br&gt;Regarding the performance issue, I removed the use of descendant:: in the
&lt;br&gt;rule. Obviously, it may trigger more false positive, as the rule will no
&lt;br&gt;longer look &amp;quot;everywhere&amp;quot; but I confident it should be ok nonetheless. 
&lt;br&gt;&lt;br&gt;Therefore, I closed this bug.
&lt;br&gt;&lt;br&gt;Fix will be available in 4.2.6 and 5.0
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Romain PELISSE (rpelisse)
&lt;br&gt;Date: 2009-11-28 00:37
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Arg, this fix of mine is the cause of the performance issue on
&lt;br&gt;PreseverStackTrace :/ 
&lt;br&gt;&lt;br&gt;I'll see to it as soon as possible....
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Ryan Gustafson (rgustav)
&lt;br&gt;Date: 2009-11-27 18:37
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;The XPath searches in this Rule are too expensive, using the
&lt;br&gt;descendant-or-self axis. &amp;nbsp;In some case this single rule can easily take up
&lt;br&gt;to 20% of the time.
&lt;br&gt;&lt;br&gt;Closed 2827319 as this is a performance regression on this bug fix.
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Romain PELISSE (rpelisse)
&lt;br&gt;Date: 2009-02-14 00:55
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Damned i did completly forgot about this ! it's a shame i may have been
&lt;br&gt;able to fix it for 4.2.5 ! :(
&lt;br&gt;&lt;br&gt;Well, i'll work on it. Thanks for noticing this.
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Ernst de Haan (znerd)
&lt;br&gt;Date: 2009-02-13 18:27
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;This is still a problem with PMD 4.2.5.
&lt;br&gt;&lt;br&gt;Please reopen this bug report.
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Thomas B (burdoche)
&lt;br&gt;Date: 2008-11-05 11:04
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;I can confirm that Case 3 is not OK, PMD 4.2.4 on
&lt;br&gt;&lt;br&gt;try{
&lt;br&gt;...
&lt;br&gt;} catch (Exception e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _logger.fatal(&amp;quot;Fatal error with xml parser declared.&amp;quot;, e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; XNIException ex = new XNIException(e.getMessage());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ex.initCause(e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; throw ex;
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Rupert Smith (rupertlssmith)
&lt;br&gt;Date: 2008-08-28 10:52
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Logged In: YES 
&lt;br&gt;user_id=1288539
&lt;br&gt;Originator: NO
&lt;br&gt;&lt;br&gt;Case 3 still seems to be broken, running version 4.2.2 on this code:
&lt;br&gt;&lt;br&gt;try 
&lt;br&gt;{ 
&lt;br&gt;return source.available(); 
&lt;br&gt;} 
&lt;br&gt;catch (RemoteException e) 
&lt;br&gt;{ 
&lt;br&gt;IOException ioe = new IOException(&amp;quot;There was a Remote Exception.&amp;quot;); 
&lt;br&gt;ioe.initCause(e); 
&lt;br&gt;throw ioe; 
&lt;br&gt;}
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Romain PELISSE (rpelisse)
&lt;br&gt;Date: 2008-04-11 19:50
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Logged In: YES 
&lt;br&gt;user_id=1679130
&lt;br&gt;Originator: NO
&lt;br&gt;&lt;br&gt;I fixed those 3 issues. Fix should be available in 4.2.1 (to be release
&lt;br&gt;very soon).
&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;Comment By: Romain PELISSE (rpelisse)
&lt;br&gt;Date: 2008-03-24 04:56
&lt;br&gt;&lt;br&gt;Message:
&lt;br&gt;Logged In: YES 
&lt;br&gt;user_id=1679130
&lt;br&gt;Originator: NO
&lt;br&gt;&lt;br&gt;Thanks for the report. 
&lt;br&gt;&lt;br&gt;I reproduce the 3 cases. I'll try to fix each of them, but it won't be for
&lt;br&gt;the 4.2 release (If i fix, i'll let you know, so if you really need, you'll
&lt;br&gt;be able to have this fix).
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;----------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;You can respond by visiting: 
&lt;br&gt;&lt;a href=&quot;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=1808110&amp;group_id=56262&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://sourceforge.net/tracker/?func=detail&amp;atid=479921&amp;aid=1808110&amp;group_id=56262&lt;/a&gt;&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26643652&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/--pmd-Bugs-1808110---PreserveStackTrace-shoud-check-use-of-initCause-method-tp26643652p26643652.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26643433</id>
	<title>SF.net SVN: pmd:[7010] branches/pmd/4.2.x</title>
	<published>2009-12-04T06:37:48Z</published>
	<updated>2009-12-04T06:37:48Z</updated>
	<author>
		<name>rpelisse-2</name>
	</author>
	<content type="html">Revision: 7010
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7010&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7010&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rpelisse
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-04 14:37:46 +0000 (Fri, 04 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;fixing performance issue on PreserveStackTrace by removing use of descendant:: axis. See bug &amp;nbsp;1808110
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/etc/changelog.txt	2009-12-04 13:37:26 UTC (rev 7009)
&lt;br&gt;+++ branches/pmd/4.2.x/etc/changelog.txt	2009-12-04 14:37:46 UTC (rev 7010)
&lt;br&gt;@@ -1,5 +1,6 @@
&lt;br&gt;&amp;nbsp;???? - 4.2.6:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+Fixed bug 1808110 - Fixed performance issue on PreserveStackTrace
&lt;br&gt;&amp;nbsp;Fixed bug 2832322 - &amp;nbsp;cpd.xml file tag path attribute should be entity-encoded
&lt;br&gt;&amp;nbsp;Fixed bug 2590258 - NPE with nicerhtml output
&lt;br&gt;&amp;nbsp;Fixed bug 2317099 - False + in SimplifyCondition
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java	2009-12-04 13:37:26 UTC (rev 7009)
&lt;br&gt;+++ branches/pmd/4.2.x/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java	2009-12-04 14:37:46 UTC (rev 7010)
&lt;br&gt;@@ -128,7 +128,7 @@
&lt;br&gt;&amp;nbsp;		// In case of NPE...
&lt;br&gt;&amp;nbsp;		if ( node != null &amp;&amp; node.getImage() != null )
&lt;br&gt;&amp;nbsp;		{
&lt;br&gt;-			List &amp;lt;Node&amp;gt; nodes = catchStmt.findChildNodesWithXPath(&amp;quot;descendant::StatementExpression/PrimaryExpression/PrimaryPrefix/Name[@Image = '&amp;quot; + node.getImage() + &amp;quot;.initCause']&amp;quot;);
&lt;br&gt;+			List &amp;lt;Node&amp;gt; nodes = catchStmt.findChildNodesWithXPath(&amp;quot;./Block/BlockStatement/Statement/StatementExpression/PrimaryExpression/PrimaryPrefix/Name[@Image = '&amp;quot; + node.getImage() + &amp;quot;.initCause']&amp;quot;);
&lt;br&gt;&amp;nbsp;			if ( nodes != null &amp;&amp; nodes.size() &amp;gt; 0 )
&lt;br&gt;&amp;nbsp;			{
&lt;br&gt;&amp;nbsp;				return true;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26643433&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7010--branches-pmd-4.2.x-tp26643433p26643433.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26642605</id>
	<title>SF.net SVN: pmd:[7009] branches/pmd/4.2.x</title>
	<published>2009-12-04T05:37:26Z</published>
	<updated>2009-12-04T05:37:26Z</updated>
	<author>
		<name>rpelisse-2</name>
	</author>
	<content type="html">Revision: 7009
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7009&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7009&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rpelisse
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-04 13:37:26 +0000 (Fri, 04 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Adding a new rule : GenericsNaming
&lt;br&gt;Thanks to Nicolas Dordet for his inputs on this one.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/NamingRulesTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/rulesets/naming.xml
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/xml/GenericsNaming.xml
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/etc/changelog.txt	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;+++ branches/pmd/4.2.x/etc/changelog.txt	2009-12-04 13:37:26 UTC (rev 7009)
&lt;br&gt;@@ -21,6 +21,7 @@
&lt;br&gt;&amp;nbsp;	Android: DoNotHardCodeSDCard
&lt;br&gt;&amp;nbsp;	Controversial : AvoidLiteralsInIfCondition (patch 2591627), UseConcurrentHashMap
&lt;br&gt;&amp;nbsp;	StrictExceptions : AvoidCatchingGenericException, AvoidLosingExceptionInformation
&lt;br&gt;+	Naming : GenericsNaming
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;February 08, 2009 - 4.2.5:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/NamingRulesTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/NamingRulesTest.java	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/NamingRulesTest.java	2009-12-04 13:37:26 UTC (rev 7009)
&lt;br&gt;@@ -26,6 +26,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(&amp;quot;naming&amp;quot;, &amp;quot;SuspiciousEqualsMethodName&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(&amp;quot;naming&amp;quot;, &amp;quot;SuspiciousHashcodeMethodName&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(&amp;quot;naming&amp;quot;, &amp;quot;VariableNamingConventions&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	addRule(&amp;quot;naming&amp;quot;, &amp;quot;GenericsNaming&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;&lt;br&gt;Added: branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/xml/GenericsNaming.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/xml/GenericsNaming.xml	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ branches/pmd/4.2.x/regress/test/net/sourceforge/pmd/rules/naming/xml/GenericsNaming.xml	2009-12-04 13:37:26 UTC (rev 7009)
&lt;br&gt;@@ -0,0 +1,47 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;test-data&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+1 upper case/single letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;B extends Bar&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+2 upper case/single letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;B extends Bar, C extends Car&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+1 lower Case/single letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;b extends Bar&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+1 lower case/multiple letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;BA extends Bar&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+&amp;lt;/test-data&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: branches/pmd/4.2.x/rulesets/naming.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- branches/pmd/4.2.x/rulesets/naming.xml	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;+++ branches/pmd/4.2.x/rulesets/naming.xml	2009-12-04 13:37:26 UTC (rev 7009)
&lt;br&gt;@@ -507,4 +507,53 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/example&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;lt;rule name=&amp;quot;GenericsNaming&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;since=&amp;quot;4.2.6&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;message=&amp;quot;Generics names should be a one letter long and upper case.&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;class=&amp;quot;net.sourceforge.pmd.rules.XPathRule&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;externalInfoUrl=&amp;quot;&lt;a href=&quot;http://pmd.sourceforge.net/rules/naming.html#GenericsNaming&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/rules/naming.html#GenericsNaming&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;
&lt;br&gt;+Generics names should be a one letter long and upper case.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;priority&amp;gt;4&amp;lt;/priority&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;xpath&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+//TypeDeclaration/ClassOrInterfaceDeclaration/TypeParameters/TypeParameter[
&lt;br&gt;+ &amp;nbsp;string-length(@Image) &amp;gt; 1 
&lt;br&gt;+ &amp;nbsp;or
&lt;br&gt;+ &amp;nbsp;string:upper-case(@Image) != @Image
&lt;br&gt;+]
&lt;br&gt;+]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+public interface GenericDao&amp;lt;E extends BaseModel, K extends Serializable&amp;gt; extends BaseDao
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // This is ok...
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+public interface GenericDao&amp;lt;E extends BaseModel, K extends Serializable&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // Also this
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+public interface GenericDao&amp;lt;e extends BaseModel, K extends Serializable&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // 'e' should be an 'E'
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+public interface GenericDao&amp;lt;EF extends BaseModel, K extends Serializable&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // 'EF' is not ok.
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;/ruleset&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26642605&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7009--branches-pmd-4.2.x-tp26642605p26642605.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26642555</id>
	<title>SF.net SVN: pmd:[7008] trunk/pmd</title>
	<published>2009-12-04T05:32:52Z</published>
	<updated>2009-12-04T05:32:52Z</updated>
	<author>
		<name>rpelisse-2</name>
	</author>
	<content type="html">Revision: 7008
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7008&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7008&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rpelisse
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-04 13:32:51 +0000 (Fri, 04 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;Adding a new rule : GenericsNaming
&lt;br&gt;Thanks to Nicolas Dordet for his inputs on this one.
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/etc/changelog.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/NamingRulesTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/rulesets/java/naming.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/rulesets/xsl/xpath.xml
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/xml/GenericsNaming.xml
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/etc/changelog.txt	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;+++ trunk/pmd/etc/changelog.txt	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;@@ -481,7 +481,7 @@
&lt;br&gt;&amp;nbsp;	Empty ruleset: EmptyInitializer,EmptyStatementBlock
&lt;br&gt;&amp;nbsp;	Import ruleset: UnnecessaryFullyQualifiedName
&lt;br&gt;&amp;nbsp;	Optimization ruleset: RedundantFieldInitializer
&lt;br&gt;-	Naming ruleset: ShortClassName
&lt;br&gt;+	Naming ruleset: ShortClassName, GenericsNaming
&lt;br&gt;&amp;nbsp;	StrictException ruleset: AvoidThrowingNewInstanceOfSameException, AvoidCatchingGenericException, AvoidLosingExceptionInformation
&lt;br&gt;&amp;nbsp;	Unnecessary ruleset: UselessParentheses
&lt;br&gt;&amp;nbsp;	JUnit ruleset: JUnitTestContainsTooManyAsserts, UseAssertTrueInsteadOfAssertEquals
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/NamingRulesTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/NamingRulesTest.java	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/NamingRulesTest.java	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;@@ -29,6 +29,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(RULESET, &amp;quot;SuspiciousEqualsMethodName&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(RULESET, &amp;quot;SuspiciousHashcodeMethodName&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(RULESET, &amp;quot;VariableNamingConventions&amp;quot;);
&lt;br&gt;+	addRule(RULESET, &amp;quot;GenericsNaming&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;&lt;br&gt;Added: trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/xml/GenericsNaming.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/xml/GenericsNaming.xml	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/java/rule/naming/xml/GenericsNaming.xml	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;@@ -0,0 +1,47 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;test-data&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+1 upper case/single letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;B extends Bar&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+2 upper case/single letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;B extends Bar, C extends Car&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+1 lower Case/single letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;b extends Bar&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+1 lower case/multiple letter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+public interface Foo &amp;lt;BA extends Bar&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+&amp;lt;/test-data&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;@@ -14,7 +14,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;xsl&amp;lt;/source-type&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Valid use of concat()&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;using an axis name as an node name&amp;lt;/description&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;&amp;nbsp;&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;
&lt;br&gt;@@ -25,4 +25,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;xsl&amp;lt;/source-type&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;using an axis descendant::self abreviation with checkSelfDescendantAbreviation @true&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;1&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;rule-property name=&amp;quot;checkSelfDescendantAbreviation&amp;quot;&amp;gt;true&amp;lt;/rule-property&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsl=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/1999/XSL/Transform&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;xsl:variable name=&amp;quot;var&amp;quot; select=&amp;quot;//child&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xsl:stylesheet&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;xsl&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/test-data&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/rulesets/java/naming.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/rulesets/java/naming.xml	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;+++ trunk/pmd/rulesets/java/naming.xml	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;@@ -536,4 +536,54 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/example&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;lt;rule name=&amp;quot;GenericsNaming&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; language=&amp;quot;java&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; since=&amp;quot;4.2.6&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message=&amp;quot;Generics names should be a one letter long and upper case.&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class=&amp;quot;net.sourceforge.pmd.lang.rule.XPathRule&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;externalInfoUrl=&amp;quot;&lt;a href=&quot;http://pmd.sourceforge.net/rules/java/naming.html#GenericsNaming&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/rules/java/naming.html#GenericsNaming&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;
&lt;br&gt;+Generics names should be a one letter long and upper case.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;priority&amp;gt;4&amp;lt;/priority&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;xpath&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+//TypeDeclaration/ClassOrInterfaceDeclaration/TypeParameters/TypeParameter[
&lt;br&gt;+ &amp;nbsp;string-length(@Image) &amp;gt; 1 
&lt;br&gt;+ &amp;nbsp;or
&lt;br&gt;+ &amp;nbsp;string:upper-case(@Image) != @Image
&lt;br&gt;+]
&lt;br&gt;+]]&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;![CDATA[
&lt;br&gt;+public interface GenericDao&amp;lt;E extends BaseModel, K extends Serializable&amp;gt; extends BaseDao
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // This is ok...
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+public interface GenericDao&amp;lt;E extends BaseModel, K extends Serializable&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // Also this
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+public interface GenericDao&amp;lt;e extends BaseModel, K extends Serializable&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // 'e' should be an 'E'
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+public interface GenericDao&amp;lt;EF extends BaseModel, K extends Serializable&amp;gt;
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; // 'EF' is not ok.
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/example&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;/ruleset&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/rulesets/xsl/xpath.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/rulesets/xsl/xpath.xml	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;+++ trunk/pmd/rulesets/xsl/xpath.xml	2009-12-04 13:32:51 UTC (rev 7008)
&lt;br&gt;@@ -60,6 +60,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;contains(@select,'descendant::')
&lt;br&gt;&amp;nbsp; &amp;nbsp;or 
&lt;br&gt;&amp;nbsp; &amp;nbsp;contains(@select,'descendant-self::')
&lt;br&gt;+ &amp;nbsp;or (
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;($checkSelfDescendantAbreviation = 'true' )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;contains(@select,'//')
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;)
&lt;br&gt;&amp;nbsp;]
&lt;br&gt;&amp;nbsp;]]&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;!-- the use of node() allow to target any node with an select attribute
&lt;br&gt;@@ -67,6 +72,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; node name.--&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/value&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/property&amp;gt;
&lt;br&gt;+	 &amp;lt;property name=&amp;quot;checkSelfDescendantAbreviation&amp;quot; type=&amp;quot;Boolean&amp;quot; description=&amp;quot;descendant::self abreviation, '//', will also trigger this rule.&amp;quot;&amp;gt;&amp;lt;value&amp;gt;false&amp;lt;/value&amp;gt;&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/properties&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;example&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;lt;![CDATA[
&lt;br&gt;&lt;br&gt;&lt;br&gt;This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
&lt;br&gt;&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;Join us December 9, 2009 for the Red Hat Virtual Experience,
&lt;br&gt;a free event focused on virtualization and cloud computing. 
&lt;br&gt;Attend in-depth sessions from your desk. Your couch. Anywhere.
&lt;br&gt;&lt;a href=&quot;http://p.sf.net/sfu/redhat-sfdev2dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://p.sf.net/sfu/redhat-sfdev2dev&lt;/a&gt;&lt;br&gt;_______________________________________________
&lt;br&gt;Pmd-devel mailing list
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26642555&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;Pmd-devel@...&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://lists.sourceforge.net/lists/listinfo/pmd-devel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.sourceforge.net/lists/listinfo/pmd-devel&lt;/a&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Java-PMD---Dev-f2382.html&quot; embed=&quot;fixTarget[2382]&quot; target=&quot;_top&quot; &gt;Java PMD - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/SF.net-SVN%3A-pmd%3A-7008--trunk-pmd-tp26642555p26642555.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26635384</id>
	<title>SF.net SVN: pmd:[7007] trunk/pmd</title>
	<published>2009-12-03T15:50:29Z</published>
	<updated>2009-12-03T15:50:29Z</updated>
	<author>
		<name>rpelisse-2</name>
	</author>
	<content type="html">Revision: 7007
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://pmd.svn.sourceforge.net/pmd/?rev=7007&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.svn.sourceforge.net/pmd/?rev=7007&amp;view=rev&lt;/a&gt;&lt;br&gt;Author: &amp;nbsp; rpelisse
&lt;br&gt;Date: &amp;nbsp; &amp;nbsp; 2009-12-03 23:50:29 +0000 (Thu, 03 Dec 2009)
&lt;br&gt;&lt;br&gt;Log Message:
&lt;br&gt;-----------
&lt;br&gt;adding a new XPath rule : AvoidAxisNavigation.
&lt;br&gt;(Note that the description of the rule is from an email sent to me by Ryan Gustavson)
&lt;br&gt;&lt;br&gt;Modified Paths:
&lt;br&gt;--------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/etc/changelog.txt
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/XPathRulesTest.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/rulesets/xsl/xpath.xml
&lt;br&gt;&lt;br&gt;Added Paths:
&lt;br&gt;-----------
&lt;br&gt;&amp;nbsp; &amp;nbsp; trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/etc/changelog.txt
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/etc/changelog.txt	2009-12-03 06:19:27 UTC (rev 7006)
&lt;br&gt;+++ trunk/pmd/etc/changelog.txt	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;@@ -356,6 +356,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;New Language 'ecmascript' added, for writing XPathRule and Java Rules against ECMAScript/JavaScript documents (must be standalone, not embedded in HTML). &amp;nbsp;Many thanks to Rhino!
&lt;br&gt;&amp;nbsp;New Language 'xml' added, for writing XPathRules against XML documents
&lt;br&gt;+New Language 'xsl' added, as a derivative from XML. 
&lt;br&gt;&amp;nbsp;Rules can now define a 'violationSuppressRegex' property to universally suppress violations with messages matching the given regular expression
&lt;br&gt;&amp;nbsp;Rules can now define a 'violationSuppressXPath' property to universally suppress violations on nodes which match the given relative XPath expression
&lt;br&gt;&amp;nbsp;Rules are now directly associated with a corresponding Language, and a can also be associated with a specific Language Version range if desired.
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/XPathRulesTest.java
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/XPathRulesTest.java	2009-12-03 06:19:27 UTC (rev 7006)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/XPathRulesTest.java	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;@@ -14,6 +14,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Before
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void setUp() {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addRule(RULESET, &amp;quot;UseConcatOnce&amp;quot;);
&lt;br&gt;+	addRule(RULESET, &amp;quot;AvoidAxisNavigation&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public static junit.framework.Test suite() {
&lt;br&gt;&lt;br&gt;Added: trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(rev 0)
&lt;br&gt;+++ trunk/pmd/regress/test/net/sourceforge/pmd/lang/xsl/rule/xpath/xml/AvoidAxisNavigation.xml	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;@@ -0,0 +1,28 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;test-data&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Basic scenario&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;3&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsl=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/1999/XSL/Transform&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;xsl:variable select=&amp;quot;descendant::book&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xsl:variable select=&amp;quot;following::book&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;xsl:variable select=&amp;quot;preceeding::book&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xsl:stylesheet&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;xsl&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;test-code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Valid use of concat()&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;expected-problems&amp;gt;0&amp;lt;/expected-problems&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsl=&amp;quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/1999/XSL/Transform&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;!-- a node called 'descendant', probably a bad idea but shouldn't be a problem --&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;xsl:variable name=&amp;quot;var&amp;quot; select=&amp;quot;//descendant&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/xsl:stylesheet&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; ]]&amp;gt;&amp;lt;/code&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;source-type&amp;gt;xsl&amp;lt;/source-type&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/test-code&amp;gt;
&lt;br&gt;+&amp;lt;/test-data&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: trunk/pmd/rulesets/xsl/xpath.xml
&lt;br&gt;===================================================================
&lt;br&gt;--- trunk/pmd/rulesets/xsl/xpath.xml	2009-12-03 06:19:27 UTC (rev 7006)
&lt;br&gt;+++ trunk/pmd/rulesets/xsl/xpath.xml	2009-12-03 23:50:29 UTC (rev 7007)
&lt;br&gt;@@ -38,4 +38,40 @@
&lt;br&gt;&amp;nbsp; ]]&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/example&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/rule&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;rule name=&amp;quot;AvoidAxisNavigation&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; language=&amp;quot;xsl&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; since=&amp;quot;5.0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message=&amp;quot;Axis navigation has the largest impact when writing an XPath query.&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class=&amp;quot;net.sourceforge.pmd.lang.rule.XPathRule&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; externalInfoUrl=&amp;quot;&lt;a href=&quot;http://pmd.sourceforge.net/rules/xml/basic.html#AvoidAxisNavigation&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://pmd.sourceforge.net/rules/xml/basic.html#AvoidAxisNavigation&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;description&amp;gt;
&lt;br&gt;+Avoid using the 'following' or 'preceeding' axes whenever possible, as these can cut through 100% of the document in the worst case. &amp;nbsp;Also, try to avoid using 'descendant' or 'descendant-self' axes, as if you're at the top of the Document, it necessarily means cutting through 100% of the document. 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;priority&amp;gt;3&amp;lt;/priority&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;xpath&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;value&amp;gt;
&lt;br&gt;+ &amp;lt;![CDATA[
&lt;br&gt;+//node()[
&lt;br&gt;+ &amp;nbsp;contains(@select,'preceeding::')
&lt;br&gt;+ &amp;nbsp;or
&lt;br&gt;+ &amp;nbsp;contains(@select,'following::')
&lt;br&gt;+ &amp;nbsp;or
&lt;br&gt;+ &amp;nbsp;contains(@select,'descendant::')
&lt;br&gt;+ &amp;nbsp;or 
&lt;br&gt;+ &amp;nbsp;contains(@select,'descendant-self::')
&lt;br&gt;+]
&lt;br&gt;+]]&amp;gt;
&lt;br&gt;+&amp;lt;!-- the use of node() allow to target any node with an select attribute
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; but also workaround the ambiguity of having the xsl 