JFlex: 1.7.0-SNAPSHOT tweaked for IntelliJ platform
authorGregory.Shrago <gregory.shrago@jetbrains.com>
Thu, 5 May 2016 15:57:51 +0000 (18:57 +0300)
committerGregory.Shrago <gregory.shrago@jetbrains.com>
Wed, 11 May 2016 18:37:26 +0000 (21:37 +0300)
java/java-impl/src/com/intellij/spi/parsing/_SPILexer.flex
java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaDocLexer.flex
java/java-psi-impl/src/com/intellij/lang/java/lexer/_JavaLexer.flex
platform/lang-impl/src/com/intellij/psi/search/scope/packageSet/lexer/_ScopesLexer.flex
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/groovydoc/lexer/gdoc.flex
plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/lexer/groovy.skeleton
python/src/com/jetbrains/python/lexer/Python.flex
tools/lexer/CHANGES [new file with mode: 0644]
tools/lexer/COPYRIGHT [new file with mode: 0644]
tools/lexer/idea-flex.skeleton
tools/lexer/jflex-1.7.0-SNAPSHOT.jar [new file with mode: 0644]

index 9a407038660dc257113370578a80d88b5a06593a..18ce275ed5e8ed02c1a854e41bc2aa5554e3cd7b 100644 (file)
@@ -27,12 +27,6 @@ import com.intellij.lexer.FlexLexer;
   public _SPILexer() {
     this((java.io.Reader)null);
   }
-
-  public void goTo(int offset) {
-    zzCurrentPos = zzMarkedPos = zzStartRead = offset;
-    zzPushbackPos = 0;
-    zzAtEOF = offset < zzEndRead;
-  }
 %}
 
 %unicode
index 437cb8e506e3fa31c3e10949d176a8c7d49ccdb3..f4e02c09304d5ca3675933e573886624687cf666 100644 (file)
@@ -26,7 +26,7 @@ import com.intellij.psi.tree.IElementType;
   public void goTo(int offset) {
     zzCurrentPos = zzMarkedPos = zzStartRead = offset;
     zzPushbackPos = 0;
-    zzAtEOF = offset < zzEndRead;
+    zzAtEOF = false;
   }
 %}
 
index c3c03407aa98b5ea2bcb39a9941e14f566338414..dd6305a3fd9f362db07b4705d589ac1130e09159 100644 (file)
@@ -37,7 +37,7 @@ import com.intellij.lexer.FlexLexer;
   public void goTo(int offset) {
     zzCurrentPos = zzMarkedPos = zzStartRead = offset;
     zzPushbackPos = 0;
-    zzAtEOF = offset < zzEndRead;
+    zzAtEOF = false;
   }
 %}
 
index 0e17890ada102fc18b698bcf2c7cbb56abb3f8e7..67bc6fe1b0970a3da16e6757ae8f1cadde3efeda 100644 (file)
@@ -6,12 +6,6 @@ import com.intellij.lexer.FlexLexer;
 %%
 
 %{
-  public void goTo(int offset) {
-    zzCurrentPos = zzMarkedPos = zzStartRead = offset;
-    zzPushbackPos = 0;
-    zzAtEOF = offset < zzEndRead;
-  }
-
   public _ScopesLexer() {
     this((java.io.Reader)null);
   }
index a87821879fa118ed731965d3a3a13fac788d9d9b..66e221d2fd4ad662ceae9977b5c2445dee245512 100644 (file)
@@ -50,7 +50,7 @@ import com.intellij.psi.tree.IElementType;
   public void goTo(int offset) {
     zzCurrentPos = zzMarkedPos = zzStartRead = offset;
     zzPushbackPos = 0;
-    zzAtEOF = offset < zzEndRead;
+    zzAtEOF = false;
   }
 
 
index 2a2dafc29688ccb244e1a25acc87b71ab624873b..457af8d706f034d72dfb4f5937335bfdf8b76e10 100644 (file)
@@ -1,3 +1,7 @@
+
+  /** This character denotes the end of file */
+  public static final int YYEOF = -1;
+
   /** initial size of the lookahead buffer */
 --- private static final int ZZ_BUFFERSIZE = ...;
 
   private static final int ZZ_UNKNOWN_ERROR = 0;
   private static final int ZZ_NO_MATCH = 1;
   private static final int ZZ_PUSHBACK_2BIG = 2;
-  private static final int YYEOF = -1;
-  private static java.io.Reader zzReader = null; // Fake
 
   /* error messages for the codes above */
   private static final String[] ZZ_ERROR_MSG = {
-    "Unkown internal scanner error",
+    "Unknown internal scanner error",
     "Error: could not match input",
     "Error: pushback value was too large"
   };
 
 --- isFinal list
+  /** the input device */
+  private java.io.Reader zzReader;
+
   /** the current state of the DFA */
   private int zzState;
 
@@ -56,6 +61,9 @@
   /** zzAtEOF == true <=> the scanner is at the EOF */
   private boolean zzAtEOF;
 
+  /** denotes if the user-EOF-code has already been executed */
+  private boolean zzEOFDone;
+
 --- user class code
 
 --- constructor declaration
       zzMarkedPos = zzMarkedPosL;
 --- char count update
 
---- actions
-        default:
-          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-            zzAtEOF = true;
+      if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+        zzAtEOF = true;
 --- eofvalue
-          }
-          else {
+      }
+      else {
+--- actions
+          default:
 --- no match
           }
       }
index 87e6b497c045b1929cf34635af12c2a400d990ab..8e317bbc09f8a2cf209112a6a977d1629b2d2314 100644 (file)
@@ -31,9 +31,9 @@ LONGINTEGER = {INTEGER}[Ll]
 
 END_OF_LINE_COMMENT="#"[^\r\n]*
 
-IDENT_START = [a-zA-Z_]|[:unicode_uppercase_letter:]|[:unicode_lowercase_letter:]|[:unicode_titlecase_letter:]|[:unicode_modifier_letter:]|[:unicode_other_letter:]|[:unicode_letter_number:]
-IDENT_CONTINUE = [a-zA-Z0-9_]|[:unicode_uppercase_letter:]|[:unicode_lowercase_letter:]|[:unicode_titlecase_letter:]|[:unicode_modifier_letter:]|[:unicode_other_letter:]|[:unicode_letter_number:]|[:unicode_non_spacing_mark:]|[:unicode_combining_spacing_mark:]|[:unicode_decimal_digit_number:]|[:unicode_connector_punctuation:]
-IDENTIFIER = {IDENT_START}{IDENT_CONTINUE}**
+IDENT_START = [\w_--\d]
+IDENT_CONTINUE = [\w_]
+IDENTIFIER = {IDENT_START}{IDENT_CONTINUE}*
 
 FLOATNUMBER=({POINTFLOAT})|({EXPONENTFLOAT})
 POINTFLOAT=(({INTPART})?{FRACTION})|({INTPART}\.)
diff --git a/tools/lexer/CHANGES b/tools/lexer/CHANGES
new file mode 100644 (file)
index 0000000..80ee5d9
--- /dev/null
@@ -0,0 +1,10 @@
+jflex-1.7.0-SNAPSHOT.jar
+------------------------
+The following lists the changes by JetBrains team
+
+Original JFlex revision
+
+https://github.com/jflex-de/jflex/tree/de2312d6891de7fdf2752ad8e0a45983202ad5e0
+"Return exit code 0 for --{help,version,info}" committed on Feb 29 by lsf37
+
+1. Emitter.java: zzBufferL is treated as CharSequence instead of char[]
\ No newline at end of file
diff --git a/tools/lexer/COPYRIGHT b/tools/lexer/COPYRIGHT
new file mode 100644 (file)
index 0000000..9e94504
--- /dev/null
@@ -0,0 +1,21 @@
+JFlex - Copying, Warranty & License
+
+JFlex is free software, since version 1.5 published under the terms of a 
+BSD-style license. 
+
+There is absolutely NO WARRANTY for JFlex, its code and its documentation. 
+  
+
+
+Copyright (c) Gerwin Klein, Steve Rowe, Regis Decamp.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+    * Neither the names of the authors nor the names of JFlex contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
index 234a62c41a5567765948bc449b4bc8200574d2b9..45870ef86fc7a193a9b52643fbc135fa68a555a9 100644 (file)
@@ -1,3 +1,7 @@
+
+  /** This character denotes the end of file */
+  public static final int YYEOF = -1;
+
   /** initial size of the lookahead buffer */
 --- private static final int ZZ_BUFFERSIZE = ...;
 
   private static final int ZZ_UNKNOWN_ERROR = 0;
   private static final int ZZ_NO_MATCH = 1;
   private static final int ZZ_PUSHBACK_2BIG = 2;
-  private static final char[] EMPTY_BUFFER = new char[0];
-  private static final int YYEOF = -1;
-  private static java.io.Reader zzReader = null; // Fake
 
   /* error messages for the codes above */
-  private static final String ZZ_ERROR_MSG[] = {
-    "Unkown internal scanner error",
+  private static final String[] ZZ_ERROR_MSG = {
+    "Unknown internal scanner error",
     "Error: could not match input",
     "Error: pushback value was too large"
   };
 
 --- isFinal list
+  /** the input device */
+  private java.io.Reader zzReader;
+
   /** the current state of the DFA */
   private int zzState;
 
@@ -57,6 +61,9 @@
   /** zzAtEOF == true <=> the scanner is at the EOF */
   private boolean zzAtEOF;
 
+  /** denotes if the user-EOF-code has already been executed */
+  private boolean zzEOFDone;
+
 --- user class code
 
 --- constructor declaration
       zzMarkedPos = zzMarkedPosL;
 --- char count update
 
---- actions
-        default:
-          if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
-            zzAtEOF = true;
+      if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+        zzAtEOF = true;
 --- eofvalue
-          }
-          else {
+      }
+      else {
+--- actions
+          default:
 --- no match
           }
       }
diff --git a/tools/lexer/jflex-1.7.0-SNAPSHOT.jar b/tools/lexer/jflex-1.7.0-SNAPSHOT.jar
new file mode 100644 (file)
index 0000000..9f98b1e
Binary files /dev/null and b/tools/lexer/jflex-1.7.0-SNAPSHOT.jar differ