diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..55fca8a
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,42 @@
+task wrapper(type: Wrapper) {
+ gradleVersion = '1.12'
+}
+
+apply plugin: 'java'
+apply plugin: 'maven-publish'
+
+group = 'org.klomp'
+version = '1.0.0-SNAPSHOT'
+
+publishing {
+ publications {
+ mavenJava(MavenPublication) {
+ artifactId 'cassowary'
+ from components.java
+ }
+ }
+ repositories {
+ maven {
+ credentials {
+ username project.hasProperty('mavenUsername') ? mavenUsername : null
+ password project.hasProperty('mavenPassword') ? mavenPassword : null
+ }
+ url project.hasProperty('mavenUrl') ? mavenUrl : null
+ }
+ }
+}
+
+repositories {
+ mavenLocal()
+ mavenCentral()
+}
+
+tasks.withType(Compile) {
+ options.encoding = "UTF-8"
+ options.compilerArgs << "-Xlint:unchecked"
+}
+
+dependencies {
+ compile "junit:junit:4.7"
+}
+
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..0087cd3
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..16fcb61
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Oct 20 10:31:47 CEST 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-bin.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..91a7e26
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..aec9973
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/src/main/java/org/klomp/cassowary/parser/Yylex.java b/src/main/java/org/klomp/cassowary/parser/Yylex.java
deleted file mode 100644
index fa52117..0000000
--- a/src/main/java/org/klomp/cassowary/parser/Yylex.java
+++ /dev/null
@@ -1,408 +0,0 @@
-// $Id: Yylex.java,v 1.5 2000/05/04 18:00:29 gjb Exp $
-package org.klomp.cassowary.parser;
-
-import java_cup.runtime.Symbol;
-
-import org.klomp.cassowary.ClVariable;
-
-public class Yylex implements java_cup.runtime.Scanner {
- private final int YY_BUFFER_SIZE = 512;
- private final int YY_F = -1;
- private final int YY_NO_STATE = -1;
- private final int YY_NOT_ACCEPT = 0;
- private final int YY_START = 1;
- private final int YY_END = 2;
- private final int YY_NO_ANCHOR = 4;
- private final int YY_BOL = 128;
- private final int YY_EOF = 129;
-
- // added code to lexer class
- private java.util.Hashtable m_variable_name_object_hash;
- public boolean m_debug_lex = false;
-
- public void setVariableNameObjectHash(java.util.Hashtable variable_name_object_hash) {
- m_variable_name_object_hash = variable_name_object_hash;
- }
-
- private java.io.BufferedReader yy_reader;
- private int yy_buffer_index;
- private int yy_buffer_read;
- private int yy_buffer_start;
- private int yy_buffer_end;
- private char yy_buffer[];
- private boolean yy_at_bol;
- private int yy_lexical_state;
-
- public Yylex(java.io.Reader reader) {
- this();
- if (null == reader) {
- throw (new Error("Error: Bad input stream initializer."));
- }
- yy_reader = new java.io.BufferedReader(reader);
- }
-
- public Yylex(java.io.InputStream instream) {
- this();
- if (null == instream) {
- throw (new Error("Error: Bad input stream initializer."));
- }
- yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream));
- }
-
- private Yylex() {
- yy_buffer = new char[YY_BUFFER_SIZE];
- yy_buffer_read = 0;
- yy_buffer_index = 0;
- yy_buffer_start = 0;
- yy_buffer_end = 0;
- yy_at_bol = true;
- yy_lexical_state = YYINITIAL;
-
- // code to go into constructor
- }
-
- private boolean yy_eof_done = false;
- private final int YYINITIAL = 0;
- private final int yy_state_dtrans[] = { 0 };
-
- private void yybegin(int state) {
- yy_lexical_state = state;
- }
-
- private int yy_advance() throws java.io.IOException {
- int next_read;
- int i;
- int j;
-
- if (yy_buffer_index < yy_buffer_read) {
- return yy_buffer[yy_buffer_index++];
- }
-
- if (0 != yy_buffer_start) {
- i = yy_buffer_start;
- j = 0;
- while (i < yy_buffer_read) {
- yy_buffer[j] = yy_buffer[i];
- ++i;
- ++j;
- }
- yy_buffer_end = yy_buffer_end - yy_buffer_start;
- yy_buffer_start = 0;
- yy_buffer_read = j;
- yy_buffer_index = j;
- next_read = yy_reader.read(yy_buffer, yy_buffer_read, yy_buffer.length - yy_buffer_read);
- if (-1 == next_read) {
- return YY_EOF;
- }
- yy_buffer_read = yy_buffer_read + next_read;
- }
-
- while (yy_buffer_index >= yy_buffer_read) {
- if (yy_buffer_index >= yy_buffer.length) {
- yy_buffer = yy_double(yy_buffer);
- }
- next_read = yy_reader.read(yy_buffer, yy_buffer_read, yy_buffer.length - yy_buffer_read);
- if (-1 == next_read) {
- return YY_EOF;
- }
- yy_buffer_read = yy_buffer_read + next_read;
- }
- return yy_buffer[yy_buffer_index++];
- }
-
- private void yy_move_end() {
- if (yy_buffer_end > yy_buffer_start && '\n' == yy_buffer[yy_buffer_end - 1])
- yy_buffer_end--;
- if (yy_buffer_end > yy_buffer_start && '\r' == yy_buffer[yy_buffer_end - 1])
- yy_buffer_end--;
- }
-
- private boolean yy_last_was_cr = false;
-
- private void yy_mark_start() {
- yy_buffer_start = yy_buffer_index;
- }
-
- private void yy_mark_end() {
- yy_buffer_end = yy_buffer_index;
- }
-
- private void yy_to_mark() {
- yy_buffer_index = yy_buffer_end;
- yy_at_bol = (yy_buffer_end > yy_buffer_start)
- && ('\r' == yy_buffer[yy_buffer_end - 1] || '\n' == yy_buffer[yy_buffer_end - 1]
- || 2028/* LS */== yy_buffer[yy_buffer_end - 1] || 2029/* PS */== yy_buffer[yy_buffer_end - 1]);
- }
-
- private java.lang.String yytext() {
- return (new java.lang.String(yy_buffer, yy_buffer_start, yy_buffer_end - yy_buffer_start));
- }
-
- private int yylength() {
- return yy_buffer_end - yy_buffer_start;
- }
-
- private char[] yy_double(char buf[]) {
- int i;
- char newbuf[];
- newbuf = new char[2 * buf.length];
- for (i = 0; i < buf.length; ++i) {
- newbuf[i] = buf[i];
- }
- return newbuf;
- }
-
- private final int YY_E_INTERNAL = 0;
- private final int YY_E_MATCH = 1;
- private java.lang.String yy_error_string[] = { "Error: Internal error.\n", "Error: Unmatched input.\n" };
-
- private void yy_error(int code, boolean fatal) {
- java.lang.System.out.print(yy_error_string[code]);
- java.lang.System.out.flush();
- if (fatal) {
- throw new Error("Fatal Error.\n");
- }
- }
-
- private int[][] unpackFromString(int size1, int size2, String st) {
- int colonIndex = -1;
- String lengthString;
- int sequenceLength = 0;
- int sequenceInteger = 0;
-
- int commaIndex;
- String workString;
-
- int res[][] = new int[size1][size2];
- for (int i = 0; i < size1; i++) {
- for (int j = 0; j < size2; j++) {
- if (sequenceLength != 0) {
- res[i][j] = sequenceInteger;
- sequenceLength--;
- continue;
- }
- commaIndex = st.indexOf(',');
- workString = (commaIndex == -1) ? st : st.substring(0, commaIndex);
- st = st.substring(commaIndex + 1);
- colonIndex = workString.indexOf(':');
- if (colonIndex == -1) {
- res[i][j] = Integer.parseInt(workString);
- continue;
- }
- lengthString = workString.substring(colonIndex + 1);
- sequenceLength = Integer.parseInt(lengthString);
- workString = workString.substring(0, colonIndex);
- sequenceInteger = Integer.parseInt(workString);
- res[i][j] = sequenceInteger;
- sequenceLength--;
- }
- }
- return res;
- }
-
- private int yy_acpt[] = {
- /* 0 */YY_NOT_ACCEPT,
- /* 1 */YY_NO_ANCHOR,
- /* 2 */YY_NO_ANCHOR,
- /* 3 */YY_NO_ANCHOR,
- /* 4 */YY_NO_ANCHOR,
- /* 5 */YY_NO_ANCHOR,
- /* 6 */YY_NO_ANCHOR,
- /* 7 */YY_NO_ANCHOR,
- /* 8 */YY_NO_ANCHOR,
- /* 9 */YY_NO_ANCHOR,
- /* 10 */YY_NO_ANCHOR,
- /* 11 */YY_NO_ANCHOR,
- /* 12 */YY_NO_ANCHOR,
- /* 13 */YY_NO_ANCHOR,
- /* 14 */YY_NO_ANCHOR,
- /* 15 */YY_NO_ANCHOR,
- /* 16 */YY_NO_ANCHOR,
- /* 17 */YY_NO_ANCHOR,
- /* 18 */YY_NO_ANCHOR };
- private int yy_cmap[] = unpackFromString(1, 130,
- "15:9,1:2,15,1:2,15:18,1,15:7,9,10,7,5,15,6,12,8,11:10,15:2,4,3,2,15:2,13:26" + ",15:4,14,15,13:26,15:5,0:2")[0];
-
- private int yy_rmap[] = unpackFromString(1, 19, "0,1,2,3,1:7,4,5,1:2,6,7:2,1")[0];
-
- private int yy_nxt[][] = unpackFromString(8, 16,
- "1,2,3,4,15,5,6,7,8,9,10,11,17,12,18:2,-1:17,2,-1:17,13,-1:23,11,16,-1:14,12" + ",-1,12:2,-1:4,14,-1:23,16,-1:4");
-
- @Override
- public java_cup.runtime.Symbol next_token() throws java.io.IOException {
- int yy_lookahead;
- int yy_anchor = YY_NO_ANCHOR;
- int yy_state = yy_state_dtrans[yy_lexical_state];
- int yy_next_state = YY_NO_STATE;
- int yy_last_accept_state = YY_NO_STATE;
- boolean yy_initial = true;
- int yy_this_accept;
-
- yy_mark_start();
- yy_this_accept = yy_acpt[yy_state];
- if (YY_NOT_ACCEPT != yy_this_accept) {
- yy_last_accept_state = yy_state;
- yy_mark_end();
- }
- while (true) {
- if (yy_initial && yy_at_bol)
- yy_lookahead = YY_BOL;
- else
- yy_lookahead = yy_advance();
- yy_next_state = YY_F;
- yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
- if (YY_EOF == yy_lookahead && true == yy_initial) {
- return null;
- }
- if (YY_F != yy_next_state) {
- yy_state = yy_next_state;
- yy_initial = false;
- yy_this_accept = yy_acpt[yy_state];
- if (YY_NOT_ACCEPT != yy_this_accept) {
- yy_last_accept_state = yy_state;
- yy_mark_end();
- }
- } else {
- if (YY_NO_STATE == yy_last_accept_state) {
- throw (new Error("Lexical Error: Unmatched Input."));
- } else {
- yy_anchor = yy_acpt[yy_last_accept_state];
- if (0 != (YY_END & yy_anchor)) {
- yy_move_end();
- }
- yy_to_mark();
- switch (yy_last_accept_state) {
- case 1:
-
- case -2:
- break;
- case 2: { /* skip white space */
- }
- case -3:
- break;
- case 3: {
- System.err.println("Illegal character: " + yytext());
- }
- case -4:
- break;
- case 4: {
- return new Symbol(sym.EQ);
- }
- case -5:
- break;
- case 5: {
- return new Symbol(sym.PLUS);
- }
- case -6:
- break;
- case 6: {
- return new Symbol(sym.MINUS);
- }
- case -7:
- break;
- case 7: {
- return new Symbol(sym.TIMES);
- }
- case -8:
- break;
- case 8: {
- return new Symbol(sym.DIVIDE);
- }
- case -9:
- break;
- case 9: {
- return new Symbol(sym.LPAREN);
- }
- case -10:
- break;
- case 10: {
- return new Symbol(sym.RPAREN);
- }
- case -11:
- break;
- case 11: {
- return new Symbol(sym.NUMBER, new Double(yytext()));
- }
- case -12:
- break;
- case 12: {
- String variable_name = new String(yytext());
- if (m_debug_lex) {
- System.out.println("Lexical analysis found <" + variable_name + ">");
- }
- if (!m_variable_name_object_hash.containsKey(variable_name)) {
- if (m_debug_lex) {
- System.out.println(" Putting it in hash for the first time.");
- }
- ClVariable variable = new ClVariable();
- Object return_value = m_variable_name_object_hash.put(variable_name, variable);
- if (return_value != null) {
- System.err.println("Variable was already in hash!!!!!");
- }
- if (m_debug_lex) {
- if (m_variable_name_object_hash.containsKey(variable_name)) {
- System.out.println(" Hash table now contains object.");
- } else {
- System.out.println(" Hash table does not contain object.");
- }
- }
- if (m_variable_name_object_hash.isEmpty()) {
- System.err.println(" How can the hashtable be empty after inserting something?");
- }
- } else {
- if (m_debug_lex)
- System.err.println(" Already in Hash.");
- }
- return new Symbol(sym.VARIABLE, variable_name);
- }
- case -13:
- break;
- case 13: {
- return new Symbol(sym.GEQ);
- }
- case -14:
- break;
- case 14: {
- return new Symbol(sym.LEQ);
- }
- case -15:
- break;
- case 15: {
- System.err.println("Illegal character: " + yytext());
- }
- case -16:
- break;
- case 16: {
- return new Symbol(sym.NUMBER, new Double(yytext()));
- }
- case -17:
- break;
- case 17: {
- System.err.println("Illegal character: " + yytext());
- }
- case -18:
- break;
- case 18: {
- System.err.println("Illegal character: " + yytext());
- }
- case -19:
- break;
- default:
- yy_error(YY_E_INTERNAL, false);
- case -1:
- }
- yy_initial = true;
- yy_state = yy_state_dtrans[yy_lexical_state];
- yy_next_state = YY_NO_STATE;
- yy_last_accept_state = YY_NO_STATE;
- yy_mark_start();
- yy_this_accept = yy_acpt[yy_state];
- if (YY_NOT_ACCEPT != yy_this_accept) {
- yy_last_accept_state = yy_state;
- yy_mark_end();
- }
- }
- }
- }
- }
-}
diff --git a/src/main/java/org/klomp/cassowary/parser/parser.java b/src/main/java/org/klomp/cassowary/parser/parser.java
deleted file mode 100644
index 1038b0c..0000000
--- a/src/main/java/org/klomp/cassowary/parser/parser.java
+++ /dev/null
@@ -1,417 +0,0 @@
-//----------------------------------------------------
-// The following code was generated by CUP v0.10k
-// Fri May 05 17:17:37 PDT 2000
-//----------------------------------------------------
-
-package org.klomp.cassowary.parser;
-
-import org.klomp.cassowary.CL;
-import org.klomp.cassowary.ClLinearExpression;
-import org.klomp.cassowary.ClVariable;
-import org.klomp.cassowary.clconstraint.ClLinearEquation;
-import org.klomp.cassowary.clconstraint.ClLinearInequality;
-
-/**
- * CUP v0.10k generated parser.
- *
- * @version Fri May 05 17:17:37 PDT 2000
- */
-public class parser extends java_cup.runtime.lr_parser {
-
- /** Default constructor. */
- public parser() {
- super();
- }
-
- /** Constructor which sets the default scanner. */
- public parser(java_cup.runtime.Scanner s) {
- super(s);
- }
-
- /** Production table. */
- protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\016\000\002\003\003\000\002\002\004\000\002\003"
- + "\003\000\002\004\005\000\002\005\005\000\002\005\005"
- + "\000\002\006\003\000\002\006\003\000\002\006\005\000"
- + "\002\006\005\000\002\006\005\000\002\006\005\000\002" + "\006\004\000\002\006\005" });
-
- /** Access to production table. */
- @Override
- public short[][] production_table() {
- return _production_table;
- }
-
- /** Parse-action table. */
- protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\033\000\012\010\007\014\011\016\005\017\013\001"
- + "\002\000\004\002\001\001\002\000\024\002\ufffb\004\ufffb"
- + "\005\ufffb\006\ufffb\007\ufffb\010\ufffb\012\ufffb\013\ufffb\015"
- + "\ufffb\001\002\000\004\002\uffff\001\002\000\012\010\007"
- + "\014\011\016\005\017\013\001\002\000\004\002\034\001"
- + "\002\000\012\010\007\014\011\016\005\017\013\001\002"
- + "\000\020\004\015\005\017\006\014\007\016\010\020\012"
- + "\022\013\021\001\002\000\024\002\ufffa\004\ufffa\005\ufffa"
- + "\006\ufffa\007\ufffa\010\ufffa\012\ufffa\013\ufffa\015\ufffa\001"
- + "\002\000\012\010\007\014\011\016\005\017\013\001\002"
- + "\000\012\010\007\014\011\016\005\017\013\001\002\000"
- + "\012\010\007\014\011\016\005\017\013\001\002\000\012"
- + "\010\007\014\011\016\005\017\013\001\002\000\012\010"
- + "\007\014\011\016\005\017\013\001\002\000\012\010\007"
- + "\014\011\016\005\017\013\001\002\000\012\010\007\014"
- + "\011\016\005\017\013\001\002\000\024\002\ufff7\004\ufff7"
- + "\005\ufff7\006\ufff7\007\ufff7\010\ufff7\012\ufff7\013\ufff7\015"
- + "\ufff7\001\002\000\024\002\ufff6\004\ufff6\005\ufff6\006\ufff6"
- + "\007\ufff6\010\ufff6\012\ufff6\013\ufff6\015\ufff6\001\002\000"
- + "\024\002\ufff8\004\ufff8\005\ufff8\006\ufff8\007\ufff8\010\ufff8"
- + "\012\022\013\021\015\ufff8\001\002\000\014\002\ufffc\007"
- + "\016\010\020\012\022\013\021\001\002\000\024\002\ufff9"
- + "\004\ufff9\005\ufff9\006\ufff9\007\ufff9\010\ufff9\012\022\013"
- + "\021\015\ufff9\001\002\000\014\002\ufffd\007\016\010\020"
- + "\012\022\013\021\001\002\000\014\002\ufffe\007\016\010"
- + "\020\012\022\013\021\001\002\000\014\007\016\010\020"
- + "\012\022\013\021\015\033\001\002\000\024\002\ufff4\004"
- + "\ufff4\005\ufff4\006\ufff4\007\ufff4\010\ufff4\012\ufff4\013\ufff4"
- + "\015\ufff4\001\002\000\004\002\000\001\002\000\024\002"
- + "\ufff5\004\ufff5\005\ufff5\006\ufff5\007\ufff5\010\ufff5\012\ufff5" + "\013\ufff5\015\ufff5\001\002" });
-
- /** Access to parse-action table. */
- @Override
- public short[][] action_table() {
- return _action_table;
- }
-
- /** reduce_goto table. */
- protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\033\000\012\003\007\004\003\005\005\006\011\001"
- + "\001\000\002\001\001\000\002\001\001\000\002\001\001"
- + "\000\004\006\034\001\001\000\002\001\001\000\004\006"
- + "\031\001\001\000\002\001\001\000\002\001\001\000\004"
- + "\006\030\001\001\000\004\006\027\001\001\000\004\006"
- + "\026\001\001\000\004\006\025\001\001\000\004\006\024"
- + "\001\001\000\004\006\023\001\001\000\004\006\022\001"
- + "\001\000\002\001\001\000\002\001\001\000\002\001\001"
- + "\000\002\001\001\000\002\001\001\000\002\001\001\000"
- + "\002\001\001\000\002\001\001\000\002\001\001\000\002" + "\001\001\000\002\001\001" });
-
- /** Access to reduce_goto table. */
- @Override
- public short[][] reduce_table() {
- return _reduce_table;
- }
-
- /** Instance of action encapsulation class. */
- protected CUP$parser$actions action_obj;
-
- /** Action encapsulation object initializer. */
- @Override
- protected void init_actions() {
- action_obj = new CUP$parser$actions(this);
- }
-
- /** Invoke a user supplied parse action. */
- @Override
- public java_cup.runtime.Symbol do_action(int act_num, java_cup.runtime.lr_parser parser, java.util.Stack stack, int top)
- throws java.lang.Exception {
- /* call code in generated class */
- return action_obj.CUP$parser$do_action(act_num, parser, stack, top);
- }
-
- /** Indicates start state. */
- @Override
- public int start_state() {
- return 0;
- }
-
- /** Indicates start production. */
- @Override
- public int start_production() {
- return 1;
- }
-
- /** EOF Symbol index. */
- @Override
- public int EOF_sym() {
- return 0;
- }
-
- /** error Symbol index. */
- @Override
- public int error_sym() {
- return 1;
- }
-
- public java.util.Hashtable m_variable_name_object_hash;
- public boolean m_debug_parse = false;
-
- public void setVariableNameObjectHash(java.util.Hashtable variable_name_object_hash) {
- m_variable_name_object_hash = variable_name_object_hash;
- }
-
-}
-
-/** Cup generated class to encapsulate user supplied action code. */
-class CUP$parser$actions {
- private final parser parser;
-
- /** Constructor */
- CUP$parser$actions(parser parser) {
- this.parser = parser;
- }
-
- /** Method with the actual generated action code. */
- public final java_cup.runtime.Symbol CUP$parser$do_action(int CUP$parser$act_num,
- java_cup.runtime.lr_parser CUP$parser$parser, java.util.Stack CUP$parser$stack, int CUP$parser$top)
- throws java.lang.Exception {
- /* Symbol object for return from actions */
- java_cup.runtime.Symbol CUP$parser$result;
-
- /* select the action based on the action number */
- switch (CUP$parser$act_num) {
- /* . . . . . . . . . . . . . . . . . . . . */
- case 13: // expr ::= LPAREN expr RPAREN
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).value;
- RESULT = a;
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 12: // expr ::= MINUS expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (CL.Times(-1, (ClLinearExpression) a));
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 11: // expr ::= expr DIVIDE expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).value;
- int bleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int bright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object b = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (CL.Divide((ClLinearExpression) a, (ClLinearExpression) b));
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 10: // expr ::= expr TIMES expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).value;
- int bleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int bright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object b = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (CL.Times((ClLinearExpression) a, (ClLinearExpression) b));
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 9: // expr ::= expr MINUS expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).value;
- int bleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int bright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object b = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (CL.Minus((ClLinearExpression) a, (ClLinearExpression) b));
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 8: // expr ::= expr PLUS expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).value;
- int bleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int bright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object b = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (CL.Plus((ClLinearExpression) a, (ClLinearExpression) b));
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 7: // expr ::= VARIABLE
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- String a = (String) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
-
- // look up variable first
- if (parser.m_debug_parse) {
- System.out.println("Grammar found variable: <" + a + ">");
- }
-
- if (parser.m_variable_name_object_hash == null) {
- System.err.println(" Don't have hash.");
- }
-
- if (parser.m_debug_parse) {
- if (!parser.m_variable_name_object_hash.containsKey(a)) {
- System.out.println(" Unrecognized variable parsed: <" + a + ">");
- } else {
- System.out.println(" Found variable: <" + a + "> in hash.");
- }
- }
-
- ClVariable variable_object = (ClVariable) parser.m_variable_name_object_hash.get(a);
-
- if (variable_object == null) {
- System.err.println(" Could not get hashed variable.");
- }
-
- RESULT = (new ClLinearExpression(variable_object));
-
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 6: // expr ::= NUMBER
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Double a = (Double) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (new ClLinearExpression(a.doubleValue()));
- CUP$parser$result = new java_cup.runtime.Symbol(4/* expr */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 5: // inequality ::= expr LEQ expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).value;
- int bleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int bright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object b = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (new ClLinearInequality((ClLinearExpression) a, CL.LEQ, (ClLinearExpression) b));
- CUP$parser$result = new java_cup.runtime.Symbol(3/* inequality */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 4: // inequality ::= expr GEQ expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).value;
- int bleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int bright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object b = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (new ClLinearInequality((ClLinearExpression) a, CL.GEQ, (ClLinearExpression) b));
- CUP$parser$result = new java_cup.runtime.Symbol(3/* inequality */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 3: // equation ::= expr EQ expr
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).value;
- int bleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int bright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object b = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = (new ClLinearEquation((ClLinearExpression) a, (ClLinearExpression) b));
- CUP$parser$result = new java_cup.runtime.Symbol(2/* equation */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 2)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 2: // constraint ::= inequality
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = a;
- CUP$parser$result = new java_cup.runtime.Symbol(1/* constraint */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 1: // $START ::= constraint EOF
- {
- Object RESULT = null;
- int start_valleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).left;
- int start_valright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).right;
- Object start_val = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).value;
- RESULT = start_val;
- CUP$parser$result = new java_cup.runtime.Symbol(0/* $START */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 1)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- /* ACCEPT */
- CUP$parser$parser.done_parsing();
- return CUP$parser$result;
-
- /* . . . . . . . . . . . . . . . . . . . . */
- case 0: // constraint ::= equation
- {
- Object RESULT = null;
- int aleft = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left;
- int aright = ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right;
- Object a = (Object) ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).value;
- RESULT = a;
- CUP$parser$result = new java_cup.runtime.Symbol(1/* constraint */,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).left,
- ((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top - 0)).right, RESULT);
- }
- return CUP$parser$result;
-
- /* . . . . . . */
- default:
- throw new Exception("Invalid action number found in internal parse table");
-
- }
- }
-}
diff --git a/src/main/java/org/klomp/cassowary/parser/sym.java b/src/main/java/org/klomp/cassowary/parser/sym.java
deleted file mode 100644
index 4f06f1d..0000000
--- a/src/main/java/org/klomp/cassowary/parser/sym.java
+++ /dev/null
@@ -1,25 +0,0 @@
-//----------------------------------------------------
-// The following code was generated by CUP v0.10k
-// Fri May 05 17:17:37 PDT 2000
-//----------------------------------------------------
-
-package org.klomp.cassowary.parser;
-
-/** CUP generated class containing symbol constants. */
-public class sym {
- /* terminals */
- public static final int EQ = 4;
- public static final int PLUS = 5;
- public static final int MINUS = 6;
- public static final int TIMES = 8;
- public static final int NUMBER = 12;
- public static final int GEQ = 2;
- public static final int LPAREN = 10;
- public static final int VARIABLE = 13;
- public static final int EOF = 0;
- public static final int error = 1;
- public static final int UMINUS = 7;
- public static final int RPAREN = 11;
- public static final int LEQ = 3;
- public static final int DIVIDE = 9;
-}
diff --git a/src/test/java/org/klomp/cassowary/ClParseTest.java b/src/test/java/org/klomp/cassowary/ClParseTest.java
deleted file mode 100644
index 612afce..0000000
--- a/src/test/java/org/klomp/cassowary/ClParseTest.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// $Id: ClParseTest.java,v 1.1 1999/12/16 01:23:07 gjb Exp $
-// ClParseTest.java
-// Needs JavaCUP 10k or newer, from:
-// http://www.cs.princeton.edu/~appel/modern/java/CUP/
-// And JLex from:
-// http://www.cs.princeton.edu/~appel/modern/java/JLex/index.html
-
-package org.klomp.cassowary;
-
-import java.io.StringReader;
-import java.util.Hashtable;
-
-import java_cup.runtime.Symbol;
-
-import org.klomp.cassowary.parser.Yylex;
-import org.klomp.cassowary.parser.parser;
-
-public class ClParseTest {
- public final static void main(String[] args) {
- try {
- System.out.println("Parsing: " + args[0]);
- StringReader string_reader = new StringReader(args[0]);
- Yylex yylex = new Yylex(string_reader);
- Hashtable varmap = new Hashtable();
- yylex.setVariableNameObjectHash(varmap);
- parser constraint_parser = new parser(yylex);
- constraint_parser.setVariableNameObjectHash(varmap);
- Symbol symbol = constraint_parser.parse();
- System.out.println("Parsed as: " + symbol.value.toString());
- } catch (Exception exception) {
- System.out.println("Exception: " + exception.getMessage());
- exception.printStackTrace();
- }
- }
-}