Commit c6dbdcbc authored by Matthew Dawson's avatar Matthew Dawson
Browse files

Make the variables be held in a proper class.

In preparation for enumerations, a more complete handling of variable information
is required.  Thus create a VariableCollection and use it appropriately.  As
much as possible, the VariableCollection is pushed down the stack as much as
possible.

git-svn-id: https://groke.mcmaster.ca/svn/grad/colin/branches/TableTool_javization@11083 57e6efec-57d4-0310-aeb1-a6c144bb1a8b
parent 0b19707a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package ca.mcmaster.cas.tabularexpressiontoolbox.cvc3generator;

import ca.mcmaster.cas.tabularexpressiontoolbox.expression.Variable;
import ca.mcmaster.cas.tabularexpressiontoolbox.expression.VariableCollection;
import ca.mcmaster.cas.tabularexpressiontoolbox.parsers.MatlabParser;
import ca.mcmaster.cas.tabularexpressiontoolbox.expression.BooleanVariableType;
import ca.mcmaster.cas.tabularexpressiontoolbox.expression.CVC3Generator;
@@ -36,7 +37,7 @@ import org.apache.commons.lang3.StringUtils;
 */
final public class HierarchicalGridCVC3Generator implements HierarchcialGridCheckerGenerator {

    public HierarchicalGridCVC3Generator(Map<String, Variable> variableDefinitions, int queryCountStart) {
    public HierarchicalGridCVC3Generator(VariableCollection variableDefinitions, int queryCountStart) {
        m_variableDefinitions = variableDefinitions;
        m_currentTCC = queryCountStart;
    }
@@ -157,7 +158,7 @@ final public class HierarchicalGridCVC3Generator implements HierarchcialGridChec
    List<String> m_queries = new ArrayList<String>();

    // To fix properly.
    Map<String, Variable> m_variableDefinitions;
    VariableCollection m_variableDefinitions;
    static BooleanVariableType m_booleanType = new BooleanVariableType();
    CVC3Generator m_CVC3Generator = new CVC3Generator();
}
+3 −1
Original line number Diff line number Diff line
@@ -194,7 +194,9 @@ final public class CVC3Generator implements CheckerGenerator{
    }

    @Override
    public String GenerateVariablesDeclaration(Map<String, Variable> vars) {
    public String GenerateVariablesDeclaration(VariableCollection variableCollection) {
        Map<String, Variable> vars = variableCollection.getVariables();

        StringBuilder ret = new StringBuilder();
        // First generate all the variables.
        for(Variable var : vars.values()) {
+1 −1
Original line number Diff line number Diff line
@@ -14,5 +14,5 @@ public interface CheckerGenerator {
    public String GenerateUnaryOperation(UnaryOperation op, String expression, VariableType usedType);
    public String GenerateBinaryOperation(BinaryOperation op, String lhsExp, String rhsExp, VariableType usedType);
    public String GenerateLiterlaValue(String value, VariableType requestedType);
    public String GenerateVariablesDeclaration(Map<String, Variable> vars);
    public String GenerateVariablesDeclaration(VariableCollection vars);
}
+3 −1
Original line number Diff line number Diff line
@@ -47,7 +47,9 @@ public class SMTLIBGenerator implements CheckerGenerator {
    }

    @Override
    public String GenerateVariablesDeclaration(Map<String, Variable> vars) {
    public String GenerateVariablesDeclaration(VariableCollection variableCollection) {
        Map<String, Variable> vars = variableCollection.getVariables();

        StringBuilder ret = new StringBuilder();
        // First generate all the variables.
        for (Variable var : vars.values()) {
+38 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 Matthew Dawson <matthew@mjdsystems.ca>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package ca.mcmaster.cas.tabularexpressiontoolbox.expression;

import java.util.Map;

/**
 * @author Matthew Dawson <matthew@mjdsystems.ca>
 */
final public class VariableCollection {
    public VariableCollection(Map<String, Variable> variables) {
        m_variables = variables;
    }

    public Map<String, Variable> getVariablesAndEnumeratedValues() {
        return m_variables;
    }

    public Map<String, Variable> getVariables() {
        return m_variables;
    }

    private final Map<String,Variable> m_variables;
}
Loading