=================================================================== RCS file: /home/cvs/OpenXM/src/OpenMath/OM2OXM.java,v retrieving revision 1.17 retrieving revision 1.24 diff -u -p -r1.17 -r1.24 --- OpenXM/src/OpenMath/OM2OXM.java 2000/01/21 12:17:49 1.17 +++ OpenXM/src/OpenMath/OM2OXM.java 2000/04/17 03:18:57 1.24 @@ -1,5 +1,5 @@ /** - * $OpenXM: OpenXM/src/OpenMath/OM2OXM.java,v 1.16 2000/01/20 18:14:32 tam Exp $ + * $OpenXM: OpenXM/src/OpenMath/OM2OXM.java,v 1.23 2000/03/15 15:02:05 tam Exp $ * * このクラスでは以下の BNF で表される構文解析を実装している * expr -> stag [expr | immediate]* etag @@ -52,19 +52,12 @@ final class OM2OXM implements Runnable{ //サーバ側から送信された文字列を受信します。 try{ while(true){ - CMO tmp; + OXmessage message = asir.receive(); - switch(asir.receiveOXtag()){ - case OpenXM.OX_COMMAND: - asir.receiveSM(); + if(message.getTag() == OXmessage.OX_DATA){ + System.out.println("=> "+ CMO2OM((CMO)message.getBody())); break; - - case OpenXM.OX_DATA: - tmp = asir.receiveCMO(); - System.out.println("=> "+ CMO2OM(tmp)); - break; } - } }catch(IOException e){} } @@ -77,18 +70,18 @@ final class OM2OXM implements Runnable{ String ret = ""; switch(cmo.getDISCRIMINATOR()){ - case CMO.CMO_NULL: + case CMO.NULL: return "0"; - case CMO.CMO_INT32: + case CMO.INT32: return ""+ ((CMO_INT32)cmo).intValue() +""; - // case CMO.CMO_DATUM: + // case CMO.DATUM: - case CMO.CMO_STRING: + case CMO.STRING: return ""+ ((CMO_STRING)cmo).getString() +""; - case CMO.CMO_LIST: + case CMO.LIST: ret += ""; { CMO ob[] = ((CMO_LIST)cmo).getElements(); @@ -100,7 +93,7 @@ final class OM2OXM implements Runnable{ ret += ""; return ret; - case CMO.CMO_MONOMIAL32: + case CMO.MONOMIAL32: ret += ""; ret += CMO2OM_sub(((CMO_MONOMIAL32)cmo).getCoefficient()); for(int i=0;i<((CMO_MONOMIAL32)cmo).getDegree().length;i++){ @@ -109,29 +102,29 @@ final class OM2OXM implements Runnable{ ret += ""; return ret; - case CMO.CMO_ZZ: + case CMO.ZZ: return ""+ ((CMO_ZZ)cmo).BigIntValue() +""; - case CMO.CMO_QQ: + case CMO.QQ: return ""+ CMO2OM_sub(((CMO_QQ)cmo).getBunshi())+ CMO2OM_sub(((CMO_QQ)cmo).getBunbo())+ ""; - case CMO.CMO_ZERO: + case CMO.ZERO: return " 0 "; - // case CMO.CMO_DMS: + // case CMO.DMS: - case CMO.CMO_DMS_GENERIC: + case CMO.DMS_GENERIC: ret += ""; ret += "2"; return ret; - case CMO.CMO_RECURSIVE_POLYNOMIAL: + case CMO.RECURSIVE_POLYNOMIAL: return CMO2OM_CoefficientOfRecursivePOLYNOMIAL(((CMO_RECURSIVE_POLYNOMIAL)cmo).getPolynomial(),((CMO_RECURSIVE_POLYNOMIAL)cmo).getVariables()); - case CMO.CMO_DISTRIBUTED_POLYNOMIAL: + case CMO.DISTRIBUTED_POLYNOMIAL: ret += ""; ret += CMO2OM_sub(((CMO_DISTRIBUTED_POLYNOMIAL)cmo).getRing()); ret += ""; @@ -142,9 +135,9 @@ final class OM2OXM implements Runnable{ ret += ""; return ret; - //case CMO.CMO_POLYNOMIAL_IN_ONE_VARIABLE: + //case CMO.POLYNOMIAL_IN_ONE_VARIABLE: - case CMO.CMO_BIGFLOAT: + case CMO.BIGFLOAT: ret += ""; ret += CMO2OM_sub(((CMO_BIGFLOAT)cmo).getSyosubu()); ret += ""; @@ -153,10 +146,10 @@ final class OM2OXM implements Runnable{ ret += ""; return ret; - case CMO.CMO_INDETERMINATE: + case CMO.INDETERMINATE: return ""; - case CMO.CMO_TREE: + case CMO.TREE: ret += ""; for(int i=0;i<((CMO_TREE)cmo).getLeaves().getElements().length;i++){ @@ -373,7 +366,7 @@ final class OM2OXM implements Runnable{ && leaves[1] instanceof CMO_ZZ){ ret = new CMO_QQ((CMO_ZZ)leaves[0],(CMO_ZZ)leaves[1]); }else{ - ret = new CMO_TREE(name,"Basic",new CMO_LIST(leaves)); + ret = new CMO_TREE(name,"basic",new CMO_LIST(leaves)); } } @@ -773,7 +766,7 @@ final class OM2OXM implements Runnable{ try{ asir = new OpenXM(host,CtrlPort,StreamPort); - asir.sendSM(new SM(SM.SM_mathcap)); + asir.send(new SM(SM.SM_mathcap)); }catch(UnknownHostException e){ System.err.println("host unknown."); System.err.println(e.getMessage()); @@ -783,6 +776,10 @@ final class OM2OXM implements Runnable{ System.err.println("IOException occuer !!"); System.err.println(e.getMessage()); return; + }catch(MathcapViolation e){ + System.err.println("MathcapViolation !!"); + System.err.println(e.getMessage()); + return; } P.asir = asir; @@ -797,7 +794,7 @@ final class OM2OXM implements Runnable{ try{ CMO obj = P.parse(System.in); asir.send(obj); - asir.sendSM(new SM(SM.SM_popCMO)); + asir.send(new SM(SM.SM_popCMO)); }catch(NumberFormatException e){ System.err.println(e.getMessage()); }catch(MathcapViolation e){