// Path: src/main/java/org/klomp/cassowary/ClVariable.java
// public class ClVariable extends ClAbstractVariable {
// 
//     private double _value;
// 
//     private Object _attachedObject;
// 
//     public ClVariable(String name, double value) {
//         super(name);
//         _value = value;
//     }
// 
//     public ClVariable(String name) {
//         super(name);
//         _value = 0.0;
//     }
// 
//     public ClVariable(double value) {
//         _value = value;
//     }
// 
//     public ClVariable() {
//         _value = 0.0;
//     }
// 
//     public ClVariable(long number, String prefix, double value) {
//         super(number, prefix);
//         _value = value;
//     }
// 
//     public ClVariable(long number, String prefix) {
//         super(number, prefix);
//         _value = 0.0;
//     }
// 
//     @Override
//     public boolean isDummy() {
//         return false;
//     }
// 
//     @Override
//     public boolean isExternal() {
//         return true;
//     }
// 
//     @Override
//     public boolean isPivotable() {
//         return false;
//     }
// 
//     @Override
//     public boolean isRestricted() {
//         return false;
//     }
// 
//     @Override
//     public String toString() {
//         return "[" + name() + ":" + _value + "]";
//     }
// 
//     public final double getValue() {
//         return _value;
//     }
// 
//     // change the value held -- should *not* use this if the variable is
//     // in a solver -- instead use addEditVar() and suggestValue() interface
//     public final void setValue(double value) {
//         _value = value;
//     }
// 
//     // permit overriding in subclasses in case something needs to be
//     // done when the value is changed by the solver
//     // may be called when the value hasn't actually changed -- just
//     // means the solver is setting the external variable
//     public void change_value(double value) {
//         _value = value;
//     }
// 
//     public void setAttachedObject(Object o) {
//         _attachedObject = o;
//     }
// 
//     public Object getAttachedObject() {
//         return _attachedObject;
//     }
// 
// }


import java_cup.runtime.Symbol;
import org.klomp.cassowary.ClVariable;
                        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.");
                            }
// Path: src/main/java/org/klomp/cassowary/ClVariable.java
// public class ClVariable extends ClAbstractVariable {
// 
//     private double _value;
// 
//     private Object _attachedObject;
// 
//     public ClVariable(String name, double value) {
//         super(name);
//         _value = value;
//     }
// 
//     public ClVariable(String name) {
//         super(name);
//         _value = 0.0;
//     }
// 
//     public ClVariable(double value) {
//         _value = value;
//     }
// 
//     public ClVariable() {
//         _value = 0.0;
//     }
// 
//     public ClVariable(long number, String prefix, double value) {
//         super(number, prefix);
//         _value = value;
//     }
// 
//     public ClVariable(long number, String prefix) {
//         super(number, prefix);
//         _value = 0.0;
//     }
// 
//     @Override
//     public boolean isDummy() {
//         return false;
//     }
// 
//     @Override
//     public boolean isExternal() {
//         return true;
//     }
// 
//     @Override
//     public boolean isPivotable() {
//         return false;
//     }
// 
//     @Override
//     public boolean isRestricted() {
//         return false;
//     }
// 
//     @Override
//     public String toString() {
//         return "[" + name() + ":" + _value + "]";
//     }
// 
//     public final double getValue() {
//         return _value;
//     }
// 
//     // change the value held -- should *not* use this if the variable is
//     // in a solver -- instead use addEditVar() and suggestValue() interface
//     public final void setValue(double value) {
//         _value = value;
//     }
// 
//     // permit overriding in subclasses in case something needs to be
//     // done when the value is changed by the solver
//     // may be called when the value hasn't actually changed -- just
//     // means the solver is setting the external variable
//     public void change_value(double value) {
//         _value = value;
//     }
// 
//     public void setAttachedObject(Object o) {
//         _attachedObject = o;
//     }
// 
//     public Object getAttachedObject() {
//         return _attachedObject;
//     }
// 
// }


// Path: src/main/java/org/klomp/cassowary/parser/Yylex.java
import java_cup.runtime.Symbol;
import org.klomp.cassowary.ClVariable;

                        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();