Commit cc582c07 authored by Florian Lugou's avatar Florian Lugou

Generation of ProVerif typed pi calculus, modification of Avatar model for...

Generation of ProVerif typed pi calculus, modification of Avatar model for easing translation to ProVerif
parent c0d9438b
......@@ -15,7 +15,7 @@ GZIP = gzip -9 -f
DEBUG = -g
CLASSPATH = -classpath
SOURCEPATH = -sourcepath
PACKAGE = avatartranslator avatartranslator/toexecutable avatartranslator/directsimulation avatartranslator/tocppsim avatartranslator/touppaal avatartranslator/toturtle avatartranslator/toproverif avatartranslator/totpn automata compiler/tmlparser vcd nc ddtranslator launcher myutil tpndescription sddescription sdtranslator tepe translator tmltranslator tmltranslator/tmlcp tmltranslator/toautomata tmltranslator/tosystemc tmltranslator/tomappingsystemc tmltranslator/tomappingsystemc2 tmltranslator/tomappingsystemc3 tmltranslator/touppaal tmltranslator/toturtle translator/tojava translator/tosimujava translator/totpn translator/touppaal ui ui/avatarbd ui/avatardd ui/avatarsmd ui/avatarrd ui/avatarpd ui/avatarcd ui/avatarad ui/ad ui/cd ui/oscd ui/osad ui/dd ui/ebrdd ui/file ui/graph ui/iod ui/ncdd ui/procsd ui/prosmdui/prosmd/util ui/tmlad ui/tmlcd ui/tmldd ui/tmlcomp ui/req ui/sd ui/tree ui/ucd ui/window tmltranslator tmltranslator/toturtle req/ebrdd tmltranslator/tosystemc tmatrix proverifspec uppaaldesc fr/inria/oasis/vercors/cttool/model remotesimulation tmltranslator/ctranslator attacktrees myutil/externalSearch
#PACKAGE = avatartranslator avatartranslator/toexecutable avatartranslator/directsimulation avatartranslator/tocppsim avatartranslator/touppaal avatartranslator/toturtle avatartranslator/toproverif avatartranslator/totpn automata compiler/tmlparser vcd nc ddtranslator launcher myutil tpndescription sddescription sdtranslator tepe translator tmltranslator tmltranslator/tmlcp tmltranslator/toautomata tmltranslator/tosystemc tmltranslator/tomappingsystemc tmltranslator/tomappingsystemc2 tmltranslator/tomappingsystemc3 tmltranslator/touppaal tmltranslator/toturtle translator/tojava translator/tosimujava translator/totpn translator/touppaal ui ui/avatarbd ui/avatardd ui/avatarsmd ui/avatarrd ui/avatarpd ui/avatarcd ui/avatarad ui/ad ui/cd ui/oscd ui/osad ui/dd ui/ebrdd ui/file ui/graph ui/iod ui/ncdd ui/procsd ui/prosmdui/prosmd/util ui/tmlad ui/tmlcd ui/tmldd ui/tmlcomp ui/req ui/sd ui/tree ui/ucd ui/window tmltranslator tmltranslator/toturtle req/ebrdd tmltranslator/tosystemc tmatrix proverifspec uppaaldesc fr/inria/oasis/vercors/cttool/model remotesimulation tmltranslator/ctranslator attacktrees myutil/externalSearch
BUILDER = builder.jar
BUILD_INFO = build.txt
BUILD_TO_MODIFY = src/ui/DefaultText.java
......@@ -72,6 +72,7 @@ TTOOL_TARGET = $(TTOOL_PATH)/TTool_install/TTool
TTOOL_TARGET_RELEASE = $(TTOOL_PATH)/TTool_install
TTOOL_PREINSTALL = $(TTOOL_PATH)/preinstallTTool
TTOOL_PREINSTALL_LINUX = $(TTOOL_PREINSTALL)/linux
PACKAGE = $(shell cd $(TTOOL_SRC); find . -type d)
RELEASE_STD_FILES_LINUX_EXE = ttool_unix
RELEASE_STD_FILES_WINDIWS_EXE = ttool_windows.bat
......@@ -299,3 +300,8 @@ clean:
rm -f $(TTOOL_SRC)/$$p/*.class $(TTOOL_SRC)/$$p/*.java~; \
done
ultraclean: clean
@@for p in $(RELEASE_STD_FILES_BIN); do \
echo rm -f $$p;\
rm -f $(TTOOL_BIN)/$$p; \
done
/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
ludovic.apvrille AT enst.fr
This software is a computer program whose purpose is to allow the
edition of TURTLE analysis, design and deployment diagrams, to
allow the generation of RT-LOTOS or Java code from this diagram,
and at last to allow the analysis of formal validation traces
obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
from INRIA Rhone-Alpes.
This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.
/**
* Class AvatarAction
* Creation: 16/09/2015
* @version 1.0 16/09/2015
* @author Florian LUGOU
* @see
*/
package avatartranslator;
import myutil.TraceManager;
public abstract class AvatarAction {
String action;
public static AvatarAction createFromString (AvatarBlock block, String toParse) {
AvatarAction result = null;
int indexEq = toParse.indexOf("=");
if (indexEq == -1)
// No equal sign: this must be a function call
result = AvatarTermFunction.createFromString (block, toParse);
else {
// This should be an assignment
AvatarTerm leftHand = AvatarTerm.createFromString (block, toParse.substring (0, indexEq));
AvatarTerm rightHand = AvatarTerm.createFromString (block, toParse.substring (indexEq + 1));
if (leftHand != null && rightHand != null && leftHand.isLeftHand ())
result = new AvatarActionAssignment ((AvatarLeftHand) leftHand, rightHand);
}
if (result == null)
TraceManager.addDev ("Action '" + toParse + "' couldn't be parsed");
return result;
}
public boolean isAMethodCall () {
return false;
}
public boolean isAVariableSetting () {
return false;
}
public boolean isABasicVariableSetting () {
return false;
}
}
/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
ludovic.apvrille AT enst.fr
This software is a computer program whose purpose is to allow the
edition of TURTLE analysis, design and deployment diagrams, to
allow the generation of RT-LOTOS or Java code from this diagram,
and at last to allow the analysis of formal validation traces
obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
from INRIA Rhone-Alpes.
This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.
/**
* Class AvatarActionAssignment
* Creation: 16/09/2015
* @version 1.0 16/09/2015
* @author Florian LUGOU
* @see
*/
package avatartranslator;
public class AvatarActionAssignment extends AvatarAction {
AvatarLeftHand leftHand;
AvatarTerm rightHand;
public AvatarActionAssignment (AvatarLeftHand _leftHand, AvatarTerm _rightHand) {
this.leftHand = _leftHand;
this.rightHand = _rightHand;
}
public boolean isAVariableSetting () {
return true;
}
public AvatarLeftHand getLeftHand () {
return this.leftHand;
}
public AvatarTerm getRightHand () {
return this.rightHand;
}
public boolean isABasicVariableSetting () {
return (this.leftHand instanceof AvatarLocalVar || this.leftHand instanceof AvatarAttribute) &&
(this.rightHand instanceof AvatarLocalVar || this.rightHand instanceof AvatarAttribute);
}
public String toString () {
return this.leftHand.toString () + " = " + this.rightHand.toString ();
}
}
......@@ -116,4 +116,7 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
}
}
public void translate (AvatarTranslator translator, Object arg) {
translator.translateActionOnSignal (this, arg);
}
}
......@@ -53,7 +53,7 @@ import myutil.*;
import translator.*;
import translator.tojava.*;
public class AvatarAttribute extends AvatarElement{
public class AvatarAttribute extends AvatarElement implements AvatarTerm,AvatarLeftHand {
// Types of parameters
private int type;
......@@ -112,29 +112,6 @@ public class AvatarAttribute extends AvatarElement{
return (type == AvatarType.BOOLEAN);
}
public static boolean isAValidAttributeName(String id) {
if ((id == null) || (id.length() < 1)) {
return false;
}
String lowerid = id.toLowerCase();
boolean b1, b2, b3, b4, b5;
b1 = (id.substring(0,1)).matches("[a-zA-Z]");
b2 = id.matches("\\w*");
b3 = !RTLOTOSKeyword.isAKeyword(lowerid);
b5 = !JKeyword.isAKeyword(lowerid);
if ((lowerid.equals(AvatarType.getStringType(0).toLowerCase())) || (lowerid.equals(AvatarType.getStringType(1).toLowerCase())) || (lowerid.equals(AvatarType.getStringType(2).toLowerCase())) || (lowerid.equals(AvatarType.getStringType(3).toLowerCase())) || (lowerid.equals(AvatarType.getStringType(4).toLowerCase()))) {
b4 = false;
} else {
b4 = true;
}
return (b1 && b2 && b3 && b4 && b5);
}
public String toString() {
String ret = AvatarType.getStringType(type) + " " + getName();
if (initialValue == null) {
......@@ -152,4 +129,8 @@ public class AvatarAttribute extends AvatarElement{
return ret + " = " + initialValue;
}
public boolean isLeftHand () {
return true;
}
}
......@@ -574,7 +574,7 @@ public class AvatarBlock extends AvatarElement {
asme0 = asme.getNext(i);
if ((asme0 instanceof AvatarTransition) && (asme0 != at)) {
at0 = (AvatarTransition)asme0;
g = at0.getGuard();
g = at0.getGuard().toString ();
if (g != null) {
if (at0.hasNonDeterministicGuard()) {
guard = "false";
......@@ -592,7 +592,7 @@ public class AvatarBlock extends AvatarElement {
guard = Conversion.replaceAllChar(guard, '[', "(");
guard = Conversion.replaceAllChar(guard, ']', ")");
guard = "[" + guard + "]";
at.setGuard(guard);
at.setGuard(new AvatarGuard (guard));
TraceManager.addDev("[ else ] replaced with :" + guard);
}
}
......
......@@ -52,93 +52,93 @@ import java.util.*;
import myutil.*;
public class AvatarBlockTemplate {
public AvatarBlockTemplate() {
}
public static AvatarBlock getTimerBlock(String _name, Object _referenceBlock, Object _referenceSet, Object _referenceExpire, Object _referenceReset) {
AvatarBlock ab = new AvatarBlock(_name, _referenceBlock);
/*AvatarAttribute aa2 = new AvatarAttribute("toto", AvatarType.INTEGER, _referenceBlock);
ab.addAttribute(aa2);*/
AvatarAttribute aa = new AvatarAttribute("value", AvatarType.INTEGER, _referenceBlock);
ab.addAttribute(aa);
/*AvatarAttribute aa1 = new AvatarAttribute("__value", AvatarType.INTEGER, _referenceBlock);
ab.addAttribute(aa1);*/
AvatarSignal set = new AvatarSignal("set", AvatarSignal.IN, _referenceBlock);
AvatarSignal reset = new AvatarSignal("reset", AvatarSignal.IN, _referenceBlock);
AvatarSignal expire = new AvatarSignal("expire", AvatarSignal.OUT, _referenceBlock);
AvatarAttribute val = new AvatarAttribute("value", AvatarType.INTEGER, aa.getReferenceObject());
set.addParameter(val);
ab.addSignal(set);
ab.addSignal(reset);
ab.addSignal(expire);
AvatarStateMachine asm = ab.getStateMachine();
AvatarStartState ass = new AvatarStartState("start", _referenceBlock);
asm.setStartState(ass);
asm.addElement(ass);
AvatarState as1 = new AvatarState("wait4set", _referenceBlock);
asm.addElement(as1);
AvatarState as2 = new AvatarState("wait4expire", _referenceBlock);
asm.addElement(as2);
AvatarActionOnSignal aaos1 = new AvatarActionOnSignal("set1", set, _referenceSet);
aaos1.addValue("value");
asm.addElement(aaos1);
AvatarActionOnSignal aaos2 = new AvatarActionOnSignal("set2", set, _referenceSet);
aaos2.addValue("value");
asm.addElement(aaos2);
AvatarActionOnSignal aaos3 = new AvatarActionOnSignal("reset1", reset, _referenceReset);
asm.addElement(aaos3);
AvatarActionOnSignal aaos4 = new AvatarActionOnSignal("reset2", reset, _referenceReset);
asm.addElement(aaos4);
AvatarActionOnSignal aaos5 = new AvatarActionOnSignal("expire", expire, _referenceExpire);
asm.addElement(aaos5);
AvatarTransition at;
// set
at = makeAvatarEmptyTransitionBetween(asm, ass, as1, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(asm, as1, aaos1, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(asm, aaos1, as2, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(asm, as2, aaos2, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(asm, aaos2, as2, _referenceBlock);
// expire
at = makeAvatarEmptyTransitionBetween(asm, as2, aaos5, _referenceBlock);
at.setDelays("value", "value");
at = makeAvatarEmptyTransitionBetween(asm, aaos5, as1, _referenceBlock);
// reset
at = makeAvatarEmptyTransitionBetween(asm, as1, aaos3, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(asm, aaos3, as1, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(asm, as2, aaos4, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(asm, aaos4, as1, _referenceBlock);
return ab;
}
public static AvatarTransition makeAvatarEmptyTransitionBetween(AvatarStateMachine _asm, AvatarStateMachineElement _elt1, AvatarStateMachineElement _elt2, Object _reference) {
AvatarTransition at = new AvatarTransition("tr", _reference);
_asm.addElement(at);
_elt1.addNext(at);
at.addNext(_elt2);
return at;
}
}
\ No newline at end of file
public static AvatarBlock getTimerBlock(String _name, Object _referenceBlock, Object _referenceSet, Object _referenceExpire, Object _referenceReset) {
AvatarBlock ab = new AvatarBlock(_name, _referenceBlock);
/*AvatarAttribute aa2 = new AvatarAttribute("toto", AvatarType.INTEGER, _referenceBlock);
ab.addAttribute(aa2);*/
AvatarAttribute aa = new AvatarAttribute("value", AvatarType.INTEGER, _referenceBlock);
ab.addAttribute(aa);
/*AvatarAttribute aa1 = new AvatarAttribute("__value", AvatarType.INTEGER, _referenceBlock);
ab.addAttribute(aa1);*/
AvatarSignal set = new AvatarSignal("set", AvatarSignal.IN, _referenceBlock);
AvatarSignal reset = new AvatarSignal("reset", AvatarSignal.IN, _referenceBlock);
AvatarSignal expire = new AvatarSignal("expire", AvatarSignal.OUT, _referenceBlock);
AvatarAttribute val = new AvatarAttribute("value", AvatarType.INTEGER, aa.getReferenceObject());
set.addParameter(val);
ab.addSignal(set);
ab.addSignal(reset);
ab.addSignal(expire);
AvatarStateMachine asm = ab.getStateMachine();
AvatarStartState ass = new AvatarStartState("start", _referenceBlock);
asm.setStartState(ass);
asm.addElement(ass);
AvatarState as1 = new AvatarState("wait4set", _referenceBlock);
asm.addElement(as1);
AvatarState as2 = new AvatarState("wait4expire", _referenceBlock);
asm.addElement(as2);
AvatarActionOnSignal aaos1 = new AvatarActionOnSignal("set1", set, _referenceSet);
aaos1.addValue("value");
asm.addElement(aaos1);
AvatarActionOnSignal aaos2 = new AvatarActionOnSignal("set2", set, _referenceSet);
aaos2.addValue("value");
asm.addElement(aaos2);
AvatarActionOnSignal aaos3 = new AvatarActionOnSignal("reset1", reset, _referenceReset);
asm.addElement(aaos3);
AvatarActionOnSignal aaos4 = new AvatarActionOnSignal("reset2", reset, _referenceReset);
asm.addElement(aaos4);
AvatarActionOnSignal aaos5 = new AvatarActionOnSignal("expire", expire, _referenceExpire);
asm.addElement(aaos5);
AvatarTransition at;
// set
at = makeAvatarEmptyTransitionBetween(ab, asm, ass, as1, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(ab, asm, as1, aaos1, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(ab, asm, aaos1, as2, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(ab, asm, as2, aaos2, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(ab, asm, aaos2, as2, _referenceBlock);
// expire
at = makeAvatarEmptyTransitionBetween(ab, asm, as2, aaos5, _referenceBlock);
at.setDelays("value", "value");
at = makeAvatarEmptyTransitionBetween(ab, asm, aaos5, as1, _referenceBlock);
// reset
at = makeAvatarEmptyTransitionBetween(ab, asm, as1, aaos3, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(ab, asm, aaos3, as1, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(ab, asm, as2, aaos4, _referenceBlock);
at = makeAvatarEmptyTransitionBetween(ab, asm, aaos4, as1, _referenceBlock);
return ab;
}
public static AvatarTransition makeAvatarEmptyTransitionBetween(AvatarBlock _block, AvatarStateMachine _asm, AvatarStateMachineElement _elt1, AvatarStateMachineElement _elt2, Object _reference) {
AvatarTransition at = new AvatarTransition(_block, "tr", _reference);
_asm.addElement(at);
_elt1.addNext(at);
at.addNext(_elt2);
return at;
}
}
/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
ludovic.apvrille AT enst.fr
This software is a computer program whose purpose is to allow the
edition of TURTLE analysis, design and deployment diagrams, to
allow the generation of RT-LOTOS or Java code from this diagram,
and at last to allow the analysis of formal validation traces
obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
from INRIA Rhone-Alpes.
This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.
/**
* Class AvatarGuard
* Creation: 16/09/2015
* @version 1.0 16/09/2015
* @author Florian LUGOU
* @see
*/
package avatartranslator;
import myutil.Conversion;
public class AvatarGuard {
String guard;
public AvatarGuard (String _guard) {
if (_guard == null)
this.guard = "[ ]";
else
this.guard = _guard;
}
public void addGuard(String _g) {
guard = "(" + guard + ") and (" + _g + ")";
}
public boolean isElseGuard () {
String _guard = Conversion.replaceAllChar(guard, ' ', "").trim();
return _guard.compareTo("[else]") == 0;
}
public boolean isNonDeterministicGuard () {
String tmp = Conversion.replaceAllChar(guard, ' ', "").trim();
return tmp.compareTo("[]") == 0;
}
public boolean isGuarded () {
if (guard.trim().length() == 0)
return false;
String s = Conversion.replaceAllString(guard, " ", "").trim();
return s.compareTo("[]") != 0;
}
public String toString () {
return this.guard;
}
}
/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
ludovic.apvrille AT enst.fr
This software is a computer program whose purpose is to allow the
edition of TURTLE analysis, design and deployment diagrams, to
allow the generation of RT-LOTOS or Java code from this diagram,
and at last to allow the analysis of formal validation traces
obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
from INRIA Rhone-Alpes.
This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.
/**
* Class AvatarLeftHand
* Creation: 16/09/2015
* @version 1.0 16/09/2015
* @author Florian LUGOU
* @see
*/
package avatartranslator;
public interface AvatarLeftHand extends AvatarTerm {
}
/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
ludovic.apvrille AT enst.fr
This software is a computer program whose purpose is to allow the
edition of TURTLE analysis, design and deployment diagrams, to
allow the generation of RT-LOTOS or Java code from this diagram,
and at last to allow the analysis of formal validation traces
obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
from INRIA Rhone-Alpes.
This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.
/**
* Class AvatarLocalVar
* Creation: 16/09/2015
* @version 1.0 16/09/2015
* @author Florian LUGOU
* @see
*/
package avatartranslator;
public class AvatarLocalVar implements AvatarTerm, AvatarLeftHand {
String name;
public AvatarLocalVar (String _name) {
this.name = _name;
}
public String getName () {
return this.name;
}
public boolean isLeftHand () {
return true;
}
public String toString () {
return this.name;
}
}
/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
ludovic.apvrille AT enst.fr
This software is a computer program whose purpose is to allow the
edition of TURTLE analysis, design and deployment diagrams, to
allow the generation of RT-LOTOS or Java code from this diagram,
and at last to allow the analysis of formal validation traces
obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
from INRIA Rhone-Alpes.
This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.
ludovic.apvrille AT enst.fr