This is an automated email from the git hooks/post-receive script.

pini pushed a commit to tag upstream/1.1.0_beta1
in repository sikuli.

commit aa67455f06bb7fa7ddccee3bece827f33d80cf4a
Author: Raimund Hocke <[email protected]>
Date:   Sat Feb 1 17:37:06 2014 +0100

    made the Jygments stuff Maven compatible and that it can be used inside 
Netbeans when running stuff (NB json has a problem with comments so files are 
renamed to  jso)
---
 .../main/java/org/sikuli/syntaxhighlight/Run.java  |  31 ++-
 .../main/java/org/sikuli/syntaxhighlight/Util.java | 267 +++++++++++----------
 .../org/sikuli/syntaxhighlight/grammar/Lexer.java  |  30 ++-
 .../org/sikuli/syntaxhighlight/style/Style.java    |  28 ++-
 .../main/resources/jygments-legal/copyright.txt    |   8 +
 .../src/main/resources/jygments-legal/license.txt  |  25 ++
 6 files changed, 237 insertions(+), 152 deletions(-)

diff --git a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Run.java 
b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Run.java
index df64d42..c3e137c 100644
--- a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Run.java
+++ b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Run.java
@@ -3,16 +3,33 @@ package org.sikuli.syntaxhighlight;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Date;
 import org.sikuli.syntaxhighlight.format.Formatter;
 import org.sikuli.syntaxhighlight.grammar.Lexer;
+import org.sikuli.syntaxhighlight.grammar.Token;
 
 public class Run {
+  
+  private static void p(String text, Object... args) {
+    System.out.println(String.format(text, args));
+  } 
 
-       public static void main(String[] args) throws IOException, 
ResolutionException {
-               String file = System.getProperty("user.dir") + 
"/org/sikuli/syntaxhighlight/Run.java";
-               Lexer lexer = Lexer.getByName("java");
-               Formatter formatter = Formatter.getByName("html");
-               String code = Util.streamToString(new FileInputStream(file));
-               formatter.format(lexer.getTokens(code), new 
PrintWriter(System.out));
-       }
+  public static void main(String[] args) throws IOException, 
ResolutionException {
+    String file = System.getProperty("user.dir") + 
"/src/main/java/org/sikuli/syntaxhighlight/Util.java";
+    String aLexer = "java";
+    Lexer lexer = Lexer.getByName(aLexer);
+    if (lexer != null) {
+      Formatter formatter = Formatter.getByName("html");
+      String code = Util.streamToString(new FileInputStream(file));
+//      code = "      String code = Util.streamToString(new 
FileInputStream(file));";
+      long start = new Date().getTime();
+      Iterable<Token> tokens = lexer.getTokens(code);
+      long lexing = new Date().getTime() - start;
+      formatter.format(tokens, new 
PrintWriter("/Users/rhocke/Desktop/shtest.html"));
+      long formatting = new Date().getTime()- start - lexing;
+      p("%s: processed (%d, %d)", aLexer, lexing, formatting);
+    } else {
+      p("%s: no Lexer found", aLexer);
+    }
+  }
 }
diff --git a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Util.java 
b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Util.java
index c941bcf..8909cb7 100644
--- a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Util.java
+++ b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/Util.java
@@ -1,12 +1,10 @@
 /**
  * Copyright 2010-2013 Three Crickets LLC.
  * <p>
- * The contents of this file are subject to the terms of a BSD license. See
- * attached license.txt.
+ * The contents of this file are subject to the terms of a BSD license. See 
attached license.txt.
  * <p>
- * Alternatively, you can obtain a royalty free commercial license with less
- * limitations, transferable or non-transferable, directly from Three Crickets
- * at http://threecrickets.com/
+ * Alternatively, you can obtain a royalty free commercial license with less 
limitations,
+ * transferable or non-transferable, directly from Three Crickets at 
http://threecrickets.com/
  */
 package org.sikuli.syntaxhighlight;
 
@@ -19,135 +17,148 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import org.sikuli.syntaxhighlight.grammar.Lexer;
 
 /**
  * @author Tal Liron
  */
 public class Util {
 
-       public static String literalRegEx(String expression) {
-               return "\\Q" + expression + "\\E";
-       }
-
-       public static String replace(String string, String occurence, String 
replacement) {
-               return string.replaceAll(literalRegEx(occurence), replacement);
-       }
-
-       public static String streamToString(InputStream stream) throws 
IOException {
-               StringBuilder builder = new StringBuilder();
-               String line;
-
-               try {
-                       BufferedReader reader = new BufferedReader(new 
InputStreamReader(stream, "UTF-8"));
-                       while ((line = reader.readLine()) != null) {
-                               builder.append(line).append("\n");
-                       }
-               } finally {
-                       stream.close();
-               }
-
-               return builder.toString();
-       }
-
-       public static String rejsonToJson(InputStream stream) throws 
IOException {
-               String rejson = streamToString(stream);
-               String json = rejsonToJson(rejson, true);
-               json = rejsonToJson(json, false);
-               return json;
-       }
-
-       public static String rejsonToJson(String rejson, boolean doubleQuote) {
-               Matcher matcher = doubleQuote ? 
DOUBLE_QUOTED_STRING.matcher(rejson) : SINGLE_QUOTED_STRING.matcher(rejson);
-               StringBuilder json = new StringBuilder();
-               int start = 0, end = 0, lastEnd = 0;
-               while (matcher.find()) {
-                       lastEnd = end;
-                       start = matcher.start();
-                       end = matcher.end();
-                       if ((start > 0) && (rejson.charAt(start - 1) == 'r')) {
-                               // Convert Python-style r"" string to 
Java-compatible pattern
-                               String string = rejson.substring(start + 1, end 
- 1);
-                               json.append(rejson.substring(lastEnd, start - 
1));
-                               json.append('\"');
-                               json.append(pythonRegExToJavaPattern(string, 
doubleQuote));
-                               json.append('\"');
-                       } /*
-                        * else if( !doubleQuote ) { // From single quote to 
double quote
-                        * String string = rejson.substring( start + 1, end - 1 
);
-                        * json.append( rejson.substring( lastEnd, start - 1 ) 
);
-                        * json.append( '\"' ); json.append( string.replaceAll( 
"\"",
-                        * "\\\\\"" ) ); json.append( '\"' ); }
-                        */ else {
-                               // As is
-                               json.append(rejson.substring(lastEnd, end));
-                       }
-               }
-               json.append(rejson.substring(end));
-               // System.out.println( json );
-               return json.toString();
-       }
-
-       public static String pythonRegExToJavaPattern(String pattern, boolean 
doubleQuote) {
-               pattern = pattern.replaceAll("\\\\", "\\\\\\\\");
-               pattern = pattern.replaceAll("\\{", "\\\\\\\\{");
-               pattern = pattern.replaceAll("\\}", "\\\\\\\\}");
-               if (!doubleQuote) {
-                       pattern = pattern.replaceAll("\"", "\\\\\"");
-               }
-               // System.out.println( pattern );
-               return pattern;
-       }
-
-       public static String escapeHtml(String text) {
-               text = text.replace("&", "&amp;");
-               text = text.replace("<", "&lt;");
-               text = text.replace(">", "&gt;");
-               text = text.replace("\"", "&quot;");
-               text = text.replace("'", "&#39;");
-               return text;
-       }
-
-       public static String asHtml(String text) {
-               text = escapeHtml(text);
-               text = text.replace(" ", "&nbsp;");
-               return text;
-       }
-
-       private static final Pattern DOUBLE_QUOTED_STRING = 
Pattern.compile("\"(?>\\\\.|.)*?\"");
-
-       private static final Pattern SINGLE_QUOTED_STRING = 
Pattern.compile("'(?>\\\\.|.)*?'");
-
-       public static String extJSON = ".jso";
-
-       public static InputStream getJsonFile(String filename) {
-               URI jarFileURI = null;
-               File jarFile;
-               InputStream stream = null;
-               filename = filename.replace('.', '/') + extJSON;
-               try {
-                       jarFileURI = 
Jygments.class.getProtectionDomain().getCodeSource().getLocation().toURI();
-               } catch (URISyntaxException ex) {
-                       //TODO error message
-               }
-               if (jarFileURI != null) {
-                       if (jarFileURI.getScheme().equals("file")) {
-                               jarFile = new File(jarFileURI.getPath(), 
filename);
-                               if (jarFile.exists()) {
-                                       try {
-                                               stream = new 
FileInputStream(jarFile);
-                                       } catch (FileNotFoundException ex) {
-                                               //TODO error message
-                                       }
-                               }
-                       } else {
-                               stream = 
Jygments.class.getClassLoader().getResourceAsStream(filename);
-                       }
-               }
-               return stream;
-       }
+  public static String literalRegEx(String expression) {
+    return "\\Q" + expression + "\\E";
+  }
+
+  public static String replace(String string, String occurence, String 
replacement) {
+    return string.replaceAll(literalRegEx(occurence), replacement);
+  }
+
+  public static String streamToString(InputStream stream) throws IOException {
+    StringBuilder builder = new StringBuilder();
+    String line;
+
+    try {
+      BufferedReader reader = new BufferedReader(new InputStreamReader(stream, 
"UTF-8"));
+      while ((line = reader.readLine()) != null) {
+        builder.append(line).append("\n");
+      }
+    } finally {
+      stream.close();
+    }
+
+    return builder.toString();
+  }
+
+  public static String rejsonToJson(InputStream stream) throws IOException {
+    String rejson = streamToString(stream);
+    String json = rejsonToJson(rejson, true);
+    json = rejsonToJson(json, false);
+    return json;
+  }
+
+  public static String rejsonToJson(String rejson, boolean doubleQuote) {
+    Matcher matcher = doubleQuote ? DOUBLE_QUOTED_STRING.matcher(rejson) : 
SINGLE_QUOTED_STRING.matcher(rejson);
+    StringBuilder json = new StringBuilder();
+    int start = 0, end = 0, lastEnd = 0;
+    while (matcher.find()) {
+      lastEnd = end;
+      start = matcher.start();
+      end = matcher.end();
+      if ((start > 0) && (rejson.charAt(start - 1) == 'r')) {
+        // Convert Python-style r"" string to Java-compatible pattern
+        String string = rejson.substring(start + 1, end - 1);
+        json.append(rejson.substring(lastEnd, start - 1));
+        json.append('\"');
+        json.append(pythonRegExToJavaPattern(string, doubleQuote));
+        json.append('\"');
+      } /*
+       * else if( !doubleQuote ) { // From single quote to double quote
+       * String string = rejson.substring( start + 1, end - 1 );
+       * json.append( rejson.substring( lastEnd, start - 1 ) );
+       * json.append( '\"' ); json.append( string.replaceAll( "\"",
+       * "\\\\\"" ) ); json.append( '\"' ); }
+       */ else {
+        // As is
+        json.append(rejson.substring(lastEnd, end));
+      }
+    }
+    json.append(rejson.substring(end));
+    // System.out.println( json );
+    return json.toString();
+  }
+
+  public static String pythonRegExToJavaPattern(String pattern, boolean 
doubleQuote) {
+    pattern = pattern.replaceAll("\\\\", "\\\\\\\\");
+    pattern = pattern.replaceAll("\\{", "\\\\\\\\{");
+    pattern = pattern.replaceAll("\\}", "\\\\\\\\}");
+    if (!doubleQuote) {
+      pattern = pattern.replaceAll("\"", "\\\\\"");
+    }
+    // System.out.println( pattern );
+    return pattern;
+  }
+
+  public static String escapeHtml(String text) {
+    text = text.replace("&", "&amp;");
+    text = text.replace("<", "&lt;");
+    text = text.replace(">", "&gt;");
+    text = text.replace("\"", "&quot;");
+    text = text.replace("'", "&#39;");
+    return text;
+  }
+
+  public static String asHtml(String text) {
+    text = escapeHtml(text);
+    text = text.replace(" ", "&nbsp;");
+    return text;
+  }
+  private static final Pattern DOUBLE_QUOTED_STRING = 
Pattern.compile("\"(?>\\\\.|.)*?\"");
+  private static final Pattern SINGLE_QUOTED_STRING = 
Pattern.compile("'(?>\\\\.|.)*?'");
+  public static String extJSON = ".jso";
+
+  public static InputStream getJsonFile(String pack, String sub, String name, 
String fullname) {
+    URI jarFileURI = null;
+    File jarFile = null;
+    InputStream stream = null;
+    String jsonname = name.replace('.', '/') + extJSON;
+    fullname = fullname.replace('.', '/') + extJSON;
+    String filenamePack, filenameRoot;
+    try {
+      jarFileURI = 
Jygments.class.getProtectionDomain().getCodeSource().getLocation().toURI();
+    } catch (URISyntaxException ex) {
+      //TODO error message
+    }
+    if (jarFileURI != null) {
+      String jarFilePath = jarFileURI.getPath();
+      filenamePack = filenameRoot = jsonname;
+      if (jarFileURI.getScheme().equals("file")) {
+        if (!pack.isEmpty()) {
+          pack = pack.replace(".", "/");
+          if (!sub.isEmpty()) {
+            sub = sub.replace(".", "/");
+            pack = pack + "/" + sub;
+            filenameRoot = sub + "/" + jsonname;
+          }
+          filenamePack = pack + "/" + jsonname;
+        }
+        jarFile = new File(jarFilePath, filenamePack);
+        if (!jarFile.exists()) {
+          jarFile = new File(jarFilePath, filenameRoot);
+          if (!jarFile.exists()) {
+            jarFile = null;
+          }
+        }
+        if (jarFile != null) {
+          try {
+            stream = new FileInputStream(jarFile);
+          } catch (FileNotFoundException ex) {
+            //TODO error message
+          }
+        }
+      } else {
+        stream = Jygments.class.getClassLoader().getResourceAsStream(fullname);
+      }
+    }
+    return stream;
+  }
 }
diff --git 
a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/grammar/Lexer.java 
b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/grammar/Lexer.java
index 18ac312..abd5396 100644
--- 
a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/grammar/Lexer.java
+++ 
b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/grammar/Lexer.java
@@ -60,29 +60,41 @@ public class Lexer extends Grammar
                else
                {
                        // Try contrib package
-                       String pack = Jygments.class.getPackage().getName() + 
".contrib";
-                       lexer = getByFullName( pack + "." + name );
+                       String pack = Jygments.class.getPackage().getName();
+                       lexer = getByFullName( pack, "contrib", name );
                        if( lexer == null )
                        {
                                // Try this package
                                pack = Lexer.class.getPackage().getName();
-                               lexer = getByFullName( pack + "." + name );
+                               lexer = getByFullName( pack, "", name );
                        }
                        return lexer;
                }
        }
 
+       public static Lexer getByFullName( String name ) throws 
ResolutionException {
+    return getByFullName("", "", name);
+  }
+          
        @SuppressWarnings("unchecked")
-       public static Lexer getByFullName( String fullName ) throws 
ResolutionException
+       public static Lexer getByFullName( String pack, String sub, String name 
) throws ResolutionException
        {
-               // Try cache
-               Lexer lexer = lexers.get( fullName );
+    String fullname = name;
+    if (!pack.isEmpty()) {
+      if (!sub.isEmpty()) {
+        fullname = pack + "." + sub + "." + fullname;
+      } else {
+        fullname = pack + "." + fullname;
+      }
+    }
+    // Try cache
+               Lexer lexer = lexers.get( fullname );
                if( lexer != null )
                        return lexer;
 
                try
                {
-                       return (Lexer) 
Jygments.class.getClassLoader().loadClass( fullName ).newInstance();
+                       return (Lexer) 
Jygments.class.getClassLoader().loadClass( fullname ).newInstance();
                }
                catch( InstantiationException x )
                {
@@ -94,7 +106,7 @@ public class Lexer extends Grammar
                {
                }
 
-               InputStream stream = Util.getJsonFile(fullName);
+               InputStream stream = Util.getJsonFile(pack, sub, name, 
fullname);
                if( stream != null )
                {
                        try
@@ -114,7 +126,7 @@ public class Lexer extends Grammar
                                if( lexer != null )
                                {
                                        // Cache it
-                                       Lexer existing = lexers.putIfAbsent( 
fullName, lexer );
+                                       Lexer existing = lexers.putIfAbsent( 
fullname, lexer );
                                        if( existing != null )
                                                lexer = existing;
                                }
diff --git 
a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/style/Style.java 
b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/style/Style.java
index 3ad8ce8..6c99bf3 100644
--- a/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/style/Style.java
+++ b/Jygments4Sikuli/src/main/java/org/sikuli/syntaxhighlight/style/Style.java
@@ -27,6 +27,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import org.sikuli.syntaxhighlight.Jygments;
 import org.sikuli.syntaxhighlight.NestedDef;
 import org.sikuli.syntaxhighlight.ResolutionException;
+import org.sikuli.syntaxhighlight.Util;
 import org.sikuli.syntaxhighlight.grammar.TokenType;
 import org.sikuli.syntaxhighlight.style.def.StyleElementDef;
 
@@ -51,23 +52,34 @@ public class Style extends NestedDef<Style>
                else
                {
                        // Try contrib package
-                       String pack = Jygments.class.getPackage().getName() + 
".contrib";
-                       name = pack + "." + name;
-                       return getByFullName( name );
+                       String pack = Jygments.class.getPackage().getName();
+                       return getByFullName( pack, "contrib", name );
                }
        }
 
+       public static Style getByFullName( String name ) throws 
ResolutionException {
+    return getByFullName("", "", name);
+  }
+          
        @SuppressWarnings("unchecked")
-       public static Style getByFullName( String fullName ) throws 
ResolutionException
+       public static Style getByFullName( String pack, String sub, String name 
) throws ResolutionException
        {
+    String fullname = name;
+    if (!pack.isEmpty()) {
+      if (!sub.isEmpty()) {
+        fullname = pack + "." + sub + "." + fullname;
+      } else {
+        fullname = pack + "." + fullname;
+      }
+    }
                // Try cache
-               Style style = styles.get( fullName );
+               Style style = styles.get( fullname );
                if( style != null )
                        return style;
 
                try
                {
-                       return (Style) 
Jygments.class.getClassLoader().loadClass( fullName ).newInstance();
+                       return (Style) 
Jygments.class.getClassLoader().loadClass( fullname ).newInstance();
                }
                catch( InstantiationException x )
                {
@@ -79,7 +91,7 @@ public class Style extends NestedDef<Style>
                {
                }
 
-               InputStream stream = 
Jygments.class.getClassLoader().getResourceAsStream( fullName.replace( '.', '/' 
) + extJSON );
+               InputStream stream = Util.getJsonFile(pack, sub, name, 
fullname);
                if( stream != null )
                {
                        ObjectMapper objectMapper = new ObjectMapper();
@@ -92,7 +104,7 @@ public class Style extends NestedDef<Style>
                                style.resolve();
 
                                // Cache it
-                               Style existing = styles.putIfAbsent( fullName, 
style );
+                               Style existing = styles.putIfAbsent( fullname, 
style );
                                if( existing != null )
                                        style = existing;
 
diff --git a/Jygments4Sikuli/src/main/resources/jygments-legal/copyright.txt 
b/Jygments4Sikuli/src/main/resources/jygments-legal/copyright.txt
new file mode 100644
index 0000000..a46caea
--- /dev/null
+++ b/Jygments4Sikuli/src/main/resources/jygments-legal/copyright.txt
@@ -0,0 +1,8 @@
+
+Jygments is Copyright 2010-2013 Three Crickets LLC:
+
+http://threecrickets.com/
+  
+All third-party libraries redistributed with this software remain the property 
+of their respective copyright owners and are subject to separate license 
+agreements.
diff --git a/Jygments4Sikuli/src/main/resources/jygments-legal/license.txt 
b/Jygments4Sikuli/src/main/resources/jygments-legal/license.txt
new file mode 100644
index 0000000..ec67b93
--- /dev/null
+++ b/Jygments4Sikuli/src/main/resources/jygments-legal/license.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2010 by the respective authors (see copyright.txt file).
+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.
+
+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.

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-java/sikuli.git

_______________________________________________
pkg-java-commits mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

Reply via email to