Commit b9c3e08b authored by Javier Costa's avatar Javier Costa
Browse files

Variable lib

parent f5a8a973
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
package tfm.utils;
package tfm.variables;

import tfm.utils.Scope;

public class Variable<T> {

+34 −0
Original line number Diff line number Diff line
package tfm.variables;

import tfm.nodes.Vertex;

public abstract class VariableAction<T> {

    private Vertex node;
    private T value;

    protected VariableAction(Vertex node, T value) {
        this.node = node;
        this.value = value;
    }

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }

    public Vertex getNode() {
        return node;
    }

    public void setNode(Vertex node) {
        this.node = node;
    }

    public abstract boolean isDeclaration();

    public abstract boolean isUse();
}
+20 −0
Original line number Diff line number Diff line
package tfm.variables;

import tfm.nodes.Vertex;

public class VariableDeclaration<T> extends VariableAction<T> {

    public VariableDeclaration(Vertex node, T value) {
        super(node, value);
    }

    @Override
    public boolean isDeclaration() {
        return true;
    }

    @Override
    public boolean isUse() {
        return false;
    }
}
+20 −0
Original line number Diff line number Diff line
package tfm.variables;

import tfm.nodes.Vertex;

public class VariableUse<T> extends VariableAction<T> {

    public VariableUse(Vertex node, T value) {
        super(node, value);
    }

    @Override
    public boolean isDeclaration() {
        return false;
    }

    @Override
    public boolean isUse() {
        return true;
    }
}