package is.L42.connected.withNumbers;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import platformSpecific.fakeInternet.ActionType;
import platformSpecific.fakeInternet.PluginType;
import platformSpecific.javaTranslation.Resources;
import facade.L42;
import static auxiliaryGrammar.EncodingHelper.*;
public class Plugin implements PluginType {
// +
@ActionType({ActionType.Type.Library,ActionType.Type.Library,ActionType.Type.Library})
public Object MsumNum£xn1£xn2(Object cb1,Object cb2){
BigRational i1=ensureExtract(BigRational.class,cb1);
BigRational i2=ensureExtract(BigRational.class,cb2);
return i1.sum(i2);
}
//*
@ActionType({ActionType.Type.Library,ActionType.Type.Library,ActionType.Type.Library})
public Object MmulNum£xn1£xn2(Object cb1,Object cb2){
BigRational i1=ensureExtract(BigRational.class,cb1);
BigRational i2=ensureExtract(BigRational.class,cb2);
return i1.multiply(i2);
}
// /
@ActionType({ActionType.Type.Library,ActionType.Type.Library,ActionType.Type.Library})
public Object MdivNum£xn1£xn2(Object cb1,Object cb2){
BigRational i1=ensureExtract(BigRational.class,cb1);
BigRational i2=ensureExtract(BigRational.class,cb2);
return i1.divide(i2);
}
//-
@ActionType({ActionType.Type.Library,ActionType.Type.Library,ActionType.Type.Library})
public Object MsubNum£xn1£xn2(Object cb1,Object cb2){
BigRational i1=ensureExtract(BigRational.class,cb1);
BigRational i2=ensureExtract(BigRational.class,cb2);
return i1.subtract(i2);
}
//==
@ActionType({ActionType.Type.Void,ActionType.Type.Library,ActionType.Type.Library})
public Resources.Void MifNumEqualDo£xn1£xn2(Object cb1,Object cb2){
BigRational i1=ensureExtract(BigRational.class,cb1);
BigRational i2=ensureExtract(BigRational.class,cb2);
if(!i1.equals(i2)){return Resources.Void.instance;}
throw Resources.notAct;
}
//<
@ActionType({ActionType.Type.Void,ActionType.Type.Library,ActionType.Type.Library})
public Resources.Void MifNumGrtDo£xn1£xn2(Object cb1,Object cb2){
BigRational i1=ensureExtract(BigRational.class,cb1);
BigRational i2=ensureExtract(BigRational.class,cb2);
if(i1.compareTo(i2)<0){return Resources.Void.instance;}
throw Resources.notAct;
}
//<=
@ActionType({ActionType.Type.Void,ActionType.Type.Library,ActionType.Type.Library})
public Resources.Void MifNumGEqDo£xn1£xn2(Object cb1,Object cb2){
BigRational i1=ensureExtract(BigRational.class,cb1);
BigRational i2=ensureExtract(BigRational.class,cb2);
if(i1.compareTo(i2)<=0){return Resources.Void.instance;}
throw Resources.notAct;
}
@ActionType({ActionType.Type.Library,ActionType.Type.Library})
public Object MstringToNum£xthat(Object cb){
String s=ensureExtractStringU(cb);
try{return BigRational.from(s);}
catch(NumberFormatException nfe){throw new Resources.Error("InvalidEncodingForI32: "+s); }
}
@ActionType({ActionType.Type.Library,ActionType.Type.Library})
public Object MnumToString£xthat(Object cb){
BigRational i=ensureExtract(BigRational.class,cb);
return ""+i;
}
}