Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Remove regex library oro.jar #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
1 commit merged into from
Oct 2, 2010
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
excludes="**/tools/format/**"
encoding="UTF-8"
includeAntRuntime="false"
classpath="../core/core.jar; ${env.JAVA_HOME}/lib/tools.jar; lib/ant.jar; lib/ant-launcher.jar; lib/apple.jar; lib/ecj.jar; lib/jna.jar; lib/oro.jar; lib/RXTXcomm.jar" />
classpath="../core/core.jar; ${env.JAVA_HOME}/lib/tools.jar; lib/ant.jar; lib/ant-launcher.jar; lib/apple.jar; lib/ecj.jar; lib/jna.jar; lib/RXTXcomm.jar" />
</target>

<target name="build" depends="compile" description="Build PDE">
Expand Down
Binary file removed app/lib/oro.jar
Binary file not shown.
125 changes: 54 additions & 71 deletions app/src/processing/app/preproc/PdePreprocessor.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Processing version Copyright (c) 2004-05 Ben Fry and Casey Reas
import java.io.*;
import java.util.*;

import com.oroinc.text.regex.*;
import java.util.regex.*;


/**
Expand All @@ -49,16 +49,17 @@ public class PdePreprocessor {
// we always write one header: WProgram.h
public int headerCount = 1;

List prototypes;
// the prototypes that are generated by the preprocessor
List<String> prototypes;

// these ones have the .* at the end, since a class name might be at the end
// instead of .* which would make trouble other classes using this can lop
// off the . and anything after it to produce a package name consistently.
ArrayList<String> programImports;
List<String> programImports;

// imports just from the code folder, treated differently
// than the others, since the imports are auto-generated.
ArrayList<String> codeFolderImports;
List<String> codeFolderImports;

String indent;

Expand All @@ -79,6 +80,14 @@ public PdePreprocessor() {
indent = new String(indentChars);
}

/**
* Writes out the head of the c++ code generated for a sketch.
* Called from processing.app.Sketch.
* @param program the concatenated code from all tabs containing pde-files
* @param buildPath the path into which the processed pde-code is to be written
* @param name the name of the sketch
* @param codeFolderPackages unused param (leftover from processing)
*/
public int writePrefix(String program, String buildPath,
String sketchName, String codeFolderPackages[]) throws FileNotFoundException {
this.buildPath = buildPath;
Expand All @@ -93,7 +102,7 @@ public int writePrefix(String program, String buildPath,
// an OutOfMemoryError or NullPointerException will happen.
// again, not gonna bother tracking this down, but here's a hack.
// http://dev.processing.org/bugs/show_bug.cgi?id=16
String scrubbed = Sketch.scrubComments(program);
Sketch.scrubComments(program);
// If there are errors, an exception is thrown and this fxn exits.

if (Preferences.getBoolean("preproc.substitute_unicode")) {
Expand All @@ -117,14 +126,7 @@ public int writePrefix(String program, String buildPath,
// }
// }

prototypes = new ArrayList();

try {
prototypes = prototypes(program);
} catch (MalformedPatternException e) {
System.out.println("Internal error while pre-processing; " +
"not generating function prototypes.\n\n" + e);
}
prototypes = prototypes(program);

// store # of prototypes so that line number reporting can be adjusted
prototypeCount = prototypes.size();
Expand Down Expand Up @@ -193,7 +195,7 @@ public String write() throws java.lang.Exception {
}

// Write the pde program to the cpp file
protected void writeProgram(PrintStream out, String program, List prototypes) {
protected void writeProgram(PrintStream out, String program, List<String> prototypes) {
int prototypeInsertionPoint = firstStatement(program);

out.print(program.substring(0, prototypeInsertionPoint));
Expand All @@ -216,7 +218,7 @@ protected void writeProgram(PrintStream out, String program, List prototypes) {
protected void writeFooter(PrintStream out) throws java.lang.Exception {}


public ArrayList<String> getExtraImports() {
public List<String> getExtraImports() {
return programImports;
}

Expand All @@ -229,31 +231,23 @@ public ArrayList<String> getExtraImports() {
* or a pre-processor directive.
*/
public int firstStatement(String in) {
PatternMatcherInput input = new PatternMatcherInput(in);
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
Pattern pattern = null;
// whitespace
String p = "\\s+";

try {
pattern = compiler.compile(
// XXX: doesn't properly handle special single-quoted characters
// whitespace
"\\s+" + "|" +
// multi-line comment
"(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)" + "|" +
// single-line comment
"(//.*?$)" + "|" +
// pre-processor directive
"(#(?:\\\\\\n|.)*)",
Perl5Compiler.MULTILINE_MASK);
} catch (MalformedPatternException e) {
throw new RuntimeException("Internal error in firstStatement()", e);
}
// multi-line and single-line comment
//p += "|" + "(//\\s*?$)|(/\\*\\s*?\\*/)";
p += "|(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)|(//.*?$)";

// pre-processor directive
p += "|(#(?:\\\\\\n|.)*)";
Pattern pattern = Pattern.compile(p, Pattern.MULTILINE);

Matcher matcher = pattern.matcher(in);
int i = 0;
while (matcher.matchesPrefix(input, pattern)) {
i = matcher.getMatch().endOffset(0);
input.setCurrentOffset(i);
while (matcher.find()) {
if (matcher.start()!=i)
break;
i = matcher.end();
}

return i;
Expand All @@ -265,31 +259,24 @@ public int firstStatement(String in) {
* @param in the String to strip
* @return the stripped String
*/
public String strip(String in) throws MalformedPatternException {
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
Pattern pattern = compiler.compile(
// XXX: doesn't properly handle special single-quoted characters
// single-quoted character
"('.')" + "|" +
// double-quoted string
"(\"(?:[^\"\\\\]|\\\\.)*\")" + "|" +
// multi-line comment
"(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)" + "|" +
// single-line comment
"(//.*?$)" + "|" +
// pre-processor directive
"(^\\s*#.*?$)",
Perl5Compiler.MULTILINE_MASK);

while (matcher.contains(in, pattern)) {
MatchResult result = matcher.getMatch();
// XXX: should preserve newlines in the result so that line numbers of
// the stripped string correspond to those in the original source.
in = in.substring(0, result.beginOffset(0)) + " " + in.substring(result.endOffset(0));
}
public String strip(String in) {
// XXX: doesn't properly handle special single-quoted characters
// single-quoted character
String p = "('.')";

// double-quoted string
p += "|(\"(?:[^\"\\\\]|\\\\.)*\")";

return in;
// single and multi-line comment
//p += "|" + "(//\\s*?$)|(/\\*\\s*?\\*/)";
p += "|(//.*?$)|(/\\*[^*]*(?:\\*(?!/)[^*]*)*\\*/)";

// pre-processor directive
p += "|" + "(^\\s*#.*?$)";

Pattern pattern = Pattern.compile(p, Pattern.MULTILINE);
Matcher matcher = pattern.matcher(in);
return matcher.replaceAll(" ");
}

/**
Expand Down Expand Up @@ -324,21 +311,17 @@ private String collapseBraces(String in) {
return buffer.toString();
}

public List prototypes(String in) throws MalformedPatternException {
public ArrayList<String> prototypes(String in) {
in = collapseBraces(strip(in));

PatternMatcherInput input = new PatternMatcherInput(in);
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
// XXX: doesn't handle ... varargs
// XXX: doesn't handle function pointers
Pattern pattern = compiler.compile(
"[\\w\\[\\]\\*]+\\s+[\\[\\]\\*\\w\\s]+\\([,\\[\\]\\*\\w\\s]*\\)(?=\\s*\\{)");
List matches = new ArrayList();
Pattern pattern = Pattern.compile("[\\w\\[\\]\\*]+\\s+[&\\[\\]\\*\\w\\s]+\\([&,\\[\\]\\*\\w\\s]*\\)(?=\\s*\\{)");

while (matcher.contains(input, pattern)) {
matches.add(matcher.getMatch().group(0) + ";");
}
ArrayList<String> matches = new ArrayList<String>();
Matcher matcher = pattern.matcher(in);
while (matcher.find())
matches.add(matcher.group(0) + ";");

return matches;
}
Expand Down
1 change: 0 additions & 1 deletion build/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
<include name="app/pde.jar" />
<include name="app/lib/ecj.jar" />
<include name="app/lib/jna.jar" />
<include name="app/lib/oro.jar" />
<include name="app/lib/RXTXcomm.jar" />
<include name="app/lib/ant.jar" />
<include name="app/lib/ant-launcher.jar" />
Expand Down
2 changes: 1 addition & 1 deletion build/macosx/template.app/Contents/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
<!-- In 0149, removed /System/Library/Java from the CLASSPATH because
it can cause problems if users have installed weird files there.
http://dev.processing.org/bugs/show_bug.cgi?id=1045 -->
<string>$JAVAROOT/pde.jar:$JAVAROOT/core.jar:$JAVAROOT/antlr.jar:$JAVAROOT/ecj.jar:$JAVAROOT/registry.jar:$JAVAROOT/quaqua.jar:$JAVAROOT/oro.jar:$JAVAROOT/RXTXcomm.jar</string>
<string>$JAVAROOT/pde.jar:$JAVAROOT/core.jar:$JAVAROOT/antlr.jar:$JAVAROOT/ecj.jar:$JAVAROOT/registry.jar:$JAVAROOT/quaqua.jar:$JAVAROOT/RXTXcomm.jar</string>

<key>JVMArchs</key>
<array>
Expand Down
1 change: 0 additions & 1 deletion build/windows/launcher/config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
<cp>lib/core.jar</cp>
<cp>lib/jna.jar</cp>
<cp>lib/ecj.jar</cp>
<cp>lib/oro.jar</cp>
<cp>lib/RXTXcomm.jar</cp>
</classPath>
<jre>
Expand Down
1 change: 0 additions & 1 deletion todo.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ Sketch.java
PreProcessor.java
- split write() into writeHeader() and write() as in Processing?
- add getExtraImports() function instead of having Sketch grab them directly.
- don't use oro.jar

Base.java
- add keywords from libraries to the syntax coloring
Expand Down